CADCAL+CALScript for Lisp programmers

CADCAL+CALScript is extremely interesting for Lisp programmers because it's not only written in Lisp and comes with an extensive library of Lisp functions, but it also allows you to create Lisp functions from simple scripts and make your existing Lisp functions "smart" simply by incorporating them into a CALScript script. You can read more about this here: https://www.calscript.com/cc-lisp.html#smartlisp .CALScript objects retain their "intelligence" in the DWG itself. They can be copied, saved as WBlocks, and distributed, and they retain their intelligence and editability. The ability to communicate with objects allows you to write your own applications based on CALScript objects or to model/simulate complex systems.A first impression of the possibilities CALScript offers Lisp developers can be found here: https://www.calscript.com/calscript-quickstart.html

CADCAL+CALScript also comes with a large number of Lisp functions that save Lisp programmers a lot of work. An overview of the Lisp library is still to come; the website is still under construction, but here's a taster:
(XDATA-PUT <ename> <key> data)
<data> can be anything familiar from Lisp, except PICKSETS (these can be stored as lists of enames, if necessary; there's the function (SS->LIST <pickset> ) for this). This allows you to attach any data to an entity, including lists, nested lists, symbols, dotted pairs, and even entity names. For example, you can save an entire ENTGET list as XDATA:
(setq en (car (entsel))
el (entget (car (entsel))))
(xdata-put en "TEST" el)

This data can then be read again with (xdata-get <ename> <key> ), in this example with (xdata-get en "TEST"). Entity names remain intact even beyond the CAD session and refer to any newly assigned entity name when read.Analogous to XDATA-PUT and XDATA-GET, there are also (XDICTIONARY-PUT <ename> <key> <data> ) and XDICTIONARY-GET, and (DICTIONARY-PUT <name> <key> <data> ) and DICTIONARY-GET. With DICTIONARY-PUT, you can save your own system variables in the DWG.CADCAL+CALScript is free; download from https://www.calscript.com/home.html. Please let me know what you think.