| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Auslesen von Schriftfeldern aus Attributen (1215 mal gelesen)
|
c.schojer Mitglied
Beiträge: 299 Registriert: 23.05.2007 Autocad 2018
|
erstellt am: 19. Nov. 2013 13:58 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 19. Nov. 2013 18:25 <-- editieren / zitieren --> Unities abgeben: Nur für c.schojer
ich bin ja mehr im .Net unterwegs. Da gibt's aber in den Eigenschaften der Attribute ein FieldObjekt, über das man die aktuellen Werte ermitteln kann. Ob das aber in VB drinn ist?? In Lisp ist's beim Auslesen übrigens egal, da findet man im Text den Wert. 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 |
wwwilli Mitglied Ingenieur
Beiträge: 410 Registriert: 21.03.2006 ACAD MAP 3D 2012. VestraCAD. Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.
|
erstellt am: 19. Nov. 2013 18:49 <-- editieren / zitieren --> Unities abgeben: Nur für c.schojer
Hallo, das geht. Ich schnipsel Dir da was hin, musst selbst zusammenkleben. Sorry, aber die ganze Routine würde hier etwas weit führen. Ich suche Blöcke nur in Layouts, deshalb packe ich die Suche von daher an, geht auch anders. MfG, wwwilli ThisDrawing.Layouts .Block.Count .Block.Item() If .ObjectName = "AcDbBlockReference" Then If .HasAttributes Then varAttrefs = bloRef.GetAttributes UBound(varAttrefs) varAttrefs().TagString varAttrefs().TextString Äh, ich hoffe, Du verstehst. Musst den ganzen üblichen Salat aus Dim, Set, For, Each, To, Endif usw. noch herum garnieren, damit es genießbar wird... [Diese Nachricht wurde von wwwilli am 19. Nov. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Plateia, Canalis Visual Basic
|
erstellt am: 19. Nov. 2013 23:32 <-- editieren / zitieren --> Unities abgeben: Nur für c.schojer
|
wwwilli Mitglied Ingenieur
Beiträge: 410 Registriert: 21.03.2006 ACAD MAP 3D 2012. VestraCAD. Win 7 64bit SP 1, FD 100 GB, Xeon 2,8 GHz, 12 GB.
|
erstellt am: 20. Nov. 2013 01:00 <-- editieren / zitieren --> Unities abgeben: Nur für c.schojer
|
c.schojer Mitglied
Beiträge: 299 Registriert: 23.05.2007 Autocad 2018
|
erstellt am: 20. Nov. 2013 07:42 <-- editieren / zitieren --> Unities abgeben:
Schriftfeldformeln sind sozusagen mit Objekten verbunden dh man kann damit direkt die Eigenschaften von Objekten auslesen und in einem Text ausgeben..... das funktionierts auch recht gut Etwas anders sieht es mit Attributen aus... Wie ich Attribute auslese weiß ich ja wohl und auch der Textstring is kein Problem nur halt die Formel selbst bekommt man so leider nicht! Sub Abfrage_Schriftfeld() Dim xRecordType As Variant, XRecordData As Variant Dim XRecord As AcadXRecord Dim BlockRef As AcadBlockReference Dim Attributes As Variant Dim AttributRef As AcadAttributeReference Dim Dic As AcadDictionary, ent, Testtt, tAtts, AcadObj As AcadObject Dim insPkt, i ThisDrawing.Utility.GetEntity BlockRef, insPkt, "Blockwählen" Attributes = BlockRef.GetAttributes tAtts = BlockRef.GetAttributes 'tBlRef ist eine BlockReference For i = LBound(tAtts) To UBound(tAtts) Dim tAttRef As AcadAttributeReference Set tAttRef = tAtts(i) If tAttRef.HasExtensionDictionary Then Dim tDict As AcadDictionary Set tDict = tAttRef.GetExtensionDictionary For Each ent In tDict Set AcadObj = ent 'Schriftfeld da aber keine Formel :-( Dim EDictionary As AcadDictionary Set EDictionary = AcadObj.GetExtensionDictionary Next ent End If Next i End Sub
[Diese Nachricht wurde von c.schojer am 20. Nov. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |