| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: Attribute in Unterblöcke (2002 mal gelesen)
|
hannes.zorn Mitglied bautechniker

 Beiträge: 21 Registriert: 13.01.2004
|
erstellt am: 06. Sep. 2006 10:10 <-- editieren / zitieren --> Unities abgeben:         
Hallo miteinander. Ich hab da ein kleines problem. ich muß die Farbe von Attributen in Blockreferenzen ändern. Jetzt hab ich folgendes Problem, daß ich auf die Attribute in einer Blockreferenz zugreifen kann aber nicht auf die Attribute welche sich in Unterblöcken in der Blockreferenz sich befinden. Gibt es da einen Trick? Bin für jede Hilfe sehr dankbar. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 06. Sep. 2006 10:20 <-- editieren / zitieren --> Unities abgeben:          Nur für hannes.zorn
ganz normal alle Elemente des zur ausgewählten Referenz gehörenden Blockes durchlaufen, wenn ein Insert darunter gefunden wurde, diese auf Attribute testen, wenn positiv, dann das Attributarray holen und die Attribute anpassen. Am besten die ganze Funktion rekursiv aufbauen, damit auch Mehrfachschachtelungen berücksichtigt werden. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hannes.zorn Mitglied bautechniker

 Beiträge: 21 Registriert: 13.01.2004
|
erstellt am: 06. Sep. 2006 10:22 <-- editieren / zitieren --> Unities abgeben:         
|
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 06. Sep. 2006 10:29 <-- editieren / zitieren --> Unities abgeben:          Nur für hannes.zorn
|
hannes.zorn Mitglied bautechniker

 Beiträge: 21 Registriert: 13.01.2004
|
erstellt am: 06. Sep. 2006 10:30 <-- editieren / zitieren --> Unities abgeben:         
|
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 06. Sep. 2006 11:03 <-- editieren / zitieren --> Unities abgeben:          Nur für hannes.zorn
|
hannes.zorn Mitglied bautechniker

 Beiträge: 21 Registriert: 13.01.2004
|
erstellt am: 06. Sep. 2006 13:07 <-- editieren / zitieren --> Unities abgeben:         
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 06. Sep. 2006 13:11 <-- editieren / zitieren --> Unities abgeben:          Nur für hannes.zorn
|
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 06. Sep. 2006 13:53 <-- editieren / zitieren --> Unities abgeben:          Nur für hannes.zorn
Hallo Hannes, der Code ist in der Hauptform in der Funltion FillBlockInfo hier mal ein Auszug:
Code: EntityCount = 0 For Each Entity In Block EntityCount = EntityCount + 1 ' --------------------------- ' Blöcke ' Block1 ' Layer ' Layer1 ' Layer2 ' Attribute ' SUB-BLOKS ' Key = Layer_DummyBlock_Verdeckt Set LayerNode = TreeView.Nodes.Add(LayersNode.key, tvwChild, LayersNode.key & "\" & Entity.Layer, Entity.Layer) LayerNode.Tag = "BLOCKLAYER" Set LineTypeNode = TreeView.Nodes.Add(LineTypesNode.key, tvwChild, LineTypesNode.key & "\" & Entity.Linetype, Entity.Linetype) LineTypeNode.Tag = "BLOCKLINE" If Entity.ObjectName = "AcDbAttributeDefinition" Then ' =AcDbAttributeDefinition (5) ' = AcDbBlockTableRecord (7) ' Wenn Attributsdefinition ' --------------------------- ' Blöcke ' Block1 ' Layer ' Layer1 ' Layer2 ' Attribute ' Attribut1 ' Attribut2 ' SUB-BLOKS Set AttributNode = TreeView.Nodes.Add(AttributeNode.key, tvwChild, AttributeNode.key & "\" & Entity.TagString, Entity.TagString) AttributNode.Tag = "ATTRIBUT" End If If Entity.ObjectName = "AcDbBlockReference" Then ' Wenn Block in Block Set SubBlockDef = ThisDrawing.Blocks(Entity.Name) ' --------------------------- ' Blöcke ' Block1 ' Layer ' Layer1 ' Layer2 ' Attribute ' Attribut1 ' Attribut2 ' SUB-BLOCKS ' SubBlock1 ' Rekursiv die Blockdefinitionen untersuchen FillBlockInfo SubBlockNode, SubBlockDef, Ebene + 1 ' --------------------------- ' Blöcke ' Block1 ' Layer ' Layer1 ' Layer2 ' Attribute ' Attribut1 ' Attribut2 ' SUB-BLOCKS ' SubBlock1 ' Layer ' Attribute ' Sub-Blocks ' Block1.... End If ' Fehlerbehandlung für gleichen Layernamen (nur ein Eintrag erforderlich) On Error Resume Next Next Entity
Stelli ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |