Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Alias für eigene Befehlsfolgen erstellen

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:  Alias für eigene Befehlsfolgen erstellen (5535 mal gelesen)
Erwin Furtner
Mitglied
Schreinermeister / techn. Administration


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

Beiträge: 71
Registriert: 12.01.2009

Betriebssystem: Windows XP / Windows Vista
AutoCAD-Version: 2010/2011 (OEM)

erstellt am: 01. Mrz. 2010 11:13    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

Servus Forum, Servus Profis,

Meine Frage kurz und knapp:

Kann man für eigene Befehlsfolgen (Scripte, Makros oder wie sie sonst heißen) eigene Aliasnamen vergeben, die dann auch - wie ein Standardbefehl - über die Befehlszeile bzw. als Kurztastenbefehl über die PGP-Konfiguration aufgerufen werden können??

Für sachdienliche Hinweise bereits jetzt dankend

E. Furtner

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


Ex-Mitglied

erstellt am: 01. Mrz. 2010 12:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

leider nein, ABER:

Du kannst Dir in AutoCAD eigene Befehle erstellen, die einfachste Form mittels LISP.

(defun C:myCircle()(command "_circle" "2P"))

und als Alias kannst Du definieren

MC, *myCircle

Das LISP muss in diesem Fall vorher geladen sein, sonst funkt auch der Befehl MC nicht.


Oder Du definierst Dir gleich die Funktionen mit LISP

(defun C:MC()(command "_circle" "2P"))

Dann brauchst Du nur das LISP laden und Dir steht in der Befehlszeile der Befehl MC zur Verfügung.

Das LISP-Statement ist für einfache Befehlsfolgen sehr simple:

defun C:MC() ==> steht für neuer Befehl namens 'MC'
(command "_circle" "2P") ==> command bedeutet schlicht, folgendes einfach an die Befehlszeile senden, als würde es vom Anwender eingegeben. In diesem Fall Kreis mit Option 2-Punkte.


HTH, - alfred -


------------------
www.hollaus.at

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

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: 01. Mrz. 2010 14:40    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 Erwin Furtner 10 Unities + Antwort hilfreich

Hi Erwin,

und dann gäbe es noch die Lisp Funktion "Autoload".
Nachzulesen in der AutoCAD Hilfe.
Eingetragen in die acaddoc.lsp würde Autoload bei Aufruf eines mit defun c: definierten Befehls in einer Lisp Datei eben diese vorher automatisch laden.

------------------
Ciao,
Marc

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

fips
Mitglied
Lehrer


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

Beiträge: 544
Registriert: 22.05.2001

erstellt am: 01. Mrz. 2010 17:25    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 Erwin Furtner 10 Unities + Antwort hilfreich

Hallo,

wenns nicht allzu lange Befehlsfolgen sind: quickkey von Dotsoft.com >> freestuff.

Fips

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

Erwin Furtner
Mitglied
Schreinermeister / techn. Administration


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

Beiträge: 71
Registriert: 12.01.2009

Betriebssystem: Windows XP / Windows Vista
AutoCAD-Version: 2010/2011 (OEM)

erstellt am: 01. Mrz. 2010 18:27    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 Leute,

ich habe mir die Lisp-Geschichte mal angesehen, würde mir auch gefallen, klappt mir aber leider nicht bei längeren Befehlsreihen...

Ausserdem arbeiten wir auf AutoCAD 2010 OEM welches APPLOAD, die ACAD.lsp sowie ACADdoc.lsp nicht unterstützt.

Die Fragen, die sich nun stellen:

- Gibt es eine Möglichkeit, auf die von Alfred beschriebene Weise auch längere Befehlsreihen aufzurufen?

- Gibt es zudem die Möglichkeit, mehrerer solcher Befehle in einer Lisp-Datei zu definieren? (damit man nur eine Datei über einen, vom OEM-Partner bereitgestellten Umweg laden muss)

Nachdem "längere Befehlsreihen" keine konkrete Angabe darstellt, ich aber aus rechtlichen Gründen die Originale nicht veröffentlichen kann, habe ich ein paar ähnlich komplexe Geschichten aus dem AutoCAD-Standard als Beispiel für die Komplexität der Befehlsreihen angefügt:

Kreis über Tangente: ^C^C_circle _3p _tan \_tan \_tan \
Kopieren: $M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_copy,^C^C_copy)
Strecken: $M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_stretch)

