Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Werkzeugkasten Schaltfläche von einem Lisp anlegen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Werkzeugkasten Schaltfläche von einem Lisp anlegen (2654 mal gelesen)
geddo
Mitglied
Techniker


Sehen Sie sich das Profil von geddo an!   Senden Sie eine Private Message an geddo  Schreiben Sie einen Gästebucheintrag für geddo

Beiträge: 330
Registriert: 12.07.2004

Intel Core I7, 16 GB, AutoCAD 2018-19-20, Pytha V24, Win10 prof.

erstellt am: 22. Okt. 2008 17:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo
Ich arbeite mit 2009. Ich habe von einem Bekannten ein Lisp-Programm bekommen, das mir sehr gut gefällt. Ich möchte es aber nicht immer über die Tastatur starten sondern über eine Schaltfläche im Werkzeugkasten.
Meine Frage ist: Wie bekomme ich die einzutragenden Daten aus dem Visual Lisp / Editor herausgelesen?
Wo steht niedergeschrieben, welches Makro ich schreiben bzw. einfügen muss? 

------------------
----------------
Gruß geddo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

Kinder, kauft Kämme!
Es kommen lausige Zeiten.

erstellt am: 22. Okt. 2008 17:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für geddo 10 Unities + Antwort hilfreich

Hi,
hilft Dir diese Zeile für Deinen button schon?
Code:
^C^C^P(if (null C:Befehl) (LOAD "DeinLisp.lsp")) Befehl

Den Befehlsaufruf kennst Du ja, den tippst Du ja auch sonst immer...

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info     Excel -Suche    RuA-Suche     FAQ-ACAD     Hilfe zu CAD.de 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

geddo
Mitglied
Techniker


Sehen Sie sich das Profil von geddo an!   Senden Sie eine Private Message an geddo  Schreiben Sie einen Gästebucheintrag für geddo

Beiträge: 330
Registriert: 12.07.2004

Intel Core I7, 16 GB, AutoCAD 2018-19-20, Pytha V24, Win10 prof.

erstellt am: 22. Okt. 2008 19:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo
Ich bin gerade an ausprobieren, aber ich brauche noch Hilfe.

Habe folgendes eingegeben, aber es funktioniert nicht.

^C^C^P(if (null C:\Programme\AutoCAD 2008\Befehl.fas) (LOAD "BEFEHL.fas")) Befehl

Befehl ist natürlich nur ein Platzhalter für des Lispprogramm.
AutoCAD Verzeichnis ist richtig.

------------------
----------------
Gruß geddo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

Kinder, kauft Kämme!
Es kommen lausige Zeiten.

erstellt am: 22. Okt. 2008 19:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für geddo 10 Unities + Antwort hilfreich

Fast 

Code:
^C^C^P(if (null C:Befehlsaufruf) (LOAD "DeineDatei.fas")) Befehlsaufruf

Beispiel:
Code:
^C^C^P(if (null C:Alle_Ein) (LOAD "ZeigAlles.lsp")) Alle_Ein

was tust Du damit?

- Wenn der Befehl "Alle_Ein" nicht definiert ist (-> unbekannter Befehl Alle_Ein),
- lade die Datei "ZeigAlles.lsp"
- und ruf erneut den Befehl "Alle_Ein" auf.

Ich hoffe, ich hab das richtig "erklärt", mögen die Lispler mich korrigieren ;-)
Namen und Aufrufe sind nur Beispiele

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info     Excel -Suche    RuA-Suche     FAQ-ACAD     Hilfe zu CAD.de 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

geddo
Mitglied
Techniker


Sehen Sie sich das Profil von geddo an!   Senden Sie eine Private Message an geddo  Schreiben Sie einen Gästebucheintrag für geddo

Beiträge: 330
Registriert: 12.07.2004

Intel Core I7, 16 GB, AutoCAD 2018-19-20, Pytha V24, Win10 prof.

erstellt am: 22. Okt. 2008 20:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von runkelruebe:
Fast  :D
- Wenn der [b]Befehl
"Alle_Ein" nicht definiert ist (-> unbekannter Befehl Alle_Ein),
- lade die Datei "ZeigAlles.lsp"
- und ruf erneut den Befehl "Alle_Ein" auf.
[/B]

Demnach habe ich doch alles richtig gemacht?
^C^C^P(if (null C:\Programme\AutoCAD 2008\Befehl.fas) (LOAD "BEFEHL.fas")) Befehl
Was ist den nun falsch?

------------------
----------------
Gruß geddo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 22. Okt. 2008 21:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

hi

   

Zitat:
Original erstellt von geddo:
Demnach habe ich doch alles richtig gemacht?
^C^C^P(if (null C:\Programme\AutoCAD 2008\Befehl.fas) (LOAD "BEFEHL.fas")) Befehl
Was ist den nun falsch?

ich vermute, der ausloeser fuer die auffassungsunterschiede, scheinen die zeichenfolge 'C:' zu sein

@geddo:
'C:' steht in einer deklaration in lisp nicht fuer ein laufwerk, sondern (einfach ausgedrueckt) dafuer, dass du den befehl aus autocad direkt aufrufen kannst.

