| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: transparente Tastaturkürzel (1753 mal gelesen)
|
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 22. Nov. 2002 09:59 <-- editieren / zitieren --> Unities abgeben:
Moin, moin, wie man Tastaturkürzel in eine Lisp schreibt habe ich jadank des Forums schon herausgefunden. Gibt es auch eine möglichkeit solche Tastaturkürzel eigentlich auch transparent ausführen? Ich möchte mir nämlich folgenden Befehl aus meiner MNU als Tastenbefehl erstellen. Horizontaler Fang, Endpunkt: .yz;@;_endp Schönes Wochenende
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kramer24 Ehrenmitglied V.I.P. h.c. Architekt
Beiträge: 5885 Registriert: 09.11.2001 Acad Architecture 2023 WIN 10
|
erstellt am: 22. Nov. 2002 10:12 <-- editieren / zitieren --> Unities abgeben: Nur für molo
|
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 22. Nov. 2002 10:25 <-- editieren / zitieren --> Unities abgeben:
Moin Lothar wie muss ich folgenden Eintrag in der Lisp umschreiben, damit er transparent wird? (defun c:zg () (command "_zoom" "g")) ; Zoom Grenzen Variante 1 (defun c:zg () (command "'" "_zoom" "g")) ; Zoom Grenzen
Variante 2 (defun c:zg () (command "'_zoom" "g")) ; Zoom Grenzen Beide Varianten habe ich ausprobiert und beide haben leider nicht funktioniert oder bin ich auf dem Holzweg? Morten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kramer24 Ehrenmitglied V.I.P. h.c. Architekt
Beiträge: 5885 Registriert: 09.11.2001 Acad Architecture 2023 WIN 10
|
erstellt am: 22. Nov. 2002 15:11 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Hallo Morten, leider ist Lispeln nicht mein Spezialgebiet, so dass im Endeffekt Dir jemand anderes weiterhelfen muß... Am Montag sind alle wieder da Lothar ------------------ Lothar Kramer [Diese Nachricht wurde von Kramer24 am 22. November 2002 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd Cuder Mitglied Selbständig
Beiträge: 692 Registriert: 10.07.2002 AutoCAD 2002/2004/2005 unter Windows 2000 Professional SP3 PIV 3.4GHz 1024MB NVIDIA GeForce FX Go5700
|
erstellt am: 23. Nov. 2002 17:07 <-- editieren / zitieren --> Unities abgeben: Nur für molo
|
pepes Mitglied webmaster
Beiträge: 27 Registriert: 17.06.2001
|
erstellt am: 23. Nov. 2002 18:52 <-- editieren / zitieren --> Unities abgeben: Nur für molo
|
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 25. Nov. 2002 11:31 <-- editieren / zitieren --> Unities abgeben:
Danke erstmal für Eure Antworten, aber so richtig schlau bin ich immer noch nicht, da ich mich wirklich nicht besonders gut in Lisp auskenne. -Du kannst Lisp Befehle auch transparent aufrufen (in deinem Fall 'ZG), jedoch nur wenn im Lisp Befehl selbst keine Command Anweisung enthalten ist. Muss bei meiem Lispbefehl, der ja praktisch ein Tastaturkürzel darstellt, nicht zwangsläufig eine Command Anweisung folgen? Im übrigen habe ich den Befehl Zoom Grenze nur genommen, da es sich immerhin um einen funktionierender Befehl handelt (wenn auch nicht transparent). Allerdings habe ich bemerkt, dass es sich bei meinem Ursprünglichen Wunsch anscheinend gar nicht um einen richtigen Befehl handelt, sondern ja eiigentlich nur um eine Punktabfrage. "Ich möchte mir nämlich folgenden Befehl aus meiner MNU als Tastenbefehl erstellen. Horizontaler Fang, Endpunkt: .yz;@;_endp" Ich hätte jetzt an Anlehnung an den Zoombefehl folgende Zeile geschrieben. (defun c:he () (command ".yz" "@" "_endp")) ; horizontaler Fang Endpunkt Da es sich bei .yz anscheinend um keinen richtigen Autocad-Befehl handelt geht meine Zeile schon mal total in die Binsen. Gibt es noch Hilfe für mich? Molo ------------------ Windows 2000, AutoCAD 2000, PitCup 5.1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd Cuder Mitglied Selbständig
Beiträge: 692 Registriert: 10.07.2002 AutoCAD 2002/2004/2005 unter Windows 2000 Professional SP3 PIV 3.4GHz 1024MB NVIDIA GeForce FX Go5700
|
erstellt am: 27. Nov. 2002 17:16 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Also ein Lisp Befehl ist kein Tastaturkürzel sondern tatsächlich ein neu definierter Befehl. Und Lisp Routinen müssen auch keine Command Anweisung enthalten, das ist nur ein angenehmer Zusatzeffekt, ich kann Elemente auch direkt erzeugen, entmake etc. .yz ist wie du schreibst kein Befehl, sondern eine Option bei einer Punktabfrage. .yz;@;_endp würde bedeuten, nehme mir y und z des letzten Punktes, schalte auf Objektfang Endpunkt und nimm das x des gezeigten Punktes. Problem, du bist mitten in einer Punktabfrage, hier kannst du zwar Lisp Routinen transparent aufrufen, aber der aktuellen Punktabfrage über Lisp einen Wert liefern geht meiner Meinung nach nicht (Vielleicht weis jemand mehr darüber). Den gesuchten Punkt würde man in Lisp bekommen über: Variable LASTPOINT liefert den letzten Punkt (daraus y und z) OSMODE auf 1 stellen für Ofang Endpunkt Anweisung GETPOINT fragt nach einen Punkt (daraus x) Wie man den erhaltenen Punkt jetzt in AutoCAD der aktuellen Punktabfrage übergibt weis ich jedoch nicht. ------------------ Bernd Cuder Cad&Co makes CAD easy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 28. Nov. 2002 07:11 <-- editieren / zitieren --> Unities abgeben:
Danke Bernd, auch wenn ich damit noch keine wirkliche Lösung habe, freue ich mich, dass Du dir die Zeit genommen hast, mich ein wenig weiter in die Lispwelt zu führen. Molo ------------------ Windows 2000, AutoCAD 2000, PitCup 5.1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4185 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 28. Nov. 2002 08:36 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Hallo Molo, wenn ich das Richtig verstehe möchtest du einen Punkt, der sich aus der X-Koordinate eines beliebigen Punktes und den Y,Z-Koordinaten eines beliebigen anderen Punkt zusammensetzt. Schreibe einfach folgendes als Befehl auf dein Toolbar-Icon (cons (car (getpoint "Punkt für X:"))(cdr (getpoint "Punkt für YZ:"))) Lösche aber unbedingt das vorgegebene ^C^C - das ist der Abbruch eines evtl gestarteten Befehls. Bei Fragen ... Grüße Holger ------------------ Holger Brischke CADlon - Lisp over night Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3331 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 28. Nov. 2002 08:37 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Moin, oder probier das mal: (defun c:yz (/ c-pt1 c-pt2) (setq ossi (getvar "osmode")) (setq yz-coord (cdr (getvar "lastpoint"))) (setvar "osmode" 1) (setq x-coord (car (getpoint "Punkt für X-Koordinate: "))) (setq xyz (append (list x-coord) yz-coord)) (if (< 0 (getvar "cmdactive")) (if (< 0 (getvar "osmode")) (command "_none" xyz) (command xyz) ) ; if xyz ) ; if (setvar "osmode" ossi) (princ) ) ; defun Ruf das Teil bei der Punktabfrage mit 'yz auf. HTH [Diese Nachricht wurde von CADchup am 28. November 2002 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 28. Nov. 2002 16:43 <-- editieren / zitieren --> Unities abgeben:
Danke Brischke, den Befehl auf eine Toolbar zu legen bringt mir leider nicht so viel, da ich sehr gerne mit Tastaturkürzeln arbeite. Dann bin ich mit dem Kontextmenü genauso schnell. Danke CADcup, das ist genau das was ich gesucht habe. Wenn ich jetz noch die Eingabe ohne den Hochkomma gehen würde könnte man mich gar nicht Glücklicher machen. Leider habe ich heute keine Zeit mir die Datei so richtig anzusehen, aber das werde ich auf jeden Fall noch machen um mir noch andere "horizontale" und vertikale Fänge zu erstellen. Vielen Dank für die Mühe Molo
------------------ Windows 2000, AutoCAD 2000, PitCup 5.1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3331 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 28. Nov. 2002 17:00 <-- editieren / zitieren --> Unities abgeben: Nur für molo
Hier, Dein i-Tüpfelchen: Mach Dir in der Menüdatei Deines Vertrauens im Abschnitt ***ACCELERATORS einen Eintrag wie: [CONTROL+"Q"]'yz Mit diesem "echten" Tastaturkürzel kannst Du das Teil dann ohne Hochkomma starten. Funktioniert übrings auch mit Holgers Einzeiler. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 28. Nov. 2002 17:10 <-- editieren / zitieren --> Unities abgeben:
|