Hallo VBA Experten,
habe noch ein kleines Tüftelproblem vor dem EM-Endspiel.
Folgender Sachverhalt:
Im Layout liegt eine Zeichnung, die aber von der Darstellung nicht schön aussieht (Keine DIN oder günstige Faltmaße, Zeichnung im Ansichtsfenster verschoben). Dies soll automatisch korrigiert werden.
Dabei bin ich auf eine Merkwürdigkeit gestoßen:
Ursprünglich war der Plotbereich auf Fenster eingestellt, extmin und extmax ergeben die richtigen Werte.
Jetzt wird das Layout bearbeitet und die Seiteneinrichtung auf Grenzen umgestellt.
Anschließend erfolgt ein regenieren
Frägt man nun die extmin und extmax ab, sind diese um 0,05 bzw 0,07 zu groß.
Nach einem Wechsel in den Modellbereich und wieder zurück in den Layoutbereich stimmen die Werte dann plötzlich.
Wie es aussieht, habe ich wohl etwas beim initialisieren vergessen. Aber was?
Zur Verdeutlichung hier noch der
Code:
'Größen im Layoutbereich holen
ThisDrawing.ActiveSpace = acPaperSpace
ThisDrawing.MSpace = False
' Seiteneinstellung auf Grenzen setzen, da sonst falsche Werte berechnet werden könnten
Set ACADLayout = ThisDrawing.ActiveLayout
ACADLayout.PlotType = acExtents
ThisDrawing.Regen acAllViewports 'Regenerieren damit PlotType wirksam wird
'Extmin und extmax falsch !
ThisDrawing.ActiveSpace = acModelSpace
ThisDrawing.ActiveSpace = acPaperSpace 'Extmin und Extmax richtig !
Damit geht es zwar, aber der kurzzeitige Wechsel ins Modell gefällt mir nicht.
Viel Spaß beim Tüffteln, ich bin mit meinem VBA am Ende.
Grüße,
Klaus
PS: Noch zur Info: Problem tritt unter Acad 2006 auf, da Pläne im 2004-Format abgegeben werden müssen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP