|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung 
 | 
| Autor | Thema:  auflistung blockreferenzen auf layouts (1584 /  mal gelesen) | 
 | ritchie1 Mitglied
 
 
  
 
      Beiträge: 25Registriert: 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.PaperSpaceIf LCASE(entity.ObjectName) = "acdbblockreference" Then
         End IfNext 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: 22689Registriert: 03.06.2002
 System: F1und Google
 |    erstellt am: 13. Jul. 2018 08:22  <-- editieren / zitieren -->    Unities abgeben:           Nur für ritchie1   | 
                        | ritchie1 Mitglied
 
 
  
 
      Beiträge: 25Registriert: 10.10.2017
 AutoCAD 2008, AutoCAD 2011 |    erstellt am: 13. Jul. 2018 09:12  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | ritchie1 Mitglied
 
 
  
 
      Beiträge: 25Registriert: 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: 4201Registriert: 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: 25Registriert: 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 |