daher darfst du auch
NICHT:
(if (null C:\Programme\AutoCAD 2008\Befehl.fas)............ schreiben,

SONDERN:
(if (null C:Befehl) .......... da steht nicht die datei, sondern der name der funktion

- alfred -

ps: wenn schon datei-/pfadangaben, dann in anfuehrungszeichen stehen (i.d.r.) und mit '\\' oder '/' fuer pfadtrennung

[Diese Nachricht wurde von a.n. am 22. Okt. 2008 editiert.]

cad4fun
Ehrenmitglied



Sehen Sie sich das Profil von cad4fun an!   Senden Sie eine Private Message an cad4fun  Schreiben Sie einen Gästebucheintrag für cad4fun

Beiträge: 1846
Registriert: 06.12.2004

privat ACAD 2013 und 2017 deutsch, Windows 7 64Bit
HP Elite 7500 Series MT,Intel Cote i5-3470 CPU 3,20Ghz,16GB RAM
ATI FirePro V (FireGL V) Graphics Adapter
Treiberversion: 15.201.1151.1008

erstellt am: 23. Okt. 2008 07:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für geddo 10 Unities + Antwort hilfreich

^C^C^P(if (null C:Befehl) (LOAD "C:/Programme/AutoCAD 2008/BEFEHL.fas")) Befehl

Korrektur:
siehe Geos nächster Beitrag
Sorry, habe ich übersehen beim Kopieren

[Diese Nachricht wurde von cad4fun am 23. Okt. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Geos
Mitglied
Vermessungstechniker i.R.


Sehen Sie sich das Profil von Geos an!   Senden Sie eine Private Message an Geos  Schreiben Sie einen Gästebucheintrag für Geos

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: 23. Okt. 2008 08:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für geddo 10 Unities + Antwort hilfreich

Zitat:
^C^C^P(if (null C:Befehl.fas) (LOAD "C:/Programme/AutoCAD 2008/BEFEHL.fas")) Befehl

Ohne ".fas":
^C^C^P(if (null C:Befehl) (LOAD "C:/Programme/AutoCAD 2008/BEFEHL.fas")) Befehl

(null c:befehl) -> Eselsbrücke: das "C" steht hier für "Command" - also wenn "Befehl" noch nicht definiert, lade Lisp-Datei.

------------------
Schöne Grüße
Ernst

www.geopaint.at

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 23. Okt. 2008 10:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für geddo 10 Unities + Antwort hilfreich

Hallo geddo,

vielleicht ist dies ja nicht das einzige Zusatztool, welches du irgendwann mal in deiner Oberfläche einbinden möchtest.
Daher solltest du dir unbedingt mal das Thema CUI ansehen und dir dann eine eigene CUI-Datei erzeugen, in welcher du alle deine benutzerdefinierten Befehle ablegst.

Das Laden der entsprechenden LSP- oder VLX-Dateien sollte nur dann erfolgen, wenn Befehle aus diesen Programmdateien aufgerufen werden.

Die oben gemachten Vorschläge funktionieren und führen zum Ziel, sind meiner Meinung nach aber nicht ganz 'sauber'.

Es gibt die Möglichkeit, zu einer CUI-Datei eine MNL-Datei zu erzeugen. Das ist eine ganz normale ASCII-Datei, die du mit Notepad schreiben kannst. Diese sollte den gleichen Namen haben wie die CUI-Datei. Alle in dieser Datei enthaltenen Anweisungen werden dann automatisch beim Laden des Menüs (die CUI-Datei) ausgeführt.

Was darin dann stehen msuu kannst du dort nachlesen: http://ww3.cad.de/foren/ubb/Forum145/HTML/000564.shtml#000002

Als Befehlsmakro hast du dann wirklich nur noch den Befehlsnamen stehen und nichts weiter mit (if ...) -> ^C^CBefehl

Zusätzlicher Effekt ist, wenn du so verfährst, dass du in dieser MNL-Datei auch noch zusätzliche Anweisungen verstecken kannst (z.B. Systemvariablen setzen, ...)

Bei Fragen ...

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

geddo
Mitglied
Techniker


Sehen Sie sich das Profil von geddo an!   Senden Sie eine Private Message an geddo  Schreiben Sie einen Gästebucheintrag für geddo

Beiträge: 330
Registriert: 12.07.2004

Intel Core I7, 16 GB, AutoCAD 2018-19-20, Pytha V24, Win10 prof.

erstellt am: 23. Okt. 2008 15:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

So, vielen Dank für die zahlreichen Ratschläge.
Ich habe soeben zwei Programme in einem eigenen Werkzeugkasten eingebunden. Das funktioniert einwandfrei.

@Brischke
Vielen Dank für die ausführlichen Informationen.
Im Moment bin so schon zufrieden. Im nächsten Schritt und ein wenig mehr Zeit werde ich versuchen nach deinem Vorschlag zu arbeiten, bzw. erst einmal die Befehle anzulegen.

------------------
----------------
Gruß geddo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz