| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Reihenfolge bei Objektwahl mit Nentsel ? (535 mal gelesen)
|
Juergen55 Mitglied Elektrotechniker
Beiträge: 282 Registriert: 08.03.2001
|
erstellt am: 26. Okt. 2004 11:25 <-- editieren / zitieren --> Unities abgeben:
Hallo, bei einem Block in dem ich 3 Polylinien habe möchte ich mit folgenden Zeilen jeweils die 3 Elemente durchlaufen und ändern, nun hab ich festgestellt das nicht immer das erste Element im Block genommen wird, sondern dies davon abhängt welches Element ich anklicke obwohl das Ganze ein Block ist. Wie erreiche ich das auf jeden Fall das erste Element genommen wird ? Da sonst ja nicht alle Elemente geändert werden ! (setq bln (car (nentsel "\nBlock wählen:"))) (while (/= bln nil) ; Wihle-Schleife (setq att1 (entget bln)) (setq name (cdr (assoc 0 att1))) (if (= name "LWPOLYLINE")(progn (setq aa (subst (cons 43 bee)(assoc 43 att1)att1)))) (entmod aa) (entupd bln) (setq bln (entnext bln)) ) ;Ende While Gruß, Jürgen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 26. Okt. 2004 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für Juergen55
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 26. Okt. 2004 11:35 <-- editieren / zitieren --> Unities abgeben: Nur für Juergen55
mit (car(entsel)) bekommst du das Insert .. mit (setq BLOCK(tblobjname "BLOCK"(cdr(assoc 2 (entget(car(entsel))))))) den Block mit (setq BLOCKDEF(entget BLOCK)) die Entinityliste mit (setq OBJEKT (cdr (assoc -2 BLOCKDEF)))die Adresse der Blockelemente welche du mit (while OBJEKT ;tu was (setq OBJEKT (entnext OBJEKT)) ) durchlaufen kannst. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Juergen55 Mitglied Elektrotechniker
Beiträge: 282 Registriert: 08.03.2001
|
erstellt am: 26. Okt. 2004 11:43 <-- editieren / zitieren --> Unities abgeben:
|
Juergen55 Mitglied Elektrotechniker
Beiträge: 282 Registriert: 08.03.2001 Microstation V8i, TriCAD, AutoCAD2014, EPlan P8 2.2, Core I5, 16GB Arbeitsspeicher
|
erstellt am: 26. Okt. 2004 14:53 <-- editieren / zitieren --> Unities abgeben:
Hallo, hab das von Cadmium mal auf die Schnelle eingearbeitet, also Objektwahl jetzt mit entsel, im BSP wird die Breite der Polylinien in einem Block auf 50 gesetzt ! (defun c:AWL () (setq BLOCK (tblobjname "BLOCK"(cdr(assoc 2 (entget(car(entsel))))))) ;den Block (setq BLOCKDEF(entget BLOCK)) ;die Entinityliste (setq OBJEKT (cdr (assoc -2 BLOCKDEF))) ;die Adresse der Blockelemente welche du mit (while (/= OBJEKT nil) (princ "\n ") (princ OBJEKT) (setq att1 (entget OBJEKT)) (princ "\n ") (princ att1) (setq name (cdr (assoc 0 att1))) (princ "\n ") (princ name) (if (= name "LWPOLYLINE")(progn (setq aa (subst (cons 43 50)(assoc 43 att1)att1)))) (entmod aa) (entupd OBJEKT) (setq OBJEKT (entnext OBJEKT)) ) ;Ende while (command "_regenall") ) Gruß, Jürgen
-----www.pc-ideal.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 26. Okt. 2004 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für Juergen55
|
Juergen55 Mitglied Elektrotechniker
Beiträge: 282 Registriert: 08.03.2001
|
erstellt am: 27. Okt. 2004 12:52 <-- editieren / zitieren --> Unities abgeben:
Hallo Mapcar, ja das stimmt schon, daneben tippen darf man nicht ! War auch wirklich nur als ganz einfaches Beispiel gedacht. Ich bin kein Lisp-Experte, bei diesen lokalen und globalen Variablen fehlt es mir schon noch an Wissen. Gruß, Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |