Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Elemente auf Layer durchlaufen und explode'n

  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Thema geschlossen  Thema geschlossen!
Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Elemente auf Layer durchlaufen und explode'n (1235 mal gelesen)
FIippy
Mitglied


Sehen Sie sich das Profil von FIippy an!   Senden Sie eine Private Message an FIippy  Schreiben Sie einen Gästebucheintrag für FIippy

Beiträge: 6
Registriert: 06.06.2013

erstellt am: 06. Jun. 2013 16:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


IterateLayer.zip

 
Hallo miteinander!

Bin auf dem CAD-Gebiet noch ganz frisch, also entschuldigt evtl. umständlich formulierte Sätze! ^^"

Ich habe im Anhang mal eine DWG-Datei als Beispiel angehängt.
Mein Ziel worum es mir geht, ist folgendes:

Auf einem Layer (in diesem Fall "Raum") liegen Raumstempel welche mir im AutoCAD (verwende "Autodesk AutoCAD 2014") als "AEC_MVBLOCK_REF" angezeigt werden (das müsste dann wohl der ObjectName sein, wenn ich das richtig verstanden habe).
Ich würde gerne die Eigenschaften/Attribute dieses Raumstempels auslesen. Allerdings werden mir diese nicht bei den Eigenschaften angezeigt.
Was ich nun aber schon herausgefunden habe ist, dass wenn ich dieses Element (Raumstempel) "explode" (in den "Ursprung"), das ich dann schon mal eine "Blockreferenz" bekomme mit mehr Eigenschaften. Wiederhole ich den Schritt noch einmal, bleibt es bei einer "Blockreferenz" habe jetzt aber Attribute die genau das wiedergeben, was ich ursprünglich auslesen möchte.

So...
Also dach ich mir, VBA kannst'e, also schau ich den Layer durch und wenn ich ein Element auf dem Layer finde, das keine "Blockreferenz" ist, dann explode dieses. Leider bekomme ich immer einen "Laufzeitfehler '438' Objekt unterstützt dies Eigenschaft nicht". Wenn ich den Raumstempel jetzt allerdings in der Zeichnung markiere und dann auf "Ursprung" klicke, funktioniert das wunderbar. Kann mir das einer erklären?

Und so sieht mein VBA-Code aus:

Code:

Sub IterateLayer()
    Dim eEntity As AcadEntity
    Dim blockref As AcadBlockReference
   
   
    For Each eEntity In ThisDrawing.ModelSpace
        If eEntity.Layer = "Raum" Then
            If Not eEntity.ObjectName = "AcDbBlockReference" Then
'                Dim vNewEntity As Variant
'
'                vNewEntity = eEntity.Explode
               
                eEntity.Explode
            End If
        End If
    Next eEntity

End Sub



Ich weiß, das wird jetzt nicht die sauberste Lösung sein, daher war meine zweite Idee, den Raumstempel so zu lassen und sozusagen 2 Ebenen in das Element hineinzuschauen, ob es Attribute zum auslesen gibt.. Weiß natürlich nicht ob und wie das im AutoCAD mit VBA möglich ist.

Wäre also super dankbar, wenn mir das einer von euch Profi's erklären könnte!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 07. Jun. 2013 07:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für FIippy 10 Unities + Antwort hilfreich

Erstmal gut das du hergefunden hast, Hier werden sicher deine Fragen beantwortet. Allerdings solltest du dich schon ins richtige Forum wenden.
für VBA haben wir das Forum:Klick
für Lisp bist du Hierrichtig

Nimm bitte erstmal die Suchfunktion, da findest du sicher was zu MV Blöcken

------------------
Gruß
CADwiesel
Besucht uns im CHAT

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

FIippy
Mitglied


Sehen Sie sich das Profil von FIippy an!   Senden Sie eine Private Message an FIippy  Schreiben Sie einen Gästebucheintrag für FIippy

Beiträge: 6
Registriert: 06.06.2013

erstellt am: 07. Jun. 2013 11:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo CADwiesel,

vielen Dank für den Hinweis!
Falls jemand das Thema weiterverfolgen möchte, HIER geht es weiter! 

Ich habe schon einiges in der Suchfunktion gefunden und gelesen, damit ich das Objektmodell von AutoCAD ein wenig verstehe (und den Code schreiben konnte!), aber hier blicke ich momentan nicht durch... 
Werde natürlich weiterhin ausschau halten 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag öffnen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz