| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Bestimmtes Attribut beim Blockeinfügen via Lisp per Textstring ausfüllen (434 / mal gelesen)
|
Kuschelfee Mitglied Bauzeichnerin
Beiträge: 218 Registriert: 07.05.2007
|
erstellt am: 24. Mrz. 2021 19:15 <-- editieren / zitieren --> Unities abgeben:
Ich habe einen dynamischen Block mit mehreren Attributen (Unsichtbar), diesen füge ich immer mit einer selbst erstellten Lisp in meine Zeichnung ein. Eigentlich nur eine einfache Routine um schon beim Einfügen die Parameter (Abmessungen, Darstellung, Drehung...) abzufragen und entsprechend einzustellen. Nun möchte ich gerne das Attribut BEZEICHNUNG ebenfalls gleich beim einfügen abfragen, dies will mir nur nicht so richtig gelingen. Die Abfrage der Eingabe klappt nur wie bekomme ich den Textstring in das Attribut meines Block.
Code: ;Dies ist eine abgespeckter Auszug der Lisp (vl-load-com) (defun setProperty (vlaDynBlock sPropertyName rValue / vlaProperty) (foreach vlaProperty (vlax-safearray->list (vlax-variant-value (vla-GetDynamicBlockProperties vlaDynBlock))) (if (= (vla-get-PropertyName vlaProperty) sPropertyName) (vla-put-value vlaProperty (vlax-make-variant rValue)) ); end if ); end foreach ); end defun (DEFUN C:test()
(command-s "_-Insert" "platte" (setq pt (getpoint "Einfügepunkt: ")) "" "") (while (/=(getvar "CMDACTIVE")0)(command-s pause)) (SETQ object (entlast)) (SETQ Darstellung (getstring "Darstellung: [ANSICHT/DRAUFSICHT/SCHNITTANSICHT/GRUNDRISS/ANSICHT+SCHRAFF/ANSICHT+BEM] <SCHNITT> ")) (SETQ Laenge (GETDIST "Wert für Länge:")) (SETQ Breite (GETDIST "Wert für Breite:")) (SETQ Dicke (GETDIST "Wert für Dicke:")) ;(SETQ bez (Getstring 'T "\nBezeichnung angeben: <Platte, S235> ")) ;hier wäre die Abfrage nach der BEZEICHNUNG (setProperty (vlax-ename->vla-object object) "Darstellung" Darstellung) (setProperty (vlax-ename->vla-object object) "L" Laenge) (setProperty (vlax-ename->vla-object object) "b" Breite) (setProperty (vlax-ename->vla-object object) "t" Dicke) ;Hier habe ich schon einiges probiert um den Text ins Attribut zu bekommen ;leider immer mit Fehler (vla-put-TextString...)
(princ) )
Hatte schon im Forum einige Verweise herausgesucht, nur leider konnte ich diese nicht richtig umsetzen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 24. Mrz. 2021 19:37 <-- editieren / zitieren --> Unities abgeben: Nur für Kuschelfee
Wenn die vielen Beispiele dich noch nicht zum Ziel führten, warum dann nicht einfach die Attribute beim einfügen abfragen lassen und ausfüllen? Du benutzt ja ohnehin schon der nativen EINFÜGE-Befehl, also kannst du einfach ATTDIA aus, aber ATTREQ einschalten und die Attributwerte werden abgeffragt. Einfach zu verstehen, einfach umzusehen und das ganz ohne Programmierung (abgesehen vom Command). Also Attreq und Attdia setzen (fehlt übrigens auch in der aktuellen Fassung), und dann nach der Angabe der Drehung einfach die Eingaben für die Attribute machen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kuschelfee Mitglied Bauzeichnerin
Beiträge: 218 Registriert: 07.05.2007
|
erstellt am: 24. Mrz. 2021 19:44 <-- editieren / zitieren --> Unities abgeben:
Genau das will ich nicht. Der Block hat mehrere Attribute die auch mit Schriftfeldern hinterlegt sind, das Fenster verlangsamt das Arbeiten. So müsste der Block nicht nochmal angefasst werden, nur um eine Bezeichnung zu vergeben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kuschelfee Mitglied Bauzeichnerin
Beiträge: 218 Registriert: 07.05.2007 Windows 10 Pro AutoCAD 2024.1 Soficad 2024-1 Advance Steel 2023.1.1
|
erstellt am: 24. Mrz. 2021 19:52 <-- editieren / zitieren --> Unities abgeben:
ATTREQ / ATTDIA wird auch nicht benötigt da die Attribute eh auf Vorwahl eingestellt sind und dem zufolge keine Eingabeanforderung oder ein Fenster erscheint Dies ist bei diesen Block gewollt da häufig auch keine explizite Bezeichnung benötigt wird In diesen Fall würde man die Bezeichnung einfach bestätigen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 24. Mrz. 2021 20:00 <-- editieren / zitieren --> Unities abgeben: Nur für Kuschelfee
|
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 24. Mrz. 2021 20:07 <-- editieren / zitieren --> Unities abgeben: Nur für Kuschelfee
|
Kuschelfee Mitglied Bauzeichnerin
Beiträge: 218 Registriert: 07.05.2007
|
erstellt am: 24. Mrz. 2021 20:10 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 24. Mrz. 2021 20:33 <-- editieren / zitieren --> Unities abgeben: Nur für Kuschelfee
|
Kuschelfee Mitglied Bauzeichnerin
Beiträge: 218 Registriert: 07.05.2007
|
erstellt am: 24. Mrz. 2021 21:02 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Mrz. 2021 08:25 <-- editieren / zitieren --> Unities abgeben: Nur für Kuschelfee
|
Kuschelfee Mitglied Bauzeichnerin
Beiträge: 218 Registriert: 07.05.2007
|
erstellt am: 25. Mrz. 2021 08:34 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Mrz. 2021 08:43 <-- editieren / zitieren --> Unities abgeben: Nur für Kuschelfee
Ich wollte das nur wissen und weil es ja total unsinnig ist, denn deine Antwort "Danke das hat jetzt funktioniert" ist ja keine Lösung Du hast aber bei jeder Antwort im Thread die Möglichkeit 10 Unities zu vergeben UND dabei den Post mit eiem grünen Haken zu versehen, also zum Beispiel Antwort #7 Da freut sich dann der Helfer über 10 Us und die Antwort ist als Lösung markiert. - Nachgefragt hatte ich aber wirklich weil ich einen automatishcen Vorgang der Phrasenerkennung vermutete, war es dann wohl nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kuschelfee Mitglied Bauzeichnerin
Beiträge: 218 Registriert: 07.05.2007
|
erstellt am: 25. Mrz. 2021 08:59 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Mrz. 2021 09:14 <-- editieren / zitieren --> Unities abgeben: Nur für Kuschelfee
Dagegen spricht auch nicht nichts, in der Hauptsache geht es darum dem Thread eine Markierung zu geben und das wurde erfolgreich gemacht. Ich sehe es aber halt als noch sinnvoller an die betreffende Antwort mit dem Haken zu markieren und wen es interessiert - den Helfer mit 10Us zu beschenken. Alles gut und grüne Haken sind unwichtig (ich bin alles andere ein Fan und wollte diese nie - bis heute) Hauptsache gelöst (und gut zu wissen dass der Haken nicht automatisch durch die Foren-Software gesetzt wurde) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |