Wie kann man in Autocad 2004/2006 beim händischen Spiegeln (oder Verschieben oder Kopieren oder Drehen)eines mit Attributen versehenen Blockes die Attribute (oder XData) des neuen Blockes automatisch über VBA beeinflussen? Ereignisprozedur?
erstellt am: 11. Mai. 2006 17:01 <-- editieren / zitieren --> Unities abgeben: Nur für st_schulze
Hallo,
du kannst das in den entsprechenden Eventhandlern implementieren. Hier mal ein kleines Beispiel:
Code:Option Explicit Dim ObjectStack() As AcadEntity Dim ObjectCount As Long
Private Sub AcadDocument_EndCommand(ByVal CommandName As String) Dim i& ' Nach Beendigung des Befehles gewünschte Aktion ausführen For i = 1 To ObjectCount ObjectStack(i).Color = acBlue ObjectStack(i).Update Next i ObjectCount = 0 ReDim ObjectStack(0 To 0) End Sub
Private Sub AcadDocument_ObjectAdded(ByVal Object As Object) ' Objekt in Zwischenspeicher ' Event wird für jedes neue Objekt aufgerufen AcadDocument_ObjectModified Object End Sub
Private Sub AcadDocument_ObjectModified(ByVal Object As Object) ' Objekt in Zwischenspeicher ' Event wird für jedes neue Objekt aufgerufen ObjectCount = ObjectCount + 1 ReDim Preserve ObjectStack(0 To ObjectCount) Set ObjectStack(UBound(ObjectStack)) = Object End Sub
siehe auch hier Wenn du noch den Typ des Entity's auswertest und abfragst ob Attribute vorhanden sind, kannst du dein Problem lösen. Hierzu gibt es schon einige Beiträge hier im Forum.
Stelli
------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de