| |
| 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: command und ?-mal pause (1437 mal gelesen)
|
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 11. Jan. 2005 11:17 <-- editieren / zitieren --> Unities abgeben:
Hallo, und tschuldigung, dass ich schon wieder nichts zu folgendem fand: (command "schieben" (if (setq ssTemp (ssget)) ssTemp "") pause pause) ...weiterer Code... Ich will beim schieben BELIEBIG VIELE Objekte auswählen. Danach will ich aber noch weiteren Code ausführen (sonst würde ich ja nur (command "schieben") schreiben uns sonst nichts). Habe also pause durch (if (setq ssTemp (ssget)) ssTemp "") ersetzt. Im Fall einer Objektwahl soll ein Auswahlsatz an command übergeben werden. Wenn nichts gewählt wird, soll die Auswahlprozedur durch "" abgeschlossen werden, was von command ja als ENTER interpretiert wird. So weit so ... naja. Ich weiß nicht, bin ich so dumm oder...? Bei mir nimmt command das evaluierte "" nicht als solches an, sondern "schieben" fragt erneut nach Objekten, ähnlich als hätte ich was falsches eingegeben, und die Auswahlprozedur dadurch nicht abgeschlossen. Vielen Dank für irgentwelche Vorschläge. Vielleicht hat jemand ja auch eine bessere Idee für eine "beliebig häufige" Benutzereingabe (praktisch ?-mal pause) in einem command-Aufruf. Bin für alles dankbar. Grüße, Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Jan. 2005 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
machs so : (if (setq ssTemp (ssget)) (command "_move" ssTemp "" pause pause) ) ------------------ - 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 |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 11. Jan. 2005 11:26 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
(command "") ist das gesuchte. aber eigentlich gehört dir mit der Klatsche auf die Finger. Du wirst doch nicht wirklich mit Pause Lisp programmieren wollen, oder? Bilde mal vorher einen gescheiten Auswahlsatz und wenn der dann endlich sertig ist, übergibst du den an _move. Sieh dir dazu auch mal meinetwegen ssadd an ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 11. Jan. 2005 11:31 <-- editieren / zitieren --> Unities abgeben:
Hmmm, du hast recht! Ich hab ja vermutet, dass ich so dumm bin. Wenn man einmal auf einer falschen Gedanken-Schiene drauf ist... Habe vor lauter Bäumen den Wald nicht mehr gesehen. Danke für die Korrektur. Grüße, Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003 If you want to help and want to respect other people's questions, then, please: Please, ALWAYS assume that I already tried to search for an answer to my question. Thx. Also, please, DON'T ask me what the "actual" goal of my question is. Please, firstly just answer it directly as stated - if you know an answer and want to give it. Only secondly, add other commments. Many, many, many thanks in advance!
|
erstellt am: 11. Jan. 2005 11:36 <-- editieren / zitieren --> Unities abgeben:
Gerade sah ich dass hier ja 2 unterschiedliche Leute antworteten. Eigentlich hätte ich die Antwort auch selbst wissen müssen (von Anfang an anders denken - habe ähnliches ja bereits früher programmiert). Daher vielen Dank für eure Geduld. An euch beide. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 11. Jan. 2005 13:00 <-- editieren / zitieren --> Unities abgeben:
Also hier das Ergebnis, falls es jemand brauchen kann: (defun c:sd () (c:schiebenunddrehen)) (defun c:schiebenunddrehen (/ ssSchieben) (setq ssSchieben (ssget)) (if ssSchieben (progn (command "schieben" ssSchieben "" pause pause) (command "drehen" ssSchieben "" "@") ) ) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 11. Jan. 2005 13:14 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
|
flaschenpost Mitglied Architekt
Beiträge: 497 Registriert: 29.09.2004 ADT 2004 / Windows XP
|
erstellt am: 11. Jan. 2005 13:37 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
|
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 11. Jan. 2005 13:45 <-- editieren / zitieren --> Unities abgeben:
Zitat: Gibt es für die doppelte defun-Zeile einen besonderen Grund ?
Ja: man muss beim eingeben in der Befehlszeile nur 2 Buchstaben tippen und kennt sich trotzdem aus, wenn man den Code anschaut. Zitat: Schöner wäre eine Wahlmöglichkeit beim Drehen : letzter Punkt oder neuen Drehpunkt wählen.
Dann muß man aber während der Arbeit wieder mehr Info eingeben. Noch schöner wäre: für drehen mit neuem Drehpunkt eine eigene funktion zu schreiben, und dann vor Aufrufen der jeweiligen Funktion entscheiden, was man will. Grüße, Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
flaschenpost Mitglied Architekt
Beiträge: 497 Registriert: 29.09.2004 ADT 2004 / Windows XP
|
erstellt am: 11. Jan. 2005 14:02 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
Übersichtlicher wäre es so, finde ich ; Schieben-und-Drehen, Befehl : sd (defun c:sd (/ ssSchieben) .... ) Das ist ja immer die Frage, ob man mehrere ganz einfache Routinen macht, die kaum Abfragen benötigen. Dann hat man am Ende aber wieder eine unübersichtliche Menge an Befehlen. Andererseit gibt es auch oft Situationen, wo sich Optionen erst im Befehl ergeben. Hier z.B. stellst Du nach dem Verschieben eventuell fest, dass ein anderer Drehpunkt günstiger wäre. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 11. Jan. 2005 14:12 <-- editieren / zitieren --> Unities abgeben:
Zitat: ; Schieben-und-Drehen, Befehl : sd (defun c:sd (/ ssSchieben) .... )
Da hast du irgentwie recht. Werde es mir durch den Kopf gehen lassen. Diese Form gefällt mir recht gut. Wahrscheinlich mache ich es dann ab jetzt auch so. bzgl. unübersichtlicher Anzahl an befehlen: da muss man halt immer wieder seine Befehle durchwühlen und die, die man in wirklichkeit nicht braucht, rausschmeissen, die, die man braucht merkt man sich eh dadurch, und für die die man nur ganz selten wirklich braucht, kann man sich eine Inhaltsangabe anlegen (übrigens würde ich eine Inhaltsangabe für alle Befehle machen, vielleicht im Word. Die muss man dann auch immer updaten, aber dadurch hat man dann den Überblick, der einem auch beim entwickeln von neuen Progs hilft - was braucht man noch? - was hat man schon? - worauf kann man aufbauen?) Grüße, Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Jan. 2005 14:20 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
So ... normalerweise macht man eine Doit-Funktion und eine Userinterface-Funktion, die die Parameter für die Doit-Funktion einsammelt und an selbige übergibt! In dem Falle ( auch wenn ich es nicht unbedingt für sinnvoll und gelungen halte <dream> ) : (defun do-it(ssSchieben) (if (=(type ssSchieben)'pickset) (progn (command "schieben" ssSchieben "" pause pause) (command "drehen" ssSchieben "" "@") ) ) ) (defun c:User-interface ( / ssSchieben) (if (setq ssSchieben(ssget)) (do-it ssget) ) ) so kann ich nämlich an die Doit-Funktion auch andere Auswahlsätzte, z.B: mit filter (nur alle Linien) übergeben SCNR ------------------ - 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 |
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 11. Jan. 2005 14:36 <-- editieren / zitieren --> Unities abgeben:
Cool! Das gefällt mir auch sehr gut! Zugabe!! Ich will noch mehr lernen. Von allein brauche ich so lange, um auf solche Dinge draufzukommen, auch wenn es im nachhinein ganz naheliegend aussieht. Danke. Wie lange braucht ihr eigntlich zum entwickeln neuer Programme und Gedankengänge oder auch besseren Strukturen? Bei mir würde ich das Verhältnis der Zeit, die ich zum eintippen brauche, im Vergleich zur Zeit die ich nachdenke, mit 20% Tippen auf der Tastatur und 80% Denken beziffern. Glaube, dass ich eher länger brauche, als andere. Wie ist es bei euch? Grüße, Stephan [Diese Nachricht wurde von autocart am 11. Jan. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Jan. 2005 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
Zitat: Original erstellt von autocart:
Wie lange braucht ihr eigntlich zum entwickeln neuer Programme und Gedankengänge oder auch besseren Strukturen? Bei mir würde ich das Verhältnis der Zeit, die ich zum eintippen brauche, im Vergleich zur Zeit die ich nachdenke, mit 20% Tippen auf der Tastatur und 80% Denken beziffern. Glaube, dass ich eher länger brauche, als andere. Wie ist es bei euch?
.. ist eine Frage des zu lösenden Problems, oder ... Analyse-> Konzept->Coden .. das letztere ist dann meist dann einfachste .. vielleicht sagt dir ja der Name Kiltswitch was ... ------------------ - 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 |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 11. Jan. 2005 14:52 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
Der war gut :-)) Zitat: Original erstellt von CADmium: .. ist eine Frage des zu lösenden Problems, oder ... Analyse-> Konzept->Coden .. das letztere ist dann meist dann einfachste .. vielleicht sagt dir ja der Name Kiltswitch was ...
Udo Hübner ------------------ Mit freundlichem Gruß Udo Hübner ---------- 1. Sind Sie im Zweifel, murmeln Sie. 2. Sind Sie in Schwierigkeiten, delegieren Sie. 3. Sind Sie verantwortlich, denken Sie nach. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 11. Jan. 2005 14:53 <-- editieren / zitieren --> Unities abgeben:
sagt mir nichts... aber kennst du vielleicht ein schlaues Buch, in dem man Programm-Entwicklungs-Techniken lernen kann oder gibt es da irgentwelche einfachen Tipps, irgenteinen altbewährte Struktur, nach der man beim programmieren und denken vorgehen sollte? oder eine bewährte Art und Weise, wie man am besten seine Notizen machen sollte? Ich könnte natürlich auch auf die Uni gehen und mich in ausgewählte Informatik-Vorlesungen zu diesen Themen setzen... oder wie hast du / habt ihr programmieren gelernt? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Jan. 2005 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
Meinereiner hat das Lispeln hiermit und hiermit mehr oder weniger erlernt. Triebfeder war Faulheit. Freihändig Denken konnte ich - glaube ich zumindest - aber schon früher.. ------------------ - 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 |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 11. Jan. 2005 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
|
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 11. Jan. 2005 15:11 <-- editieren / zitieren --> Unities abgeben:
ok, und habt ihr eine grundsätzliche Vorgehensweise (Regeln oder so), um so schnell wie möglich die grundsätzliche Logik hinter der Programmstruktur zu entwickeln? oder macht ihr das halt so aus dem Gefühl heraus. Eine damit zusammenhängende wichtige Frage: Macht ihr zuerst auf Papier Notizen oder hämmert ihr gleich in die Tasten drauf los? Wenn Papier, dann WIE SCHAUEN EURE PAPIER-NOTIZEN AUS????? Ich glaube das ist es, worum es mir eigentlich geht, bzw. was ich eigentlich lernen möchte, wenn es wirklich ein großer Vorteil ist (wie ich ab und zu irgentwo höre oder lese). Danke udn Grüße, Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 11. Jan. 2005 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
Ich glaube an Codes bei denen die Leute (CADmium) sich hier im Forum Notizen (Strukurplanung) machen, an solchen Codes (extrem lang bzw verschachtelt) denkst du noch nicht !? [Man wird sich bei so 3-??] Zeilern keine Notizen (machen müssen) meinte ich damit] Ansonsten einfaches Prinzip was man nennen könnte: EVA - Eingabe Verarbeitung Ausgabe, aber das ist ja das was CADmium bereits geschrieben hat. Man könnte natürlich auch einfach mal "auf gut Glück" ein Buch kaufen, einfach mal AMAZON durchstöbern. Ich habe zB mal auf Ebay ein Buch gekauft (Einführung in LISP ca.1982) , das hilft mir Befehlstechnisch praktisch NULL weiter wenn es um AutoLisp geht, aber es ist eben eine Einführung in Programmierung und da steht dann EVA, gut Kommentieren, rekursive Funktionen und Tod und Teufel drin, man muß dann eben den Inhalt auf seine eigenen Bedürfnisse übertragen. [Diese Nachricht wurde von cadffm am 11. Jan. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 11. Jan. 2005 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
Hallo autocart Also Regeln mache ich mir eigentlich kaum, das kann ja jeder so handhaben wie er will (Meine Meinung). Natürlich sollten Programme möglichst kompakt sein, soll heißen nicht all zu umständlich. Das ergibt sich allerdings im laufe der Erfahrung und auch im laufe des Programmierens selber. Notizen mache ich mir höchstens im Programm selber. Dialogfelder male ich mir vorher auf, bevor ich die programmiere. Da ändert man öffters herum, bis die stehen und übersichtlich sind. Auch wenn man kompakte Programme schreibt, sollte man natürlich etwas Luft lassen, damit man die Programme besser nachvollziehen kann. Erst recht wenn man die später ändern möchte. Ansonsten muß ich cadffm recht geben. Es ist oft sehr interessant Programme von anderen zu lesen, weil jeder einen etwas anderen Weg geht und man so ganz neue Anregungen bekommt. Gant toll ist da die Kostenlos-CD http://ww3.cad.de/foren/ubb/Forum251/HTML/000035.shtml Das ist eine geniale Fundgrube. Nochmal ein großes Dankeschön dafür. ------------------ Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 11. Jan. 2005 16:33 <-- editieren / zitieren --> Unities abgeben:
na gut, die CD habe ich auch schon. danke für den Hinweis, Martin. Also ich muss einmal die infos von allen Kommentaren verarbeiten. udn dann meinen eigenen Stil in mühseliger Kleinarbeit (über die Zeit) weiterentwickeln, schätze ich. Und es waren einige hilfreiche Meldungen dabei. Danke für alle Antworten. Grüße, Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |