| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: Aus euner schleife wieder vor die Schleife zurück springen (906 mal gelesen)
|
schneewitchen Mitglied Konstrukteur
Beiträge: 120 Registriert: 08.07.2007 HP XW4400 Windows XP Prof. 2002 SP2 Intel(R) Core(TM)2 CPU6400 2x 2,13GHz; 3,25 GB RAM NVIDIA Quadro FX1500 OSD 2006 14.50A (14.50.1.4) ModelManager 14.50A
|
erstellt am: 29. Mai. 2008 13:58 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich will eine Schleife mehrmals durchlaufen bis ein bestimmter zustand erreicht ist. Ich will also das Programm dazu bringen wieder vor die schleife (mit "goto" oder ähnlich) zu springen. Hat jemand einen Tipp für mich. Grüße Ronny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 29. Mai. 2008 14:12 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
Wenn Du wirklich "goto" brauchst, machst Du wahrscheinlich gerade einen Fehler 8-) Zunaechst klingt das erst einmal danach, als ob man das mit zwei ineinander verschachtelten Schleifen erledigen kann. Kannst Du ein bisschen Pseudocode hinschreiben, damit man sich besser vorstellen kann, wie Du das machen willst? Claus ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ [Diese Nachricht wurde von clausb am 29. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schneewitchen Mitglied Konstrukteur
Beiträge: 120 Registriert: 08.07.2007 HP XW4400 Windows XP Prof. 2002 SP2 Intel(R) Core(TM)2 CPU6400 2x 2,13GHz; 3,25 GB RAM NVIDIA Quadro FX1500 OSD 2006 14.50A (14.50.1.4) ModelManager 14.50A
|
erstellt am: 29. Mai. 2008 15:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Claus, danke erstmal für deine schnelle Antwort. Anbei der Codeschnippsel. Code: (dolist (elem (sd-inq-obj-children bg)) (setq postfix 1) (dolist (name schwesterteilenamen) (if (equal name (sd-inq-obj-basename elem)) (progn (Display "Namenskonflikt!") (setq kernname (first(sd-string-split name "."))) (display kernname) (display (setq newname (format nil "~a~a~a" kernname "." postfix))) ;;(if (equal newname ??????????????????????) ;; hier weiß ich eben nicht weiter ich will Prüfen ob es den "newname" in der Liste ;; "schwesterteilenamen" gibt. Wenn das der Fall ist dann will ich die oder eine andere ;; Schleife noch mal durchlaufen um den Postfix auf "2" zu ändern und mit nem neuen ;; "newname" die Abfrage zu durchlaufen. ); end progn );end if );end list );end list
Grüße Ronny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 29. Mai. 2008 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
|
Walter Geppert Moderator Frank und Frei
Beiträge: 2143 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook 17 G4, Windows 10 Pro 64
|
erstellt am: 29. Mai. 2008 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
|
schneewitchen Mitglied Konstrukteur
Beiträge: 120 Registriert: 08.07.2007 HP XW4400 Windows XP Prof. 2002 SP2 Intel(R) Core(TM)2 CPU6400 2x 2,13GHz; 3,25 GB RAM NVIDIA Quadro FX1500 OSD 2006 14.50A (14.50.1.4) ModelManager 14.50A
|
erstellt am: 29. Mai. 2008 16:22 <-- editieren / zitieren --> Unities abgeben:
|
Walter Geppert Moderator Frank und Frei
Beiträge: 2143 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook 17 G4, Windows 10 Pro 64
|
erstellt am: 29. Mai. 2008 16:24 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
|
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 29. Mai. 2008 16:25 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
|
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 29. Mai. 2008 16:29 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
Zitat: Original erstellt von Walter Geppert: Laut meinem LISP-Buch ist loop aber so richtig pfui
Die (loop)-Syntax mag in der Tat bei weitem nicht jeder, weil solcher Code sich eher wie Schleifen in Sprachen wie BASIC oder C liest, weniger wie "echtes" Lisp. Dazu kommt, dass ein echter Hardcore-Lisper immer erst die rekursive Loesung hinschreiben würde und Iteration fuer Teufelszeug hält 8-) Manche Schleifen kann man mittels (loop) allerdings sehr elegant und leicht lesbar hinschreiben. Zum Beispiel halt eben sowas wie Code:
(loop while some-condition do (some-stuff))
Claus ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ [Diese Nachricht wurde von clausb am 29. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schneewitchen Mitglied Konstrukteur
Beiträge: 120 Registriert: 08.07.2007 HP XW4400 Windows XP Prof. 2002 SP2 Intel(R) Core(TM)2 CPU6400 2x 2,13GHz; 3,25 GB RAM NVIDIA Quadro FX1500 OSD 2006 14.50A (14.50.1.4) ModelManager 14.50A
|
erstellt am: 29. Mai. 2008 17:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Claus, Hallo Walter, ich hab mal versuch den Code von Claus bei mir einzubauen, aber ich hänge an Fehlermeldungen fest. "LISP-Fehler: GENERALSTRING-SPLIT requires more than one argument." Der Fehler kommt auch wenn ich kein Generalstring sondern nur String verwende. Verwunderte mich irgendwie. Anbei mal mein Makrowust. Vielleicht hat jemand von euch nen Tipp weshalb ich diesen Fehler bekomme. Grüße Ronny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 29. Mai. 2008 17:33 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
Siehe Doku zu sd-string-split - es werden zwei Parameter erwartet, Du übergibst nur einen. Wahrscheinlich deswegen, weil ich vorhin beim Abtippen und Umformen Deines Originalcodes den zweiten Parameter (".") versehentlich unterschlagen hatte. Ist jetzt korrigiert, sorry. ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ [Diese Nachricht wurde von clausb am 29. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 29. Mai. 2008 17:39 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
|
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 29. Mai. 2008 17:54 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
|
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 29. Mai. 2008 21:45 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
|
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 29. Mai. 2008 23:17 <-- editieren / zitieren --> Unities abgeben: Nur für schneewitchen
|
schneewitchen Mitglied Konstrukteur
Beiträge: 120 Registriert: 08.07.2007 HP XW4400 Windows XP Prof. 2002 SP2 Intel(R) Core(TM)2 CPU6400 2x 2,13GHz; 3,25 GB RAM NVIDIA Quadro FX1500 OSD 2006 14.50A (14.50.1.4) ModelManager 14.50A
|
erstellt am: 30. Mai. 2008 14:34 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, aller besten Dank euch beiden! Anbei mein fertiges Makro. Eventuell kann soetwas ja jemand von euch gebrauchen. Es soll dazu dienen Baugruppen die eventuell auch Exemplare haben nach oben hin aufzulösen, wenn sie für die Datenbank (ModMan) nicht benötigt werden. Dabei wird die ausgewählte Baugruppe erst eigenständig gemacht und dann alle Teile und enthaltenen Baugruppen eine stufe nach oben verschoben und Namenskonflikte (Dank Claus) behoben. Grüße aus Thüringen Ronny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |