Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  vl-ide keywords

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:  vl-ide keywords (7401 mal gelesen)
Hunchback
Mitglied
CAD-Tech


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

Beiträge: 63
Registriert: 10.10.2007

Win2K
AutoCAD 2007

erstellt am: 14. Nov. 2008 09:24    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

Wie viele Lispler hab auch ich eine inzwischen umfangreiche Sammlung
von praktischen Funktionen die ich in einer vielzahl von Programmen
verwende. Jetzt kann ich in Notpad++ hergehen und meine eigenen Funktionen
in eine Liste eintragen sodas sie im Code farblich hervorgehoben werden.

Weil ich aber auch sehr oft mit der vl-ide arbeite frage ich mich, ob schon
irgendjemand versucht hat, eigene Funktionswörter in die vl-ide einzubinden.

Hat jemand von euch schon mal versucht eine der ide-dlls (welche?) mit reshack
oder ähnlichen zu ändern?
Oder kann ich in der vl-ide irgendwo einfach meine Funktionen eintragen
(hab aber keine Möglichkeit bisher gefunden)?

Grüße

Martin

------------------
You seem (in my (humble) opinion (which doesn't mean much)) to be (or possibly could be) more of a Lisp programmer (but I could be (and probably am) wrong).

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 14. Nov. 2008 09:53    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 Hunchback 10 Unities + Antwort hilfreich

Es werden die per externer dll / arx vorhandenen Funktionen farblich gekennzeichet ... du kannst dir z.B. per .NET ne Funktionsbibliothek erstellen, die per netload laden und schon werden die Funktionen eingefärbt dargestellt. In Lisp gibt es keine User-eigenen Funktionen, nur Listen und Symbole ...

------------------
  - Thomas -
"Bei 99% aller Probleme 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

Hunchback
Mitglied
CAD-Tech


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

Beiträge: 63
Registriert: 10.10.2007

Win2K
AutoCAD 2007

erstellt am: 14. Nov. 2008 10:09    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

Verstehe. Nun ja, wir sind eh gerade dabei, ein paar andauernd genutzte Lisps nach C# zu portieren.

Thx und Grüße

Martin

------------------
You seem (in my (humble) opinion (which doesn't mean much)) to be (or possibly could be) more of a Lisp programmer (but I could be (and probably am) wrong).

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

Hunchback
Mitglied
CAD-Tech


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

Beiträge: 63
Registriert: 10.10.2007

Win2K
AutoCAD 2007

erstellt am: 21. Apr. 2009 11:42    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

geht doch.

Code:
(defun codecolor ()

 
(setq functionlist (list 'getattrib 'setattrib 'getBlname 'make_dotted 'dotted->list 'table->list 'getattx 'getatty 'str-pos 'str-tok 'str-div 'str-divset
    'stringtolist 'haschar 'is_empty_p 'getcoords 'getlayer 'gettype 'getpoly 'pline 'islocked?))


(eval (list 'pragma (list 'quote (list (cons 'unprotect-assign functionList)))))

(eval (list 'pragma (list 'quote (list (cons 'protect-assign functionList)))))

  )


Ich muß aber zugeben, das das nicht auf meinem Mist gewachsen ist...

Grüße

Martin

------------------
You seem (in my (humble) opinion (which doesn't mean much)) to be (or possibly could be) more of a Lisp programmer (but I could be (and probably am) wrong).

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 21. Apr. 2009 11:46    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 Hunchback 10 Unities + Antwort hilfreich

Und weil es nicht auf deinem Mist gewachsen ist geben wir auch die Quelle an...
http://www.opendcl.com/forum/index.php?topic=720.0 

------------------
Grüsse

Thomas

Korrekturen zum Kochbuch AutoLISP

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

Hunchback
Mitglied
CAD-Tech


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

Beiträge: 63
Registriert: 10.10.2007

Win2K
AutoCAD 2007

erstellt am: 21. Apr. 2009 12: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

Oh. Danke Thomas, hab auf die Quellenangabe vergessen.
Mittagessen war nahe...

Grüße

Martin

------------------
You seem (in my (humble) opinion (which doesn't mean much)) to be (or possibly could be) more of a Lisp programmer (but I could be (and probably am) wrong).

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 21. Apr. 2009 12: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 Nur für Hunchback 10 Unities + Antwort hilfreich

.. was wären denn dabei gewesen, die pragmafunktion adeskseitig zu dokumentieren .. ?    .. nunja .. thx fürs finden.

------------------
  - Thomas -
"Bei 99% aller Probleme 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

Wolfgang S
Mitglied
CADaver


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

Beiträge: 270
Registriert: 06.03.2006

AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 +
Win XP, Win XP64, Win 7/64

erstellt am: 28. Apr. 2009 06:48    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 Hunchback 10 Unities + Antwort hilfreich

bei Reini Urban gefunden:
http://gd.tuwien.ac.at/faqs/allfaqs/comp.cad.autocad/comp.cad.autocad_A utoLISP_FAQ_(part_1_2)_-_general


Subject: [17] How to export Visual Lisp functions to AutoLISP/AutoCAD?

C: functions are automatically exported to AutoLISP. Plain vlisp/vill
lisp functions must be exported either with (vl-acad-defun funcname) or
their symbols may be exported with a special compiler pragma, defined
either in the LSP file or in the GLD (global declarations) file. Better
use special prefixes for such functions.

.GLD:
(AUTOEXPORT-to-ACAD-PREFIX
  ;| name prefixes for functions to be autoexported to AutoCAD: (strings) |;
  "myx-*"
  )
or one by one
.LSP:
(pragma '((export-to-acad myx-func1 myx-func2)))

Note: There may exist known bugs in vlisp and vill with lists of atomic
symbols and dotted pair lists in such functions arguments and return
values.
See [7].

Functions exported by external apps which are used in your application
must be defined via XDF.

Symbols (variables) whose values are updated in Visual Lisp and which
values are also used in AutoLISP or AutoCAD (the menu e.g.), first may
be marked for the compiler to be external with:
  (pragma '((not-localize myx:symbol)))
but the value must be exported with
  (vlisp-export-symbol 'myx:symbol)
each time the value is changed in Visual Lisp and control is returned
to AutoCAD to be able to get the latest value in AutoLISP or in AutoCAD
with !myx:symbol

You may forget this whole chapter with AutoCAD 2000, however you might
need to export your function from the protected namespace then with
VL-DOC-SET.
See also http://www.autodesk.com/support/techdocs/td17/td175363.htm

allerdings muss ich gestehen, daß ich hier mit meinem momentanen Wissensstand auch kein Licht am Ende des Tunnels seh.

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

GrassHopper
Mitglied
CAD-Betreuer


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

Beiträge: 22
Registriert: 18.03.2006

erstellt am: 29. Mai. 2009 18: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 Nur für Hunchback 10 Unities + Antwort hilfreich


cl-defconstant.zip

 
Hallo Martin,

ich hab hier mal eine Funktion gebbaut die genau das macht was du willst. Abgeschaut hab ich einen Teil aus AnsiCommonLisp.
Die Funktion nennt sich CL:DEFCONSTANT
Aufruf : (cl:defconstant '(Name Value))
Rückgabe: entweder Value oder Nil
Es wird eine Liste mit Konstanten angelegt um bei nochmaligem Aufruf eine Meldung auszugeben dass dieses Symbol schon eine Konstante ist.
Die Liste trägt den Namen *CL-PROTECTED-SYMBOLS*

Der Trick an der Sache ich erzeuge eine neue Datei und lade diese.
Beim Laden geht AutoCAD vom TOP-Level aus (so scheint's mir)

Funktion: siehe Anhang

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

GrassHopper
Mitglied
CAD-Betreuer


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

Beiträge: 22
Registriert: 18.03.2006

erstellt am: 30. Mai. 2009 08:31    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 Hunchback 10 Unities + Antwort hilfreich


cl-defconstant.txt

 
Hallo zusammen,
ich hab das Programm nochmals umgebaut da ich eine Fehler drin hatte.
Es sind allerdings noch vier weitere Programme dazu gekommen.

cl:format gibt Formatierte Strings aus
Beschreibung mit (cl:format '-? nil nil)
Aufruf: (cl:format stream "Destination-String" '(values ...)
stream t => Ausgabe auf Konsole
stream nil => Rückgabe als String
stream #<File ...> => Ausgabe in Datei

Destination-String:
jedes ~A wird durch die Ausgabe mit (vl-princ-to-string value) ersetzt
jedes ~S wird durch die Ausgabe mit (vl-prin1-to-string value) ersetzt
jedes ~D wird durch (itoa IntegerValue) ersetzt
jedes ~,<Anzahl Stellen> wird durch (rtos numberValue 2 <Anzahl Stellen>) ersetzt
jedes ~@ wird durch die Elemente der ValueList ersetzt
(cl:format nil "das sind meine kinder ~@" '((Heike Gabi Manni)))
=> "das sind meine kinder HEIKE GABI MANNI"
Beispiel: (cl:format nil
"~A hat eine Seitenlänge von ~,3m und eine Höhe von ~Dm\nDas ergibt einen umbauten Raum von ~,3m³"
(list "Der Quader" 2.5 4 (* 2.5 2.5 4)))
Ausgabe:
"Der Quader hat eine Seitenlänge von 2.500m und eine Höhe von 4m
Das ergibt einen umbauten Raum von 25m³"
--------------------------
Eine Prädikat-Funktion zum Testen auf Typ String
(defun CL:STRINGP (string) (eq (type string) 'str))

cl:error Ausgabe einer Fehlermeldung wenn ein schon verwendetes Symbol umdefiniert werden soll
(cl:error "Fehlermeldung" argLst)
Formatierung der "Fehlermeldung" wie bei cl:Format

(cl:inplst2lst '(1 . 2)) => '(1 2) wandelt AssocListen in normale Listen um

(cl:gensym-nil) erzeugt ein eineindeutiges Symbol #:G<Nummer>

Konstante in AutoLisp definieren
(CL:DEFCONSTANT 'name value)
Beispiel: (CL:DEFCONSTANT 'MeineSymbolListe '(Das ist meine Symbolliste))
=> (DAS IST MEINE SYMBOLLISTE)
(CL:DEFCONSTANT 'MeineSymbolListe 5)
=> Das Symbol MeineSymbolListe ist ein geschütztes Symbol (type LIST) und kann nicht benutzt werden"

Konstante wieder löschen
(CL:Erase-Protected-Symbol 'Symbol-Name)
CL:Erase-Protected-Symbol entfernt den Schutz des Symbols und setzt den Wert des Symbols auf nil


So klappt's ganz gut

Manfred (GrassHopper)

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

GrassHopper
Mitglied
CAD-Betreuer


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

Beiträge: 22
Registriert: 18.03.2006

erstellt am: 31. Mai. 2009 10:11    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 Hunchback 10 Unities + Antwort hilfreich

Hallo zusammen,
Ich hab Noch ein kleiner Wurm innerhalb der CL:ERROR Funktion drin
deswegen kann die Datei nicht geladen werden.

Alte Funktion:
;|
(defun cl:error (msg args / msgn)
(cond ((and (vl-symbolp msg)
(eq '-? msg))
(princ (VL-PRIN1-TO-STRING '(cl:Error "Fehlermeldung Formatierung siehe (cl:Format '-? nil nil)" [Wert | nil | '(wert1 wert2 ...)))) ==> Hier hab ich das Anführungszeichen an der falschen Stelle (doof oder?)
(prin1))
(CL:STRINGP msg)
(setq msgn(cl:format nil (strcat "\nEs ist ein Fehler in Ihrer Anwendung aufgetreten\nBeschreibung:\n" msg)
(if (or (vl-consp args)
(null args)) args (list args))))
(cl:format t msgn nil)
(VL-EXIT-WITH-ERROR msgn))
((numberp msg)
(VL-EXIT-WITH-VALUE msg))))
|;

durch neue ersetzen
(defun cl:error (msg args / msgn)
(cond ((and (vl-symbolp msg)
(eq '-? msg))
(princ (VL-PRIN1-TO-STRING '(cl:Error "Fehlermeldung Formatierung siehe (cl:Format '-? nil nil) [Wert | nil ]| '(wert1 wert2 ...))")))
(prin1))
(CL:STRINGP msg)
(setq msgn(cl:format nil (strcat "\nEs ist ein Fehler in Ihrer Anwendung aufgetreten\nBeschreibung:\n" msg)
(if (or (vl-consp args)
(null args)) args (list args))))
(cl:format t msgn nil)
(VL-EXIT-WITH-ERROR msgn))
((numberp msg)
(VL-EXIT-WITH-VALUE msg)))

Schönen Wochenstart
Manfred

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 30. Okt. 2009 08: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 Nur für Hunchback 10 Unities + Antwort hilfreich

Hat noch jemand weitere Informationen über pragma gefunden? Ist es damit möglich , aus der (atoms-family 1)-Rückgabe alle geschützten Symbole herauszufiltern ?

------------------
  - Thomas -
"Bei 99% aller Probleme 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

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