| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Lisp-Befehl (1953 mal gelesen)
|
FREEMAN_GER Mitglied Bauzeichner
Beiträge: 37 Registriert: 28.11.2003 AMD XP 2400+, 512MB Samsung RAM, 3Dlaps Wildcat VP 880Pro, 120GB Matrox Festplatte, 22" Monitor+ 17" TFT. ADT 2004 + MAP3D 2005
|
erstellt am: 23. Sep. 2004 14:38 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe hier im Forum schon gesucht wie ein wilder, aber leider habe ich nichts passendes gefunden, das mein Problem löst. Vielleicht kann mir ja einer von euch mir helfen? Folgendes: Ich habe einen LISP-Befehl geladen und den kann ich nur starten, wenn ich den Befehl in meine Befehlszeile schreibe, ich möchte aber ihn über ein x-Beliebiges Symbol starten. Das Symbol entwerfe ich mir selbst. Wie bekomme ich nun den Befehl an diese Schaltfläche? Vielleicht kann mir ja einen von Euch helfen? Danke schon einmal im vorraus. FREEMAN Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marvin101010 Mitglied ingenieur der architektur ohne diplom, bauzeichner ohne lehre, cad-admin ohne wissen :-)
Beiträge: 562 Registriert: 22.01.2003 Pentium 4 Windows XP Autocad 2006 Autocad 2006LT + Extender ADT 2007 ArchiCAD
|
erstellt am: 23. Sep. 2004 14:52 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 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: 23. Sep. 2004 14:52 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
Wie Du 'ne Schaltfläche einbaust weißt Du? Dann packe als Makro folgendes rein: (ausgehend von der Annahme das Deine Funktion C:MYFUNC heißt...) ^c^c^p(if (null C:MYFUNC) (load "MYFUNC.lsp"))(princ);MYFUNC; ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kajomies Mitglied Architekt
Beiträge: 263 Registriert: 08.03.2001
|
erstellt am: 23. Sep. 2004 15:01 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
Hallo, Durch klick mit der rechten Maustaste auf eine werkzeugsymbol das Kontextmenü Anpassen auswählen. aus dem Register Befehle eine Benutzerdefinierte Schaltfläche in eine Werkzeugkasten Deiner Wahl reinschieben dann nochmal Rechtsklick auf das neue Werkzeug machen, im Kontextmenü Eigenschaften auswählen und dann in dem Fenster "Diesem Werkzeug zugeordnetes Makro" Deinen Befehl ^C^C Befehl reinschreiben und abspeichern. wenn Du dann noch Dein Symbol draufgemappt hast ist dein neues Werkzeug fertig. Vergiss aber nicht es immer zu laden bevor Du es anwählst. Automatisch geht das mit der ACAD.lsp mfg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 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: 23. Sep. 2004 15:16 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
Hi Kajo, und warum unterschlägst Du all' die anderen Lade-Möglichkeiten? a) so wie ich das mache direkt im Button b) Über appload in die Startgruppe aufnehmen c) über die Funktion autoload d) über die acaddoc.lsp e) über die acad.lsp, wenn sysvar acadlspasdoc 1 ist usw. :-) ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FREEMAN_GER Mitglied Bauzeichner
Beiträge: 37 Registriert: 28.11.2003 AMD XP 2400+, 512MB Samsung RAM, 3Dlaps Wildcat VP 880Pro, 120GB Matrox Festplatte, 22" Monitor+ 17" TFT. ADT 2004 + MAP3D 2005
|
erstellt am: 23. Sep. 2004 16:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Marc, danke das Du, aber auch alle anderen hier, mir so schnell geantwortet habt. Folgendes habe ich nun als Makro reingeschrieben, nur leider tut sich gar nichts. hm.......... ^C^C^P(if (null C:\Systemdateien\AutoCAD_Tools\LISP\Disk\Tools\XKreislinie) (load "XKREISLINIE.lsp"))(princ);XKREISLINIE Woran liegt das nur? mfg FREEMAN_GER Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 23. Sep. 2004 16:16 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
wenn die datei unter "C:\Systemdateien\AutoCAD_Tools\LISP\Disk\Tools\XKreislinie.lsp" liegt, und die funktion als C:XKREISLINIE definiert ist, sieht das so aus: ^C^C^P(if (null C:XKREISLINIE)(load "C:\Systemdateien\AutoCAD_Tools\LISP\Disk\Tools\XKreislinie.lsp")(princ);XKREISLINIE ------------------ - Thomas - "Bei 99% aller Problemen 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 |
FREEMAN_GER Mitglied Bauzeichner
Beiträge: 37 Registriert: 28.11.2003 AMD XP 2400+, 512MB Samsung RAM, 3Dlaps Wildcat VP 880Pro, 120GB Matrox Festplatte, 22" Monitor+ 17" TFT. ADT 2004 + MAP3D 2005
|
erstellt am: 23. Sep. 2004 16:31 <-- editieren / zitieren --> Unities abgeben:
Ach so, noch etwas. Der Lisp-Befehl steht schon in der Startgruppe. Er wird also bei jeden starten mit geladen. Funktioniert auch. Was habe ich nur bei dem Makro falsch gemacht? Die Pfadangabe ich auch so wie ich sie oben angegeben habe. hm.................?? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2012
|
erstellt am: 23. Sep. 2004 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
Original erstellt von marc.scherer: a) so wie ich das mache direkt im Button :-)Durch das Lesen der Artikel wird man doch immer wieder inspiriert :-) Ich habe mitlerweile schon eine ganze Menge von Lispprogrammen zusätzlich geladen. Bis jetzt habe ich sie über die acaddoc laden lassen. Ich habe aber das Gefühl, dass die vielen Lispler auch manchmal einen Absturz hervorrufen. Warum also nicht direkt unter einem Button laden. Das finde ich gut. So wird die Anwendung nur dann geladen, wenn man sie auch wirklich braucht. Ich für meine Seite werde das mal ein wenig umstricken. Ciao Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 23. Sep. 2004 16:48 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
Sollte eigentlich funktionieren wie Thomas es beschrieben hat. Poste doch mal die Fehlermeldung die du bekommst. ------------------ schöne Grüsse aus der Steiermark Bernd P. Warum Einfach es geht auch kompliziert Bitte Supportangaben eintragen, warum siehst du hier Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AsSchu Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 27.06.2003 ACAD 2012
|
erstellt am: 23. Sep. 2004 16:54 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 23. Sep. 2004 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
schonmal so probiert? ^C^CXKREISLINIE macht natürlich auch nur Sinn, wenn dein Lisp auch so aufgerufen wird. Sieh mal nach was hinter (defun c: steht. Dazu musst das lisp mit 'nem Editor öffnen (Notepad, Word,....) ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 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: 23. Sep. 2004 17:26 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
XKreislinie... lol das ist von mir :-) Wo hast Du das denn her? Wenn ich mich recht entsinne gab's dazu auch mal 'n Menü im "offiziellen" Download. (Bin mir aber nicht mehr sicher...) Dein Code:
(if (null C:\Systemdateien\AutoCAD_Tools\LISP\Disk\Tools\XKreislinie)
ist natürlich Quatsch, aber das kannst Du nicht wissen. Wenn man in Lisp mit "(defun NAME" eine Funktion definiert, ist "NAME" nicht mehr null. Das "if" statement fragt also, lapidar gesagt, "Wenn nichts mit dem Namen "NAME" existiert dann...." dann kommt das, was passieren soll: Hier eine "load" Funktion. Dabei gilt: Habe ich mein(e) Lisp Datei(en) im Acad-Suchpfad, oder aber den Suchpfad um mein(e) eigene(s)(n) Verzeichnis(se) erweitert, reicht das Statement (load "LISPDATEINAME"). Habe ich das nicht getan, muß ich 'nen Fullpath angeben (was aber bei mit DCL laufenden Funktionen wie XKreislinie 'eh nicht geht. Da muß schon die DCL im Supportpfad liegen). Also:
Code:
(load "C:/Systemdateien/AutoCAD_Tools/LISP/Disk/Tools/XKreislinie.lsp")
Wichtig ist noch: Lisp interpretiert Backslashes als Steuerzeichen! Ein Backslash=Steuerzeichen, ZWEI Backslashes=Ein Backslash!!! Wenn man da in Lisp Ärger vermeiden will, benutzt man einfach anstatt des Backslashes den Slash (s.o.). ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FREEMAN_GER Mitglied Bauzeichner
Beiträge: 37 Registriert: 28.11.2003 AMD XP 2400+, 512MB Samsung RAM, 3Dlaps Wildcat VP 880Pro, 120GB Matrox Festplatte, 22" Monitor+ 17" TFT. ADT 2004 + MAP3D 2005
|
erstellt am: 24. Sep. 2004 09:09 <-- editieren / zitieren --> Unities abgeben:
[QUOTE]Original erstellt von marc.scherer: [B]XKreislinie... lol das ist von mir :-) Wo hast Du das denn her? Wenn ich mich recht entsinne gab's dazu auch mal 'n Menü im "offiziellen" Download. (Bin mir aber nicht mehr sicher...) Erst einmal vielen vielen Dank für Eure Hilfe. Ich wünsche allen hier im Forum erst mal einen wunderschönen Guten Morgen. @Marc. Dieses Tool habe ich wirklich offiziel heruntergeladen, nämlich von dem HERDT-Verlag. Dort bieten Sie "Dein XKREISLINE" an. Aber ich möchte Dir auch deshalb hier einmal ganz kräftig die Schulter klopfen, den das gefällt mir wirklich gut, denn seit dem ich es kenne wende ich es täglich an und es steigt mit wachsenen Beliebtheit. Es funktioniert einwandfrei, denn da hat doch endlichmal jemand nachgedacht. @AsSch und der "GROßE CADWIESEL". Wenn ich hätte besser denken können, dann hätte ich auch sofort das verstanden, was ich da von Euch gelesen habe. Es war nämlich der Schlüssel zum Erfolg. Vielen, vielen Dank. Lösung: 1. Ich hatte den LISP-Befehl geladen und in die Startgruppe gelegt 2. Befehl war erfolgreich eingeladen worden. 3. Die dazugehörige *.dcl Datei habe ich in den Support Pfad angegeben. 4. Der Befehl ließ sich sauber starten mit einer Eingabe in der Befehlszeile 5. Auch an die Option (Parameter in diesem Fall) bin ich dank der *dcl Datei gekommen. 6. Habe ein Symbol, erstellt und dann ein Makro zugeordnet und zwar so wie es zuvor AsSCH und CADWiesel schon beschrieben haben ^C^CXKREISLINIE Das war alles. Also ich kann mich hier nur noch einmal wiederholen. Vielen vielen Dank und ich hoffe ich habe eine halbwegs vernünftige Zusammenfassung mit der letzlich erfolgreichen Lösung präsentieren können. So, dann Abmarsch in das wohl verdiente Wochenende.
Puh gut das es Internet mit diesem sugeilen FORUM gibt. Es macht von Tag zu Tag mehr Spaß.
Eurer Christoph Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 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: 27. Sep. 2004 08:16 <-- editieren / zitieren --> Unities abgeben: Nur für FREEMAN_GER
Hi Freeman, na das nenne ich mal ein anständigs Lösungs-Feedback... Respekt und ein DICKES Lob, sowas würde man als Helfender in Foren gerne öfter mal lesen! 10 U's für Dich dafür. Ciao, Marc ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |