Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Bestimmtes Attribut beim Blockeinfügen via Lisp per Textstring ausfüllen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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 (397 mal gelesen)
Kuschelfee
Mitglied
Bauzeichnerin


Sehen Sie sich das Profil von Kuschelfee an!   Senden Sie eine Private Message an Kuschelfee  Schreiben Sie einen Gästebucheintrag für Kuschelfee

Beiträge: 186
Registriert: 07.05.2007

erstellt am: 24. Mrz. 2021 19:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 24. Mrz. 2021 19:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kuschelfee 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Kuschelfee an!   Senden Sie eine Private Message an Kuschelfee  Schreiben Sie einen Gästebucheintrag für Kuschelfee

Beiträge: 186
Registriert: 07.05.2007

erstellt am: 24. Mrz. 2021 19:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Kuschelfee an!   Senden Sie eine Private Message an Kuschelfee  Schreiben Sie einen Gästebucheintrag für Kuschelfee

Beiträge: 186
Registriert: 07.05.2007

Windows 10 Pro
AutoCAD 2022.1.3
Soficad 2022-4
Advance Steel 2022.1.3

erstellt am: 24. Mrz. 2021 19:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 24. Mrz. 2021 20:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kuschelfee 10 Unities + Antwort hilfreich

Okay, dann musst du halt doch noch einmal rann.
Wenn du -ATTEDIT nicht bemühen möchtest,
dann oer API.
Ein Beispiele hier aus dem Forum.

https://ww3.cad.de/foren/ubb/Forum145/HTML/001385.shtml

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 24. Mrz. 2021 20:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kuschelfee 10 Unities + Antwort hilfreich

Arrrgh
Schlechter Link.
Falls du später / morgen noch Hilfe brauchst wie ich annehme - ich Antworte später noch besser / ausführlicher.
Fahre gerade Fahrrad, da schreibt es sich schlecht 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Kuschelfee
Mitglied
Bauzeichnerin


Sehen Sie sich das Profil von Kuschelfee an!   Senden Sie eine Private Message an Kuschelfee  Schreiben Sie einen Gästebucheintrag für Kuschelfee

Beiträge: 186
Registriert: 07.05.2007

erstellt am: 24. Mrz. 2021 20:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja den link hatte ich schon und meine versuche waren immer Fehlermeldungen

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 24. Mrz. 2021 20:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kuschelfee 10 Unities + Antwort hilfreich

Ich mache es mir jetzt einfach, da du sicher keine doppelten Attribute hast(mehrere Attribute gleichen Namens)!?


Dann einfach so:
(setpropertyvalue object "MYATTNAME" "NeuerWert")

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Kuschelfee
Mitglied
Bauzeichnerin


Sehen Sie sich das Profil von Kuschelfee an!   Senden Sie eine Private Message an Kuschelfee  Schreiben Sie einen Gästebucheintrag für Kuschelfee

Beiträge: 186
Registriert: 07.05.2007

erstellt am: 24. Mrz. 2021 21:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke das hat jetzt funktioniert

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 25. Mrz. 2021 08:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kuschelfee 10 Unities + Antwort hilfreich

Nur mal so interessehalber: Hast du Ahnung wie der grüne Haken an deine letzte Antwort gekommen ist
und vor allem WARUM?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Kuschelfee
Mitglied
Bauzeichnerin


Sehen Sie sich das Profil von Kuschelfee an!   Senden Sie eine Private Message an Kuschelfee  Schreiben Sie einen Gästebucheintrag für Kuschelfee

Beiträge: 186
Registriert: 07.05.2007

erstellt am: 25. Mrz. 2021 08:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Weil ich ihn beim Antwortschreiben angeklickt hatte.
-> Grafik für den Beitrag.
Sorry falls dies nicht gewünscht ist.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 25. Mrz. 2021 08:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kuschelfee 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Kuschelfee an!   Senden Sie eine Private Message an Kuschelfee  Schreiben Sie einen Gästebucheintrag für Kuschelfee

Beiträge: 186
Registriert: 07.05.2007

erstellt am: 25. Mrz. 2021 08:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 25. Mrz. 2021 09:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kuschelfee 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz