| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Doppelwahl (1205 mal gelesen)
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 07. Nov. 2011 16:21 <-- editieren / zitieren --> Unities abgeben:
Code: (defun c:D () (setq OBJ (car (entsel))) (if (= (cdr (assoc 0 (entget OBJ))) "INSERT") (command "attipedit") ) (if (= (cdr (assoc 0 (entget OBJ))) "TEXT") (command "ddedit") ) (if (= (cdr (assoc 0 (entget OBJ))) "MTEXT") (command "mtedit") ) (if (= (cdr (assoc 0 (entget OBJ))) "DIMENSION") (command "ddedit") ))
Es stellt sich mir die Frage, obwohl ich das Objekt gewählt habe, muss ich es ein zweites Mal wälen, um es zu editieren. ------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 07. Nov. 2011 16:30 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 07. Nov. 2011 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Hallo Dirk, wenn Du die "entsel"-Rückgabe speicherst, kannst Du sie auch an einen Commandbefehl wieder übergeben. Bei Attributen empfielt sich allerdings "nentsel": Code: (defun c:D () (setq OBJ (car (setq sel (nentsel)))) (if (= (cdr (assoc 0 (entget OBJ))) "ATTRIB") (command "attipedit" sel) ) (if (= (cdr (assoc 0 (entget OBJ))) "TEXT") (command "ddedit" sel) ) (if (= (cdr (assoc 0 (entget OBJ))) "MTEXT") (command "mtedit" sel) ) (if (= (cdr (assoc 0 (entget OBJ))) "DIMENSION") (command "ddedit" sel) ))
Grüsse, Henning------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 667 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 07. Nov. 2011 22:14 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 08. Nov. 2011 11:44 <-- editieren / zitieren --> Unities abgeben:
Ja Jetzt muss ich nochmal nachhaken - ich kann die Angabe von Text, Mtext, gerade Bemassung ändern Nicht aber bei Attributtexten und gedrehten Bemassungen, obwohl ich sie mit cond richtig aufrufe Code: (defun c:D () (if (setq AWS (ssget)) (progn (setq I -1) (repeat (sslength AWS) (setq OBJ (ssname AWS(setq I (1+ I)))) (setq DATA (entget OBJ)) ) (cond ((= (cdr (assoc 0 (entget (entnext OBJ)))) "ATTRIB") (command "attipedit" OBJ) ) ((= (cdr (assoc 0 DATA)) "TEXT") (command "ddedit" OBJ) ) ((= (cdr (assoc 0 DATA)) "MTEXT") (command "mtedit" OBJ) ) ((= (cdr (assoc 0 DATA)) "DIMENSION") (command "ddedit" OBJ) )))))
------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 08. Nov. 2011 11:49 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 08. Nov. 2011 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Hallo Dirk, das liegt daran, dass Du bei einem Auswahlsatz (ssget) nicht das Attribut, sondern den Block im AWS hast. Woher sollte AutoCAD wissen, welches der Attribute Du bearbeiten willst? Daher bei Blöcken entweder die Attribute EINZELN wählen (s.o. mit nentsel), oder du nimmst "_eattedit". Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 08. Nov. 2011 13:09 <-- editieren / zitieren --> Unities abgeben:
Kombiniere Die Bedingungen müssen erfüllt sein, um dann command auszuführen Code: (cond ((= (cdr (assoc 0 (entget (setq ENT (car (entsel)))))) "DIMENSION") (command "ddedit" ENT) ) ((= (cdr (assoc 0 (entget (setq ENT (car (nentsel)))))) "ATTRIB") (command "attipedit" ENT) ) ((= (cdr (assoc 0 (entget (setq ENT (car (nentsel)))))) "TEXT") (command "ddedit" ENT) ) ((= (cdr (assoc 0 (entget (setq ENT (car (nentsel)))))) "MTEXT") (command "mtedit" ENT) ) )
Kann man eigentlich sagen, entsel oder nentsel beim auswählen verwenden ------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 08. Nov. 2011 13:25 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 08. Nov. 2011 14:46 <-- editieren / zitieren --> Unities abgeben:
1) Ich möchte ein Lösung schaffen um alle Elemente "DIMENSION" "ATTRIB" "TEXT" "MTEXT" mit einer Funktion ändern zu können 2) Mit ddedit kann ich alle Elemente bis auf "ATTRIB" änderen dazu möchte ich attipedit verwenden 3) Mein Problem besteht nun bei der Auswahl der Elemente für "ATTRIB" "TEXT" "MTEXT" verwende ich nentsel für "DIMENSION" verwende ich entsel ------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 08. Nov. 2011 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 08. Nov. 2011 15:30 <-- editieren / zitieren --> Unities abgeben:
Zitat: was soll die Auswahl im Cond ??
Die Zeilen
Code: ((= (cdr (assoc 0 (entget (setq ENT (car WAHL))))) "ATTRIB") (command "attipedit" (cadr WAHL))
arbeiten nicht korrekt Es wird ddedit auch bei Attributen verwendet, weil die Auswahl mit entsel statt mit nentsel getroffen wird. Meine Frage ist ob man entsel und nentsel in einer Funktion kombinieren kann Also die Abfrage, wenn ein INSERT mit ATTRIBUT kommt verwende die Auswahl mit nentsel bei allen anderen Objekten verwende entsel ------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 08. Nov. 2011 15:32 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
bis auf den Austausch von "ATTRIB" mit "INSERT" sollte CADmiums Code funktionieren. Ich würde noch (cdr (assoc 0 (entget (setq ENT (car WAHL))))) als Variable speichern Code: (setq WAHL (entsel "\nObjekt wählen: ")) (cond ((= (setq obj_type (cdr (assoc 0 (entget (setq ENT (car WAHL)))))) "DIMENSION") (command "ddedit" ENT) ) ((= obj_type "INSERT") (command "attipedit" (cadr WAHL)) ) ((= obj_type "TEXT") (command "ddedit" ENT) ) ((= obj_type "MTEXT") (command "mtedit" ENT) ) ) )
Grüsse, Henning------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 08. Nov. 2011 16:01 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 08. Nov. 2011 17:24 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|