| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: auflistung blockreferenzen auf layouts (1344 / mal gelesen)
|
ritchie1 Mitglied
Beiträge: 25 Registriert: 10.10.2017 AutoCAD 2008, AutoCAD 2011
|
erstellt am: 13. Jul. 2018 08:07 <-- editieren / zitieren --> Unities abgeben:
hallo, ich möchte gerne alle blockreferenzen einer zeichnung (modellbereich sowie auf den einzelnen layouts) auflisten. derzeit schaffe ich es aus dem modellbereich bzw. dem papierbereich. For Each entity In ThisDrawing.PaperSpace If LCASE(entity.ObjectName) = "acdbblockreference" Then End If Next entity beim papierbereich werden aber nur die referenzen des aktuellen layouts zurückgegeben. ich benötige aber alle referenzen auf den einzelnen layouts. hat wer eine idee?
ritchie
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 13. Jul. 2018 08:22 <-- editieren / zitieren --> Unities abgeben: Nur für ritchie1
|
ritchie1 Mitglied
Beiträge: 25 Registriert: 10.10.2017 AutoCAD 2008, AutoCAD 2011
|
erstellt am: 13. Jul. 2018 09:12 <-- editieren / zitieren --> Unities abgeben:
|
ritchie1 Mitglied
Beiträge: 25 Registriert: 10.10.2017 AutoCAD 2008, AutoCAD 2011
|
erstellt am: 13. Jul. 2018 14:14 <-- editieren / zitieren --> Unities abgeben:
habs! zuerst die layouts durchlaufen, nacheinander jedes layout als aktiv sezten, aktuelles layout als paperspace definieren, blockreferenzen auflisten ... For Each acLayout In ThisDrawing.Layouts 'aktives Layout setzen ThisDrawing.ActiveLayout = acLayout Set acPaperSpace = Documents(0).PaperSpace 'Paperspace des Layouts durchlaufen For Each entity In acPaperSpace If entity.ObjectName = "AcDbBlockReference" Then Debug.Print entity.ObjectName, entity.Name, entity.Handle End If Next entity Next acLayout Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 16. Jul. 2018 11:42 <-- editieren / zitieren --> Unities abgeben: Nur für ritchie1
Hallo ritchie, ich weiß nicht, was du konkret vor hast, daher noch eine Anmerkung. Besser ist es, du fragst von den Blockdefinitionen die Blockreferenzen ab. Diese untersuchst du dann, auf welchem Layout sich diese befinden. Auf diesem Weg bekommst du auch die Referenzen heraus, die womöglich innerhalb anderer Blöcke verschachtelt sind. Von den verschachtelten musst du dann natürlich recursiv durch die Verschachtelung nach oben gehen, und musst herausfinden, in welchem Layout die übergeordnete Blockreferenzen angezeigt werden. Auf deinem Weg bekommst du ja nur die Referenzen heraus, die direkt im Layout eingefügt sind. Das mag für dich reichen, ist aber eben auch an die Bedingung geknüpft, dass niemand mit mehreren Verschachtelungsebenen arbeitet. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ritchie1 Mitglied
Beiträge: 25 Registriert: 10.10.2017 AutoCAD 2008, AutoCAD 2011
|
erstellt am: 18. Jul. 2018 19:46 <-- editieren / zitieren --> Unities abgeben:
hallo holger, hab ich doch geschrieben, dass ich die blockreferenzen abfrage :-). hab es nur umgekehrt gemacht. durchsuche die einzelnen layouts auf blockreferenzen. ein zugriff auf alle blockreferenzen habe ich nicht geschafft, da ich vorher immer zuerst modelspace oder paperspace angeben muss und der paperspace bezieht sich immer nur auf das aktuelle layout. zugriff auf alle blockreferenzen (unabhängig wo sie liegen) wäre natürlich schicker ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |