| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: princ Koordinaten bis zur Auswahl (1896 mal gelesen)
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 05. Nov. 2014 09:38 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich habe die Aufgabe mittels einer while-Schleife zu testen, ob ein Eingabe gewählt wurde. Solange dies nicht geschieht möchte ich fortlaufen Koordinaten in der Kommandozeile ausgeben. Mein Ansatz ist der (funktioniert nicht im Test) Code: (while (setq q (getstring "\nVälj nästa punkt [Välj punkthöjd/höjdNivå/Lutning/Avstånd/Höjd&lutning]: ")) (SETQ drag (grread t 4 0)) (cond ((null q)(princ (strcat "\n " (vl-princ-to-string (cadr drag)))) ) ((and q)(princ q) ) ) )
Hat jemand eine bessere Idee ------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 667 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 05. Nov. 2014 10:13 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 05. Nov. 2014 10:58 <-- editieren / zitieren --> Unities abgeben:
Danke Georg, hat nicht funktioniert Bin jetzt etwas weitergekommen. Die Abfrage funktioniert zwar wenn ich Tasten entspr. der angegeben Grossbuchstaben im Menu wähle. In Acad gibt es aber auch die Möglichkeit, die Auswahl in der Kommandozeile zu treffen(anklicken des Wahlwortes). Allerdings gibt mir (cadr drag) dann immer -1 zurück, wie kann man das einbauen ? Code: (defun c:test() (while (princ "\nVälj referenz punkt [Välj punkthöjd/höjdNivå/Lutning/Avstånd/Höjd&lutning]: ") (setq drag (grread t 4 0)) (if (= (type (setq a (cadr drag))) 'LIST) (princ (strcat "\n" (vl-princ-to-string a))) (cond ((= a 118) (alert "Välj punkthöjd") ) ((= a 110) (alert "höjdNivå") ) ((= a 108) (alert "Lutning") ) ((= a 97) (alert "Avstånd") ) ((= a 104) (alert "Höjd&lutning") ) ) ) ) )
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se [Diese Nachricht wurde von cadplayer am 05. Nov. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 05. Nov. 2014 11:26 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 05. Nov. 2014 11:58 <-- editieren / zitieren --> Unities abgeben:
Nein leider nicht ganz, weil ich die Auswahlfunktion innerhalb einer grread-Schleiife benötige In dem Film werden mir Gefälle und Strecke "dynamisch" angezeigt. Jetzt möchte ich mit der Auswahlzeile weitere Änderungen vornehmen, die sich gleich in der Cursoranzeige auswirken. ------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 05. Nov. 2014 16:22 <-- editieren / zitieren --> Unities abgeben:
|
Meldin Mitglied
Beiträge: 381 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 06. Nov. 2014 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 06. Nov. 2014 11:03 <-- editieren / zitieren --> Unities abgeben:
Dann muss ich damit leben. Ich find´s ja Wahnsinn was man mit grread alles so anstellen kann. Mittlerweile blicke ich mit deiner/eurer Hilfe mehr durch. Es ist aber sehr komplex das Thema ------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meldin Mitglied
Beiträge: 381 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 06. Nov. 2014 11:06 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Du solltest mal die grread Einstellungen t 4 0 ändern dann solltest du auf deine Lösung kommen, und dann nicht und dann nicht a kontrollieren sondern drag. ------------------ Gruß Wolfgang Alias: Rabbit007 und Wolli1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 06. Nov. 2014 14:45 <-- editieren / zitieren --> Unities abgeben:
Sorry Wolfgang, seh den Wald vor Bäumen nicht. Egal welche Zahl ich mit der Maus anklicke, ich erhalte immer (11 -1) zurück und weiss nicht was das zu bedeuten hat. Code: (progn (princ "\nTake a choice! [1/2/3/4]: ") (while (setq code_12 (grread (setq code (grread)))) (princ (strcat "\t" (vl-princ-to-string code))) (princ (strcat " " (vl-princ-to-string code_12))) ) )
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 06. Nov. 2014 14:46 <-- editieren / zitieren --> Unities abgeben:
|
Meldin Mitglied
Beiträge: 381 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 07. Nov. 2014 08:49 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 07. Nov. 2014 10:22 <-- editieren / zitieren --> Unities abgeben:
Code: (progn (princ "\nTake a choice! [1/2/3/4]: ") (while (setq code (grread)) (princ (strcat "\t" (vl-princ-to-string code))) ) )
Hi Wolfgang! wenn du das Schnipsel laufen lässt, erscheint die simple princ-Meldung in der Befehlszeile. Bis in die Acad2012version war es nur möglich an meinem Beispiel 1 - 2 - 3 oder 4 per Tastatur zu wählen. Ab der 2013version ist es ausserdem möglich, nicht nur die Kürzel über die Tastatur einzugeben sondern auch mit Hilfe der Maus in der Befehlzeile anzuklicken. Wenn du Thomas seinen Code testest funktioniert das. Seine Anweisungsen sind aber mit get-XXX funktion definiert, sodass es möglich ist beides mit Tastatur oder Maus zu wählen. Nehme ich aber grread als Eingabefunktion her, bleibt es ausgeschlossen mit Maus die Kürzel anzuklicken. Denn da erhalte ich als Rückgabe bei allen 4 Wahlmöglichkeiten nur (11 -1) zurück. Meiner Meinung nach, müsste da mal die grread-funktion überarbeitet werden ?! [Diese Nachricht wurde von cadplayer am 07. Nov. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 11. Nov. 2014 11:12 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Hallo Dirk, an deinen Aufgabenstellungen merkt man, dass gerade die Lisp-Funktionen der Interaktion mit dem Anwender überholt sind - bzw. eine Anpassung an die nun vorhandenen Möglichkeiten erfahren müssten. Anbei eine Lisp und .Net-Funktion die miteinander im Zusammenhang stehen. In der .Net-Funktion wird die Interaktion mit dem User gemacht: Text am Mauszeiger ausgegeben und Ausgabe der aktuellen (mit der Maus) überfahrenen Koordinaten auf dem Bildschirm. Was ausgegeben wird, wird durch die Lispfunktion bestimmt, denn ein Übergabeparamter an die .Net-Funktion bestimmt, welche Lisp-Funktion zur Festlegung des Ausgabetextes am Mauszeiger verwendet werden soll. Am besten die dll mit NETLOAD, die lsp-Dtei mit APPLOAD laden und dann den Befehl: AcGetTest aufrufen. Auch wenn der Lisp-Code undokumentiert ist, sollte sich dieser jedem erschließen. Ein Hinweis noch: die von .Net aus aufgerufenen Lisp-Subroutinen müssen mit c: definiert werden, sonst sind diese nicht (so leicht) ansprechbar. Feedback herzlich willkommen. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 25. Nov. 2014 19:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger! Ich bin schwer beeindruckt, wie gediegen dein tool funktioniert. Gibt mir Ansporn und Motivation den Weg weiterzuverfolgen. (auch wenn die Früchte noch sehr hoch hängen) Ich habe es in version 2014 getestet, da bekam ich bei koord.Anzeigen sowohl am Cursor, als auch in der linken unteren Bildschirmecke. Bei version 2012 gab es keine Cursoranzeige, ich weiss nicht ob das so beabsichtigt war von dir. Vielleicht hast du es auch bemerkt, sobald man einen Punkt mit OFANG ansteuert, wird immernoch die CursorCoodinate angezeigt. Ist das so beabsichtigt. Einen Wunsch hätte ich noch gern gehabt, wenn es möglich ist, denn das war meine ursprüngliche Frage: ob man hier noch eine Menüsteuerung vornehmen kann. Beispielsweise, dass ich vom CoordinatenAnzeigemodus in den Streckenmodus mit Tastatur und Maus in der Commandzeile umstellen kann ?! Achso und der Textstyle bei der ScreenAnzeige in der Fensterecke kommt ziehmlich schräg rüber bei mir (schwer lesbar!) ist aber ne Kleinigkeit Ansonsten super gemacht!
------------------ Gruss Dirk http://cadplayerlounge.blogspot.se Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |