| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Attributsinhalte aus Blöcken in Referenz auslesen (1920 mal gelesen)
|
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002
|
erstellt am: 21. Sep. 2005 08:12 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 21. Sep. 2005 08:27 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
|
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002
|
erstellt am: 21. Sep. 2005 08:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, die Antwort ist Klasse und funktioniert genauso wie ich mir das Vorstelle. Unser Problem ist jetzt das bei uns ein Kollege ein großes Kabelmanagement in Access programmiert hat und wir diese Geschichte gerne darin einbinden möchten. Er konnte leider die LISP Variante nicht verwenden. Er grübelt jetzt seit drei Tagen über diesem Problem und kommt damit nicht wieter, daher halt meine Frage an dieser Stelle. Gruß Lary ------------------ MfG Lary Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 21. Sep. 2005 09:18 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
Also ne Verbindung.. Xref-Attribute-Access.. ist gewünscht.. geht auch mit Lisp und ActivX .. IMHO hat Holger Brischke in der Hinsicht mal was gemacht. Vielleicht solltest du dich mal mit ihm per PM in Verbindung setzen. ------------------ - 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 |
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002
|
erstellt am: 21. Sep. 2005 09:23 <-- editieren / zitieren --> Unities abgeben:
|
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 21. Sep. 2005 12:13 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
Hallo Lary, die Attributte der Xref könnest du so auslesen: Code:
Dim FType(0) As Integer Dim FData(0) As Variant Dim FilterType As Variant Dim FilterData As VariantDim xref As AcadBlock Dim BlockRef As AcadBlockReference Dim BlockDef As AcadBlock Dim BlockInXref As AcadBlockReference Dim Entity As AcadEntity Dim SelSet As AcadSelectionSet On Error Resume Next Set SelSet = ThisDrawing.SelectionSets("MySel") If Err.Number <> 0 Then Set SelSet = ThisDrawing.SelectionSets.Add("MySel") End If On Error GoTo 0 FType(0) = 0 FData(0) = "INSERT" FilterType = FType FilterData = FData SelSet.Clear SelSet.Select acSelectionSetAll, , , FilterType, FilterData For Each BlockRef In SelSet Set BlockDef = ThisDrawing.Blocks(BlockRef.Name) If BlockDef.IsXRef Then Set xref = BlockDef For Each Entity In xref If Entity.EntityType = acBlockReference Then Set BlockInXref = Entity Debug.Print BlockInXref.Name & " hat Attributte: " & IIf(BlockInXref.HasAttributes, "JA", "Nein") End If Next Entity End If Next BlockRef
Stelli ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002
|
erstellt am: 21. Sep. 2005 12:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Stelli, erstmal vielen Dank für Deine Antwort. Dein Lösungsvorschlag gibt eine Liste aller Attribute aller Blöcke der Referenzzeichnng aus. Wir wollen allerdings noch einen Schritt weiter gehen. Es sollen nur die Attribute eines per Mausklick bestimmten Blocks der Referenzzeichnung ausgegeben werden Gruß Lary ------------------ MfG Lary Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 21. Sep. 2005 16:46 <-- editieren / zitieren --> Unities abgeben: Nur für Lary
Hallo Larry, ich wüsste nicht wie man in einer Xref einen Block auswählen kann. Eine Möglichkeit wäre Über Getpoint eine Koordinate zu lesen und diese Koordinate mit den Einfügepunkten in der Xref zu prüfen. Stelli1 ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lary Mitglied Elektroniker f. Ger. & Sys., staatl. gepr. Elektrotechniker
Beiträge: 174 Registriert: 01.08.2002
|
erstellt am: 22. Sep. 2005 08:14 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, erstmal vielen Dank für eure sehr hilfreichen Antworten. Wir haben das Problem letztendlich folgendermaßen gelöst: Sub XrefBlock_auswählen() Dim ACBlockRef As AcadBlockReference Dim elem As AcadObject Dim Array1 As Variant Dim Count As Integer Dim i As Integer Dim Object As AcadEntity Dim PickedPoint As Variant, TransMatrix As Variant, ContextData As Variant ThisDrawing.Utility.GetSubEntity Object, PickedPoint, TransMatrix, ContextData, "Bitte wählen Sie einen Stutzen oder eine Bahn aus ! " Set elem = ThisDrawing.ObjectIdToObject(Object.OwnerID) If TypeOf elem Is AcadBlockReference Then Set ACBlockRef = elem If ACBlockRef.HasAttributes Then Array1 = ACBlockRef.GetAttributes Count = UBound(Array1) i = 0 Do Until i = Count + 1 Select Case Array1(i).TagString Case "STUTZENBEZEICHNUNG" Gerät = Array1(i).TextString ThisDrawing.Utility.Prompt "Die Stutzenbezeichnung lautet:" & Gerät End Select i = i + 1 Loop End If End If End Sub
------------------ MfG Lary Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |