2012-03-29 6 views
0

Ich habe ein VBA-Skript, das ein Layout in eine exsting Zeichnung importiert, es ist ein Papierraum-Layout und enthält einen acadPViewport, um das Modell mit anzuzeigen.AutoCAD VBA acadPViewport unvorhersehbares Verhalten beim Setzen von Standardscale

Ich muss eine vernünftige Standardansicht festlegen, der einfachste Weg, dies zu tun, ist das Darstellungsfeld auf die Ausmaße des Modells einzustellen.

Ich kann dies tun durch den Aufruf:

VP.standardscale = acVPScaleToFit 
'(optional, I've tried adding these to no effect) 
VP.update 
currentDocument.Regen 

Ich habe experimentiert und diesen Code Anruf. Wenn ich das Ansichtsfenster in dem sofortigen Fenster zu finden, während keine Makros oder Routinen ausgeführt wird, durch Bezugnahme auf:

ThisDrawing.ActiveLayout.block(1).standardscale = acvpscaletofit 

es hat den gewünschten Effekt der ZoomExtents im pViewport Aufruf (soweit ich es rezentriert und neu berechnet sagen kann, die Extents, nach denen ich suche).

Wenn ich genau den gleichen Code in meinem Hauptcode ausführen, hat es keine Wirkung.

Irgendwelche Ideen geschätzt.

Antwort

0

Die Antwort, es stellt sich heraus, ist, dass viele Funktionen von AutoCAD nicht funktionieren werden, wenn die Hauptanwendung nicht auf dem Bildschirm ist, ausgeblendet, minimiert oder bei Datei geladen wurde.

Verwandte Themen