In den von mir benötigten Befehlsreihen werden Befehle zudem mit Strichpunkt [;] getrennt hintereinander geschrieben.

Nachdem ich in LISP noch keine Erfahrungen sammeln konnte, hoffe ich sehr, dass es eine Lösung gibt, die aktuell nur als Schaltfläche zur Verfügung stehenden Befehle - über Kurztasten bedienbar machen zu können...

Am Rande: Kann mir jemand einen guten Link empfehlen, wo man mehr über die Grundlagen zu LISP erfahren und die Sprache ggf. sogar erlernen kann?

Beste Grüße

Erwin

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


Ex-Mitglied

erstellt am: 01. Mrz. 2010 18:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Ausserdem arbeiten wir auf AutoCAD 2010 OEM welches APPLOAD, die ACAD.lsp
>> sowie ACADdoc.lsp nicht unterstützt.

Wenn Deine OEM-Version das nicht kann, dann versuch mal:
Parallel zu Deiner Menüdatei eine gleichnamige MNL-Datei zu legen (wird mit jedem Ladevorgang des Menüs mitgeladen), ist eigentlich eine Lisp-Datei mit anderer Extension.

z.B. Dein Menü nennt sich  'myMEN.cuix', dann benennst Du Deine LISP-Datei  'myMEN.mnl'

In dieser kannt Du Deine Definitionen 1:1 hintereinander schreiben, z.B.

(defun C:MC1()(command "_circle" "2P"))
(defun C:MC2()(command "_circle" "3P"))

Du kannst ev. auch in der Hilfe nachsehen, mit welchen Methoden in der OEM-Version LISP-Dateien geladen werden können. ==> diese Info könnte auch für nachfolgende hilfreich sein! 

Siehe auch PM

- alfred -

------------------
www.hollaus.at

Erwin Furtner
Mitglied
Schreinermeister / techn. Administration


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

Beiträge: 71
Registriert: 12.01.2009

Betriebssystem: Windows XP / Windows Vista
AutoCAD-Version: 2010/2011 (OEM)

erstellt am: 01. Mrz. 2010 21: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

Hi Alfred,

ich habe Deinen Tipp getestet, muss aber leider sagen, dass ich keinen Erfolg hatte!

Eine Lisp-Datei mit einer Zeile kann ich über die Befehlszeile ohne weiteres laden und funktioniert auch... Auch die Datei, welche Deine beiden Beispiel-Codes enthält wurde geladen, beim Aufruf von MC1 oder MC2 bekomme ich aber die Meldung "Unbekannter Befehl"!

Die Geschichte mit der MNL-Datei habe ich ebenfalls versucht... (> habe die LISP-Datei, die ich manuell laden und ausführen konnte, einfach umbenannt und zu den CUIx's gepackt) Der Befehlsaufruf wurde aber auch nur mit "Unbekannter Befehl" quittiert! (Weshalb ich davon ausgehe, dass die Datei nicht geladen wurde)

Wenn ich die Geschichte mit den mehreren Befehlsdefinitionen in einer Datei sowie die Sache mit den umfangreichen Befehlsreihen nicht auf die Reihe bekomme, kann ich wahrscheinlich vergessen, die Funktionen über eine Kurztastenbelegung aufrufen zu können...! Oder?

Gruß

Erwin

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

Erwin Furtner
Mitglied
Schreinermeister / techn. Administration


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

Beiträge: 71
Registriert: 12.01.2009

Betriebssystem: Windows XP / Windows Vista
AutoCAD-Version: 2010/2011 (OEM)

erstellt am: 01. Mrz. 2010 21:38    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

Nachtrag zur Hilfe,

Es sieht so aus, als ob bei unserer OEM-Version die Hilfe der Vollversion beigefügt ist...

Sämtliche Befehle, von denen ich bereits weiss, dass sie in der OEM nicht funktionieren (inkl. APPLOAD usw.) sind dort relativ umfassend (ohne Hinweise auf OEM) beschrieben!

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


Ex-Mitglied

erstellt am: 01. Mrz. 2010 22:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

nur mal zur Klarheit bitte folgenden Versuch:

Diesen Inhalt in der Datei  C:\TEMP\ShortCuts.lsp  speichern:
(defun C:MC1()(command "_circle" "2P"))
(defun C:MC2()(command "_circle" "3P"))

Dann AutoCAD starten, in der Befehlszeile eingeben (Vorsicht auf die Art der Schrägstriche! Nicht Backslash verwenden!):
(load "C:/TEMP/ShortCuts.lsp")

Sollte zum einen mal in der Befehlszeile rückmelden:
C:MC2

Zum anderen sollten jetzt beide Befehle verfügbar sein. Wenn das nicht der Fall ist, dann lass mich wissen, ab wo meine Beschreibung nicht mehr stimmt.

- alfred -

------------------
www.hollaus.at

Erwin Furtner
Mitglied
Schreinermeister / techn. Administration


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

Beiträge: 71
Registriert: 12.01.2009

Betriebssystem: Windows XP / Windows Vista
AutoCAD-Version: 2010/2011 (OEM)

erstellt am: 01. Mrz. 2010 22:33    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

Servus Alfred,

1) Die Zeilenschaltung der beiden Codezeilen kann auch in der Form in die Lisp-Datei übernommen werden! Oder?

