| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Werte aus Dynamischen Blöcken auslesen (2596 mal gelesen)
|
berndhock Mitglied Holztechniker
Beiträge: 35 Registriert: 07.03.2003 AutoCAD2004 und 2005 3,20 gigahertz Intel Pentium 4 1022 Megabytes Installed Memory Matrox Parhelia 128MB
|
erstellt am: 21. Jun. 2007 11:27 <-- editieren / zitieren --> Unities abgeben:
Ich möchte Werte aus Dynamischen Blöcken auslesen z.B. welcher Sichtbarkeitsstatus oder welches Strecken Maß. Hat jemand eine Idee wie das funktioniert oder schon eine Funktion gefunden die das macht. Die Funktion beim einfügen den Block anzusteuern habe ich im Forum gefunden. SUPI
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 21. Jun. 2007 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Hier mal ein Codeschnipsel Code: (setq blkProps (vlax-safearray->list (vlax-variant-value (vla-GetDynamicBlockProperties blkObj)))) (foreach blkProp blkProps (cond ((and (not GradeInAngle)(= (vla-Get-PropertyName blkProp) "Display")) (vla-Put-Value blkProp "GradeOut only")
------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
berndhock Mitglied Holztechniker
Beiträge: 35 Registriert: 07.03.2003 AutoCAD2004 und 2005 3,20 gigahertz Intel Pentium 4 1022 Megabytes Installed Memory Matrox Parhelia 128MB
|
erstellt am: 21. Jun. 2007 11:55 <-- editieren / zitieren --> Unities abgeben:
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 21. Jun. 2007 12:00 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
|
HofCAD Mitglied
Beiträge: 8 Registriert: 12.09.2006
|
erstellt am: 21. Jun. 2007 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Code: (defun c:tdb () (setq obj (vlax-ename->vla-object (car (entsel)))) (setq v (vla-getdynamicblockproperties obj)) (setq vval (vlax-variant-value v)) (setq sal (vlax-safearray->list vval)) (setq salnth (length sal)) (setq count 0) (while (/= count salnth) (vlax-dump-object (nth count sal)) (setq count (+ count 1)) ) (setq count nil) (princ) )
Mit freundlichem Gruß HofCAD CSI Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
berndhock Mitglied Holztechniker
Beiträge: 35 Registriert: 07.03.2003 AutoCAD2004 und 2005 3,20 gigahertz Intel Pentium 4 1022 Megabytes Installed Memory Matrox Parhelia 128MB
|
erstellt am: 21. Jun. 2007 16:27 <-- editieren / zitieren --> Unities abgeben:
Hallo HofCAD, funktioniert genial... Units sind auf jeden Fall unterwegs. Wenn Du jetzt noch eine Funktion hast wie ich auf PropertyName (RO) = "B" ; Value = 1000.0 komme? Genial wäre als Asso - Liste: (("B" . 1000) ("Umkehrstatus" . 0)) Das Ergenis Deiner Funktion sieht bei mir so aus: Objekt wählen: ; IAcadDynamicBlockReferenceProperty: AutoCAD dynamische Blockeigenschaften-Schnittstelle ; Eigenschaftswerte: ; AllowedValues (RO) = ("T10" "T20" "T43" "T42" "T35") ; Description (RO) = "" ; PropertyName (RO) = "Sichtbarkeit" ; ReadOnly (RO) = 0 ; Show (RO) = -1 ; UnitsType (RO) = 0 ; Value = "T10" ; IAcadDynamicBlockReferenceProperty: AutoCAD dynamische Blockeigenschaften-Schnittstelle ; Eigenschaftswerte: ; AllowedValues (RO) = (0 1) ; Description (RO) = "" ; PropertyName (RO) = "Umkehrstatus" ; ReadOnly (RO) = 0 ; Show (RO) = -1 ; UnitsType (RO) = 0 ; Value = 0 ; IAcadDynamicBlockReferenceProperty: AutoCAD dynamische Blockeigenschaften-Schnittstelle ; Eigenschaftswerte: ; AllowedValues (RO) = nil ; Description (RO) = "B" ; PropertyName (RO) = "B" ; ReadOnly (RO) = 0 ; Show (RO) = -1 ; UnitsType (RO) = 2 ; Value = 1000.0 ; IAcadDynamicBlockReferenceProperty: AutoCAD dynamische Blockeigenschaften-Schnittstelle ; Eigenschaftswerte: ; AllowedValues (RO) = nil ; Description (RO) = "" ; PropertyName (RO) = "Origin" ; ReadOnly (RO) = -1 ; Show (RO) = 0 ; UnitsType (RO) = 0 ; Value = (0.0 0.0 0.0)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
berndhock Mitglied Holztechniker
Beiträge: 35 Registriert: 07.03.2003 AutoCAD2004 und 2005 3,20 gigahertz Intel Pentium 4 1022 Megabytes Installed Memory Matrox Parhelia 128MB
|
erstellt am: 26. Jun. 2007 16:00 <-- editieren / zitieren --> Unities abgeben:
Hallo, falls es jemand braucht hier die Funktion mit Ergebnis einer Asso - Liste: (defun t:tdb (wert / obj v vval sal salnth count erg) (setq obj (vlax-ename->vla-object (car (entsel)))) (setq v (vla-getdynamicblockproperties obj)) (setq vval (vlax-variant-value v)) (setq sal (vlax-safearray->list vval)) (setq salnth (length sal)) (setq count 0) (setq erg nil) (while (/= count salnth) (setq erg (append erg (list (cons (vlax-get-property (nth count sal) 'PropertyName) (vlax-variant-value (vlax-get-property (nth count sal) 'Value)))))) (setq count (+ count 1)) ) erg ) Gruß Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
berndhock Mitglied Holztechniker
Beiträge: 35 Registriert: 07.03.2003 AutoCAD2004 und 2005 3,20 gigahertz Intel Pentium 4 1022 Megabytes Installed Memory Matrox Parhelia 128MB
|
erstellt am: 26. Jun. 2007 16:03 <-- editieren / zitieren --> Unities abgeben:
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 10. Jul. 2007 07:51 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Hallo HofCAD, bei mir geht das nicht. Das geht: (setq obj (vlax-ename->vla-object (car (entsel)))) (setq v (vla-getdynamicblockproperties obj)) (setq vval (vlax-variant-value v)) Aber wenn ich da bin: (setq sal (vlax-safearray->list vval)) Meldet ACAD das: ; Fehler: ActiveX-Server hat einen Fehler zurückgegeben: Ungültiger Index Was fang ich damit an ? (Ich bin nicht so gut in VLISP, das mit variant und savearray und so hab ich noch nicht so gerafft) Danke Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 02. Aug. 2007 16:55 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Hallo HofCAD, ich wärm das hier noch mal auf: Bei mir geht das nicht. Das geht: (setq obj (vlax-ename->vla-object (car (entsel)))) (setq v (vla-getdynamicblockproperties obj)) (setq vval (vlax-variant-value v)) Aber wenn ich da bin: (setq sal (vlax-safearray->list vval)) Meldet ACAD das: ; Fehler: ActiveX-Server hat einen Fehler zurückgegeben: Ungültiger Index Was fang ich damit an ? (Ich bin nicht so gut in VLISP, das mit variant und savearray und so hab ich noch nicht so gerafft) Danke Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HofCAD Mitglied
Beiträge: 8 Registriert: 12.09.2006
|
erstellt am: 05. Sep. 2007 10:26 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
|