Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Ändern von Einträgen im ACA-Stilmanager mit Lisp

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
  
PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
Autor Thema:  Ändern von Einträgen im ACA-Stilmanager mit Lisp (483 / mal gelesen)
cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 242
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 02. Mai. 2023 15: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


Rename_Wandstilname_AECDictionary-test.dwg


Rename_Wandstilname_AECDictionary.lsp.txt

 
Hallo Leute,
ich möchte per Lisp Stile im Autocad-Stilmanager ändern. Über (dictsearch (namedobjdict) "AEC_WALL_STYLES") und die Gruppencodes 3 und 350 bin ich bis zu den Objektnamen und den Stilnamen
vorgedrungen und habe auch bereist die neuen Stilnamen an ein (setq ...) übergeben.
Aber ich habe keine Idee, wie ich die neuen Stilnamen an das Objekt zurück schreiben.

Mein aktueller Ansatz geht bis:
Befehl: (LOAD "Rename_Wandstilname_AECDictionary.lsp")
"alter Stilname: " MW Reichsklinker dunkel variabel - nicht tragend
"neuer Stilname: " MW Reichsklinker dunkel variabel F90 - nicht tragend

(vlax-ename->vla-object first350DIC) => #<VLA-OBJECT IAecWallStyle 00000227f37fa850>
aber mit
(vlax-get-property (vlax-ename->vla-object first350DIC) "?") komme ich nicht weiter.
Am Ende würde ich gerne sowas machen wie:
(vlax-put-property (vlax-ename->vla-object first350DIC) "StyleName" "MW Reichsklinker dunkel variabel F90 - nicht tragend").
Kann mir da jemand helfen? Die DWG mit den Wandstilen und die Lisp (als Rename_Wandstilname_AECDictionary.lsp.txt) befinden sich im Anhang
Danke für Eure Anregungen
Stefan

------------------
Danke Stefan

------------------
Danke Stefan

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

cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 242
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 02. Mai. 2023 22:28    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

OK, wenn mir auf meine erste Frage keiner eine Antwort geben kann,
hier vielleicht ein anderer Ansatz:

(setq dict (dictsearch (namedobjdict) "AEC_WALL_STYLES")) =>
((-1 . <Objektname: 1e51606de40> ) (0 . "DICTIONARY") (5 . "334") (102 . "{ACAD_REACTORS") (330 . <Objektname: 1e51606e8c0> ) (102 . "}") (330 . <Objektname: 1e51606e8c0> ) (100 . "AcDbDictionary") (280 . 0) (281 . 1)
(3 . "MW Reichsklinker dunkel variabel - nicht tragend") (350 . <Objektname: 1ed197b3ab0> )
(3 . "MW Reichsklinker dunkel variabel - tragend") (350 . <Objektname: 1ed197b3bf0> )
(3 . "Standard") (350 . <Objektname: 1ed197b3ea0> ))

wie kann ich die mehrfach vorkommenden assoc 3 in der Entityliste mit (subst (cons 3.....
nacheinander ersetzen?

------------------
Danke Stefan

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1763
Registriert: 11.10.2004

Window 11
ACAD 2021
CIVIL 2021
BricsCAD ab V14
11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz
32.0GB RAM
NVIDIA GeForce MX450<P>

erstellt am: 03. Mai. 2023 07:45    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 cadking 10 Unities + Antwort hilfreich

Hallo Stefan,
mit MAPCAR könnte man ein mehrfaches substen der 3er-Codes vornehmen:
Code:

(setq dict (mapcar '(lambda(X)
                      (if (=(car X)3)
                        (cons 3 "neuer Wert")
                        X))dict))

Wenn nicht alle Werte gleich sein sollen könnte man auch noch eine Zählvariable verwenden (da gibt es aber bestimmt auch viele andere Varianten)

Code:

(setq n -1)
(setq dict (mapcar '(lambda(X)
                     
                      (if (=(car X)3)
                        (progn
                          (setq n (+ n 1))
                          (cond ((= n 0)
                                  (cons 3 "neuer Wert 1"))
                                ((= n 0)
                                  (cons 3 "neuer Wert 2"))
                                (T
                                  (cons 3 "unbekannt"))
                                )
                          )
                        X))dict))

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

das Flächenstempel_Tool

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

cadking
Mitglied
CAD-Zeichendiensleistung


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

Beiträge: 242
Registriert: 26.10.2004

Intel Quadcore i7,W7-64bit, Quadro FX 3800
MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021

erstellt am: 04. Mai. 2023 00:48    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


Rename_Wandstilname_AECDictionary.lsp.txt


Rename_Wandstilname_AECDictionary-test.dwg

 
so, ich habe es geschafft.
Ich habe keine Listenelemente ausgetauscht, sondern die ganze Entityliste des Dictionary "AEC_WALL_STYLES" mit den aktualisierten GC3-Stilnamen neu erzeugt und dann mit entmod zurückgeschrieben.
Hier eine Beispiel-DWG und die Lisp. Zum Starten der Lisp einfach per DRAG&DROP in die Zeichnung ziehen.

------------------
Danke Stefan

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)2024 CAD.de | Impressum | Datenschutz