2) Die Problematik beginnt (und endet) mit der Eingabe in der Befehlszeile:
>> nach der Eingabe des Leerzeichens hinter "(load" erscheint die Meldung "(load LISP-Befehl ist nicht verfügbar."

Die bisherige Variante, die LISP-Datei zu laden war folgende:

Befehl: REVAL [Enter]
Lisp Befehl: (<OEM-Partner>j em:load "c:/temp/shortcuts.lsp" nil) [Enter]
C:MC2
[Enter]
> Nun kann ich - wenn alles passt - den Befehl eingeben und er wird auch ausgeführt (wenn nur eine Zeile in der LISP-Datei enthalten ist.

Wenn ich nun beide Varianten (frecherweise) kombiniere und folgenden Ablauf wähle:

Befehl: REVAL [Enter]
Lisp Befehl: (load "c:/temp/shortcuts.lsp") [Enter]
erscheint: Fehler bei LOAD: "c:/temp/shortcuts.lsp"

Ich hoffe, Du kannst Dir einen Reim daraus machen!

Gruß

Erwin

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

Erwin Furtner
Mitglied
Schreinermeister / techn. Administration


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

Beiträge: 71
Registriert: 12.01.2009

Betriebssystem: Windows XP / Windows Vista
AutoCAD-Version: 2010/2011 (OEM)

erstellt am: 01. Mrz. 2010 22:38    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

OOps: Der Smily ist offenbar durch eine automatische Ersetzung dazwischen gerutscht!

Anstelle des Smily stehen im Original noch ein Doppelpunkt [:] gefolgt von einem Leerzeichen und einem "O" für OEM...

(wenn man sich schon Ausnahmsweise keine Vorschau anzeigen lässt...)

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


Ex-Mitglied

erstellt am: 01. Mrz. 2010 22:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Erwin,

den Befehl REVAL kenne ich nicht und damit vermute ich mal, dass dies entweder ein nur in der OEM-Version definierter Befehl ist oder nur per Applikation (mit der Du die OEM-Version erworben hast) zur Verfügung steht.

Dazu kommt, dass ich nicht's mit LISP am Hut habe. Ich kann Dir nur sagen, dass meine Vorgehensweise in normalem AutoCAD funkt.

Ich würde es auch verstehen, wenn die OEM-Version Befehle blockiert, die eine Erweiterung von AutoCAD-OEM zulassen könnten, denn dann wärs ja nicht mehr applikationsgebunden und damit günstiger.

Vielleicht kann noch jemand mit LISP-Kenntnissen was damit anfangen, ich fürchte, dass ich an dieser Stelle out bin, sorry! 

- alfred -

------------------
www.hollaus.at

Erwin Furtner
Mitglied
Schreinermeister / techn. Administration


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

Beiträge: 71
Registriert: 12.01.2009

Betriebssystem: Windows XP / Windows Vista
AutoCAD-Version: 2010/2011 (OEM)

erstellt am: 01. Mrz. 2010 23:14    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 Alfred,

hilft leider nix!

Ich hoffe, dass ich unseren OEM-Dealer noch davon überzeugen kann, dass eine Erweiterung um befehlszeilenfähige und somit PGP-taugliche Befehlsaufrufe für viele Kunden interessant sind, um die tägliche Arbeit mit der Applikation zu beschleunigen! (auch wenn manche Anwender lieber weiter bunte Bildchen klicken ;-))

Besten Dank trotzdem für Deine Mühe!

Erwin

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