| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Probleme mit Index hochzählen (693 mal gelesen)
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1213 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 09. Jul. 2013 12:19 <-- editieren / zitieren --> Unities abgeben:
Hi ! ich bastel gerade an einer Schleife und in dieser hängt irgendwo ein logischer Fehler. Aber ich finde diesen bei leibe nicht und habe auch schon Kommentare eingebaut - aber der Wert idx wird einfach nicht hochgezählt. Könnte einer von Euch einfach mal einen Blick darauf werfen ? Vermutlich bin ich schon betriebsblind. Code: (while (avt_photo#assoc (avt_photo#create_vari idx "NAME")) (if avt_photo#debug (progn (princ (strcat "\n" (itoa idx) "Zusatzblock: ")) (princ (avt_photo#assoc (avt_photo#create_vari idx "NAME"))) );end-progn ) (progn (cond ;; Einfügung auf der Mitte zwischen MP1 und MP2 ((= (avt_photo#assoc (avt_photo#create_vari idx "INS")) 0) (setq opt_ins_y (/ x_scale 2) opt_ins_x 0.0) ) ;; auf MP2 ((= (avt_photo#assoc (avt_photo#create_vari idx "INS")) 2) (setq opt_ins_y x_scale opt_ins_x 0.0) ) (T ;; BLK1_INS=1 wird angenommen (setq opt_ins_y 0.0 opt_ins_x 0.0) ) );end-cond (avt_photo#setlayer (avt_photo#assoc (avt_photo#create_vari idx "LY"))) (command "._insert" (avt_photo#assoc (avt_photo#create_vari idx "NAME")) (list opt_ins_y opt_ins_x blk_z) "_xyz" (avt_photo#get_scale) (avt_photo#get_scale) 1.0 0.0) ;; Ausrichten der Attribute (avt_photo#align (entlast) (avt_photo#assoc "ATT_ROT") (* (avt_photo#assoc "ATT_HIGHT") (avt_photo#get_scale)) ) (princ "\n--> vor der Group") (setq aws (ssadd (entlast) aws) idx (1+ idx)) (princ "\n--> hinter idx")(princ idx)(princ " --> ")(princ (avt_photo#assoc (avt_photo#create_vari idx "NAME"))) );end-progn );end-while
Die Schliefe vor hinter idx zählt immer bis zu dem maximalen Wert - dann ist Schluss und die while-Schleife wird nicht beendet. Gruß Jan :-) ------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 09. Jul. 2013 12:58 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Ich glaube in deinem Falle müsstest du den index runterzählen bis er nil wird und die while schleife beendet. Weil so wie es auf den ersten Blick ausschaut, zählt er hoch und führt while unendlich durch. Mir fehlt ein bisschen der Hintergrund, was am Ende rauskommen soll. was bedeutet Code: (while (avt_photo#assoc (avt_photo#create_vari idx "NAME"))
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 09. Jul. 2013 13:05 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Der Ausdruck wird aber sicher nicht immer wahr sein, deswegen ist das keine Schleife ins Nirvana. (avt_photo#assoc (avt_photo#create_vari idx "NAME")) @Jan Wenn der IDX-Wert später falsch ist, dann kommt der abgefragte Wert woanders her, nicht aus dieser Schleife. ------------------ Link: User:FAQ (einiges Wissenswertes über AutoCAD) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Praktikant / Werkstudent (m/w/d) als Assistenz der Bauleitung | GOLDBECK?realisiert zukunftsweisende Immobilien in Europa. Wir verstehen Gebäude als Produkte und bieten alle Leistungen aus einer Hand: vom Design über den Bau bis zu Services im Betrieb. Aktuell beschäftigt unser Familienunternehmen mehr als 12.000 Mitarbeitende an über 100 Standorten bei einer?Gesamtleistung von über 6 Mrd. Euro. Unser Anspruch ?building?excellence? steht dabei für Spitzenleistungen ... | Anzeige ansehen | Assistenz, Sekretariat |
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1213 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 09. Jul. 2013 14:38 <-- editieren / zitieren --> Unities abgeben:
|