|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | Jetzt verfügbar: NVIDIA RTX PRO 6000 Blackwell Server Edition, eine Pressemitteilung 
 | 
| Autor | Thema:  Reihenfolge bei Objektwahl mit Nentsel ? (592 mal gelesen) | 
 | Juergen55 Mitglied
 Elektrotechniker
 
   
 
      Beiträge: 282Registriert: 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: 22689Registriert: 03.06.2002
 Alles |    erstellt am: 26. Okt. 2004 11:30  <-- editieren / zitieren -->    Unities abgeben:           Nur für Juergen55   | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 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: 282Registriert: 08.03.2001
 |    erstellt am: 26. Okt. 2004 11:43  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Juergen55 Mitglied
 Elektrotechniker
 
   
 
      Beiträge: 282Registriert: 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: 1250Registriert: 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: 282Registriert: 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 |