| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: punkt oder variable (1115 mal gelesen)
|
GG-GREGOR Mitglied CAD - KONSTR.
Beiträge: 79 Registriert: 04.09.2002 SW. ACAD 2010 ACAD Map 3D 2006 Solid Works 2010 Cinema 4D Max 3D<P>HW. mix
|
erstellt am: 01. Okt. 2002 00:31 <-- editieren / zitieren --> Unities abgeben:
hallo möchte gerne ein programm erstellen womit ich einiges erleichtere. auswahl: punkt oder M wie kann ich das vereinen oder trennen ? (SETQ A (GETPOINT "\nPUNKT 1")) für punkt (SETQ B (FIX (GETREAL "\nM"))) für einen ganz zahl zum eingeben ? "nächster punkt oder M" bei "M" sollte eine ganz zahl zum eingeben sein. bei enter sollte "M" den alten wert übernehmen und der punkt 1 abgefragt werden. wie löse ich das problem ? mfg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd Cuder Mitglied Selbständig
Beiträge: 692 Registriert: 10.07.2002
|
erstellt am: 01. Okt. 2002 01:33 <-- editieren / zitieren --> Unities abgeben: Nur für GG-GREGOR
Wenn ich es richtig verstanden habe möchtest du einen Punkt abfragen, alternativ dazu die Eingabe eines Wertes zulassen? Nun, wenn du eine Punkt abfragst und der User einen Wert eingibt berechnet AutoCAD einen neuen Punkt unter Winkel <Letzter Punkt zu Fadenkreuzzentrum> mit eingegeben Abstand. Also geht beides nicht, die Lösung ist offensichtlich nur durch ein Keyword zu lösen: Punkt eingeben oder [Abstand]: oder Abstand eingeben oder [Punkt]: jenachdem wo die Priorität liegt. Wenn du für Abstand bereits einen Wert besitzt solltest du in anzeigen un als Vorgabe (Leereingabe) anbieten: Punkt eingeben oder [Abstand] <12.45>: (Siehe Befehl VERSETZ) Zum Abschluß, warum (FIX (GETREAL "\nM")) ? Du fragst nach einer Realzahl, schneidest aber die Nachkomma ab? Warum nicht gleich GETINT? (FIX schneidet die Nachkomma ab ohne zu runden, GETINT rundet die Eingabe)
------------------ Bernd Cuder Cad&Co makes CAD easy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd Cuder Mitglied Selbständig
Beiträge: 692 Registriert: 10.07.2002
|
erstellt am: 01. Okt. 2002 01:47 <-- editieren / zitieren --> Unities abgeben: Nur für GG-GREGOR
Meine Lisp Zeiten sind lange her aber hier ein Bsp. Abfrage mit Keyword: (initget 2 "Abstand") '' 2 bedeutet keine 0 Eingabe (setq Point (getpoint "Punkt eingeben oder [Abstand] <45>: ")) Jetzt prüfen was in Point steht, ein Punkt oder "Abstand" oder Leer? Ich wünschte in ARX wärs so einfach :-) ------------------ Bernd Cuder Cad&Co makes CAD easy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GG-GREGOR Mitglied CAD - KONSTR.
Beiträge: 79 Registriert: 04.09.2002 SW. ACAD 2010 ACAD Map 3D 2006 Solid Works 2010 Cinema 4D Max 3D<P>HW. mix
|
erstellt am: 01. Okt. 2002 08:39 <-- editieren / zitieren --> Unities abgeben:
danke Bernd ausgabe: Punkt1 oder M: bei enter sollte er den punkt abfragen . bei "M" soll er mir einen anderen abschnitt im programm abfragen und ausfüren . eingabemöglichkeiten punkt oder M wie löse ich das ? mfg Gregor
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 01. Okt. 2002 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für GG-GREGOR
Hi Gregor, hier ein Beispiel: Code:
(defun test (/ RETVAL) (initget 9 "optionA optionB") (setq retval (getpoint "\nPunkt eingeben oder Option wählen [optionA/optionB]: " ) ;_ end of getpoint ) ;_ end of setq (cond ((= retval "optionA") (setq retval (subfunction-a))) ((= retval "optionB") (setq retval (subfunction-b))) (T) ;_ ansonsten tue nix ) ;_ end of cond retval ) ;_ end of defun(defun subfunction-a () "Ausführung von A" ) ;_ end of defun (defun subfunction-b () "Ausführung von B" ) ;_ end of defun
Zu Deinem: "bei "M" soll er mir einen anderen abschnitt im programm abfragen und ausfüren" Das "riecht" nach einem "GoTo" Befehl... Gibt es in Lisp nicht, ist auch nicht nötig. Mußt Du mit z.B. einer Subfunktion lösen... ------------------ Ciao, Marc [Diese Nachricht wurde von marc.scherer am 01. Oktober 2002 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 04. Okt. 2002 08:09 <-- editieren / zitieren --> Unities abgeben: Nur für GG-GREGOR
|
benwisch Mitglied Bautechniker, CAD-Konstrukteur
Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 25. Nov. 2002 14:14 <-- editieren / zitieren --> Unities abgeben: Nur für GG-GREGOR
Zitat: Original erstellt von marc.scherer:
Code:
(defun test (/ RETVAL) (initget 9 "optionA optionB") (setq retval (getpoint "\nPunkt eingeben oder Option wählen [optionA/optionB]: " ) ;_ end of getpoint ) ;_ end of setq (cond ((= retval "optionA") (setq retval (subfunction-a))) ((= retval "optionB") (setq retval (subfunction-b))) (T) ;_ ansonsten tue nix ) ;_ end of cond retval ) ;_ end of defun(defun subfunction-a () "Ausführung von A" ) ;_ end of defun (defun subfunction-b () "Ausführung von B" ) ;_ end of defun
wieder was gelernt ! hierzu noch mal eine frage... funktioniert das auch mit Blockabfrage ??? also mittels dieser "Control Bits " (XX.. 9) und cond ?? Bsp. script fragt nach einem AT-Block, oder der Anwender soll darauf picken. (Abfangfunktion wenn AT-Block mehrfach vorh. ist) und wie bist du auf 9 gekommen ?? habe die tabelle in der onlinehilfe mir angesehen, aber 9 taucht da nicht auf... wartend auf feedback... :-) ------------------ Grüße aus dem Rheingau. Rolf aka Benwisch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 25. Nov. 2002 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für GG-GREGOR
Hallo Rolf, die Werte der Initget-Optionen lassen sich durch Addition kombinieren. in diesem Fall besteht die 9 aus der Option 1 - Leereingabe nicht erlaubt und 8 - Limitenbegrenzung ausschalten Das ist z.B. auch bei dem Objektfang so. Bei Fragen ... Grüße Holger ------------------ Holger Brischke CADlon - Lisp over night Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
benwisch Mitglied Bautechniker, CAD-Konstrukteur
Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 25. Nov. 2002 19:45 <-- editieren / zitieren --> Unities abgeben: Nur für GG-GREGOR
|