Für Lisp-Programmierer ist CADCAL+CALScript äußerst interessant, denn ist ist nicht nur in Lisp geschrieben, und bringt eine umfangreiche Blibliothek an Lisp-Funktionen mit, sondern man kann damit Lisp-Funktionen aus einfachen Skripten erzeugen, und kann auch seine vorhandenen Lisp-Funktionen einfach dadurch "smart" machen, indem man sie in ein CALScript Skript einbaut. Mehr dazu kann man hier nachlesen:
https://www.calscript.com/cc-lisp.html#smartlisp.CALScript Objekte behalten ihre "Intelligenz" in der DWG am Objekt selbst. Man kann sie kopieren, als WBlock speichern, und weiter geben, und sie behalten ihre Intelligenz und Editierbarkeit. Die Möglichkeit der Objektkommunikation ermöglicht es, eigene Applikationen zu schreiben, die auf CALScript Objekte aufbauen, oder komplexe Systeme zu modellieren/simulieren.
Einen ersten Eindruck von den Möglichkeiten, die CALScript für Lisp Entwickeler bietet, findet man hier: https://www.calscript.com/calscript-quickstart.html
CADCAL+CALScript kommt auch mit einer großen Zahl von Lisp Funktionen, die Lisp-Programmierern viel Arbeit ersparen. Eine Übersicht der Lisp library kommt erst noch, die Webseiten sind noch im Aufbau, aber als Vorgeschmack dieses Beispiel:
(XDATA-PUT <ename> <key> data)
<data> darf alles sein, was man aus Lisp kennt, außer PICKSETs (die kann man als Listen von Enamen speichern, falls nötig, dazu gibt es die Funktion (SS->LIST <pickset> )). Damit kann man also an ein Entity beliebige Daten anhängen, auch Listen, verschachtelte Listen, Symbole, dotted pairs, und sogar Entity-Namen. Beispielsweise kann man eine komplette ENTGET Liste als XDATA speichern:
(setq en (car (entsel))
el (entget (car (entsel))))
(xdata-put en "TEST" el)
Diese Daten kann man dann mit (xdata-get <ename> <key> ) wieder auslesen, in diesem Beispiel also mit (xdata-get en "TEST"). Entity-Namen bleiben auch über die CAD-Sitzung hinaus intakt, und verweisen beim Auslesen auf den eventuell neu vergebenen Entity-Namen.
Analog zu XDATA-PUT und XDATA-GET gibt es auch (XDICTIONARY-PUT <ename> <key> <data> ) und XDICTIONARY-GET, und (DICTIONARY-PUT <name> <key> <data> ) und DICTIONARY-GET. Mit DICTIONARY-PUT kann man seine eigenen Systemvariablen in der DWG sichern.
CADCAL+CALScript ist kostenfrei, Download von https://www.calscript.com/home.html. Lasst mich bitte wissen, was Ihr davon haltet.
[Diese Nachricht wurde von archtools am 01. Aug. 2025 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP