Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  kostenfreie ArchTools als Lisp Library

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:  kostenfreie ArchTools als Lisp Library (418 mal gelesen)
archtools
Mitglied



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

Beiträge: 842
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 28. Mai. 2023 10:36    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

Hall Lispler,
wie unter https://ww3.cad.de/foren/ubb/Forum330/HTML/000089.shtml beschrieben, gibt es die ArchTools ab sofort kostenfrei. Das Programm kann auch im Quellcode erworben werden, und kann sowohl in de rkostenfreien kompilierten Version als auch im Quellcode als sehr umfangreiche Lisp-Funktionsbibliothek genutzt werden, die Lisp-Programmierer dann in eigene Apps einbauen und ohne Lizenzgebühren weiter geben dürfen.

Leider habe ich mir bisher nicht die Mühe gemacht, eine Übersicht über die darin stehenden Funktionen aufzustellen. Falls hier in der Community ausreichend Interesse besteht, wird das aber noch nachgeholt.

Programmierer können das sofrt testen: einfach von https://ww3.cad.de/foren/ubb/Forum330/HTML/000089.shtml die aktuelle ArchTools Version downloaden, installieren und loslegen. Beispielsweise gibt es Funktionen wie:
(at-setvar <Varname> <Value> )
um beliebige eigene Systgemvariablen definieren und in der DWG speichern zu könne. Dazu gibt es natürlich auch die Funktion zum Auslesen:
(at-getvar <VarName> )

Das funktioniert auch mit Symbolen, Listen und DottedPairs:
(at-setvar "TEST" '(1 2 3 A B C))
(at-setvar "TEST" '(1 . 2))
Man kann deshalb auch ganze DEFUNs damit speichern:
(at-setvar "TEST" '(defun (a b) (+ a b)))

Oder die Funktionen zum Speichern und Auslesen von XDATA:
(xdata-put <EntityName> <AppName> <Value> )
und
(xdata-get <EntityName> <AppName> )
Auch damit kann man Symbole, Listen und ganze DEFUNs als Xdata an Entities hängen:

(xdata-put (car (entsel)) "TEST" '(a B C 1 2 3))
oder
(xdata-put (car (entsel)) "TEST" '(1 . 2))

Ausgelesen werden die Xdata dann wieder so:
(xdata-get (car (entsel)) "TEST")

Ähnliche Funktionen gibt es auch für Dictionaries (wird bei AT-SETVAR verwendet) und XDictionaries.

Falls also Interesse besteht, werde ich gerne eine Übersicht über wenigstens die wichtigsten Lisp-Funktionen in den ArchTools zusammenstellen. Lasst es mich einfach hier wissen.


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

archtools
Mitglied



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

Beiträge: 842
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 30. Mai. 2023 10:06    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

Für BricsCAD ist in den ArchTools als Ersatz für das dort nicht vorhandene GEOMCAL das Programm CADCAL enthalten. Damit kann man sehr schnell und einfach ohne alle Programmierkenntnisse die kompliziertesten Koordinatenberechnungen durchführen, und sich bei der CAD-Arbeit jede Menge Hilfskonstruktionen sparen. Eine Übersicht über die CADCAL-Funktionalität ist hier zu finden: www.archtools.de/cadcal.html

Im Quellcode ist natürlich auch der Quellcode für CADCAL enthalten. Für Programmierer ist das ein Beispiel dafür, wie man in Lisp einen Parser programmiert. Im konkreten Fall von CADCAL übersetzt der Parser als Strings eingegebene mathematische Ausdrücke in Lisp-Funktionen, die dann ausgeführt werden. Mit (cc-str->lisp "1+2+3+4") wird der mathematische Ausdruck im String übersetzt in (§§+ (LIST 1 2 3 4)).

Das ist vielleicht besonders lohnenswert auch für alle Programmierer, die gar nicht gewerbliche Programme, sondern nur kleine Tools für die eigene Firma programmieren. Die Programmarbeit wird leichter, wenn man im Lisp komplexe Lisp-Funktionen durch einfache mathematische Ausrücke ersetzen kann wie mit (ccal "1+2+3+4"). Und wenn man mehr Performance will, dann übersetzt man in seinem eigenen Quellcode die CCAL-Funktionsaufrufe einfach in die direkten Lisp-Funktionen.


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