| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: LISP oder VBA Benutzerdefinierte Blockrefereinzen (773 mal gelesen)
|
no4iming Mitglied
Beiträge: 2 Registriert: 29.05.2013
|
erstellt am: 29. Mai. 2013 22:43 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, Ich bin seit längerer Zeit auf der suche nach einer Möglichkeit die Veränderbaren Referenzen eins dynamischen Blockes via eines bei einfügen des Blockes erscheinender Abfrage eingeben zu müssen (z.b. Block insert basispunkt angeben, Abfrage zur eingabe von höhe breite tiefe z.b.) hoffe mir kann hier wer helfen.. danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
reltro Mitglied student
Beiträge: 125 Registriert: 08.11.2009 Acad 2012 - VBA,Lisp Revit 2012 3dsMax 2012 Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3
|
erstellt am: 30. Mai. 2013 17:08 <-- editieren / zitieren --> Unities abgeben: Nur für no4iming
hey... Glaube du suchst nach sowas? Code:
(defun BlockRef:GetDynamicProps (block / ) (mapcar (function (lambda (_prop ) (cons (vla-get-propertyname _prop) (vlax-get _prop 'Value)) ) ) (vlax-invoke block 'GetDynamicBlockProperties) ) )
und dann Code:
(defun BlockRef:SetDynamicPropValue (block prop value / ) (setq prop (strcase prop)) (vl-some (function (lambda ( _prop ) (if (eq prop (strcase (vla-get-propertyname _prop))) (progn (vla-put-value _prop (vlax-make-variant value (vlax-variant-type (vla-get-value _prop)) ) ) value ) ) ) ) (vlax-invoke block 'GetDynamicBlockProperties) ) )
Dazwischen musst du nun noch deine Abfrage positionieren... bzw. wäre in diesem Fall ein Umbau des Konstrukts von Vorteil, da die "DynamicBlockProperties" in diesem Fall 2x durchlaufen werden. Die zu übergebende BlockReferenz ist hier ein VLA-Object lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
reltro Mitglied student
Beiträge: 125 Registriert: 08.11.2009 Acad 2012 - VBA,Lisp Revit 2012 3dsMax 2012 Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3
|
erstellt am: 30. Mai. 2013 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für no4iming
|
no4iming Mitglied
Beiträge: 2 Registriert: 29.05.2013
|
erstellt am: 03. Jun. 2013 21:29 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antwort dadurch das ich mich nicht wirklich in lsp auskenn dacht ich mich evtl reindenken zu können .... doch leider muss ich zugeben ich hab genau 0 ahnung woh ich was eingebn sollt ^^ ich hätt 3 parameter zu setzen name des blockes kfv STAM STAM_H KH hab es jetzt versucht in irgend einer weiße da unter zu bringen doch irgendwie scheitere ich =( Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
reltro Mitglied student
Beiträge: 125 Registriert: 08.11.2009 Acad 2012 - VBA,Lisp Revit 2012 3dsMax 2012 Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3
|
erstellt am: 04. Jun. 2013 14:57 <-- editieren / zitieren --> Unities abgeben: Nur für no4iming
hey... zeig doch mal her wie du's versucht hast, dann kann dir auch geholfen werden... Zu den Eingangswerten:
zu BlockRef:GetDynamicProps - "Block" will eine Blockreference sein, und zwar als VLA-Object; vielleicht fehlt dir (vlax-ename->vla-object ... ? zu BlockRef:SetDynamicPropValue - "block" same same wie oben - prop als String - Value als Wert
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |