Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Reihenfolge bei Objektwahl mit Nentsel ?

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:  Reihenfolge bei Objektwahl mit Nentsel ? (530 mal gelesen)
Juergen55
Mitglied
Elektrotechniker


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

Beiträge: 282
Registriert: 08.03.2001

erstellt am: 26. Okt. 2004 11: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

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




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: 26. Okt. 2004 11:30    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 Juergen55 10 Unities + Antwort hilfreich

http://ww3.cad.de/foren/ubb/Forum145/HTML/000843.shtml

Da siehst du wie man das ganze aufrollt...

PS.: Das was du "bemängelst" , genau dafür ist nentsel ja da !
- Also: ENTSEL usw (siehe Thread oben)

------------------
.Signatur hat derzeit leider Urlaub.

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 26. Okt. 2004 11:35    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 Juergen55 10 Unities + Antwort hilfreich

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


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

Beiträge: 282
Registriert: 08.03.2001

erstellt am: 26. Okt. 2004 11: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

Hallo,

Danke für die schnellen Antworten, bei entsel bekomm ich aber die Polylinien nicht kann das sein ? Aber Cadmium Deine Antwort ist ja sehr ausführlich ich probier das mal !

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

Juergen55
Mitglied
Elektrotechniker


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

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 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

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



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

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 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 Juergen55 10 Unities + Antwort hilfreich

Juergen55,

ist ja netter Code, aber da werden nicht mal die lokalen Variablen als lokal deklariert. Eigentlich sollte sich das doch herumgesprochen haben, oder?

Wenn man beim 2. Ausführen mit der Maus daneben trifft, läuft das Programm unbeeindruckt weiter...

Gruß, Axel Strube-Zettler

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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



Praktikum Versuch - Muster- und Vorrichtungsbau (WiSe 24/25)
Jedes Werkzeug kann immer nur so gut sein wie der Mensch, der dahintersteckt. Deshalb suchen wir bei der Festool Group Mitarbeitende, die gemeinsam mit ihren 3.000 Kolleginnen und Kollegen weltweit etwas bewegen wollen. Tauche ein in unsere Welt ? und erlebe, wie stolz es macht, in einem Familienunternehmen die besten Elektrowerkzeuge der Welt zu bauen.

Unterstütze gemeinsam mit den Kolleg:innen ...

Anzeige ansehenElektrotechnik, Elektronik
Juergen55
Mitglied
Elektrotechniker


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

Beiträge: 282
Registriert: 08.03.2001

erstellt am: 27. Okt. 2004 12: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

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

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