LISP Compatibility

LISP Compatibility

Functions Unique to progeCAD LISP

The following functions are unique to the implementation of LISP included with progeCAD:

Function Comments
Lpad Pads a text string with spaces to the left.
Rpad Pads a text string with spaces to the right.
Tan Returns the tangent.
Trim Trims spaces from a string.

LISP-Compatible Functions with Enhanced Features

The following LISP functions in progeCAD have enhanced features.

Osnap in progeCAD supports these additional entity snap modes:

Mode Meaning
"po" POint
"pla" PLAnview (2D intersection)
"vis" VISible (apparent intersection)

The functions ssget and ssadd in progeCAD recognize these additional selection set parameters:

Mode Meaning Points Example
"CC" Crossing Circle point1 point2 (ssget "CC" '(1 1) '(2 2))
"O" Outside points-list (ssget "O" ptlist)
"OC" Outside Circle point1 point2 (ssget "OC" '(1 1) '(2 2))
"OP" Outside Polygon points-list (ssget "OP" ptlist)
"PO" POint point1 (ssget "PO" '(1 1))

Functions Partially Compatible with LISP in Other CAD Systems

The following function is partially compatible with the LISP found in other CAD systems:

Function Comments
menucmd progeCAD supports P0 (cursor menu), P1 through P16 (the pulldown menus), and M (diesel expressions). progeCAD does not support A (aux menus), B (button menus), I (icon menus), S (screen menu), or T (tablet menus).

Functions Not Supported by progeCAD

progeCAD does not support the following functions found in other CAD systems: arx, arxload, arxunload, autoarxload, entgetx, initdia, ssnamex, and tablet.

Undocumented Functions Supported by progeCAD

The following functions are supported by progeCAD but are not yet documented: VL-ACAD-DEFUN, VL-ACAD-UNDEFUN, VL-ARX-IMPORT, VLAX-3D-POINT, VLAX-ADD-CMD, VLAX-CREATE-OBJECT, VLAX-CURVE-GETAREA, VLAX-CURVE-GETCLOSESTPOINTTO, VLAX-CURVE-GETCLOSESTPOINTTOPROJECTION, VLAX-CURVE-GETDISTATPARAM, VLAX-CURVE-GETDISTATPOINT, VLAX-CURVE-GETENDPARAM, VLAX-CURVE-GETENDPOINT, VLAX-CURVE-GETFIRSTDERIV, VLAX-CURVE-GETPARAMATDIST, VLAX-CURVE-GETPARAMATPOINT, VLAX-CURVE-GETPOINTATDIST, VLAX-CURVE-GETPOINTATPARAM, VLAX-CURVE-GETSECONDDERIV, VLAX-CURVE-GETSTARTPARAM, VLAX-CURVE-GETSTARTPOINT, VLAX-CURVE-ISCLOSED, VLAX-CURVE-ISPERIODIC, VLAX-CURVE-ISPLANAR, VLAX-DUMP-OBJECT, VLAX-ENAME->VLA-OBJECT, VLAX-ERASED-P, VLAX-FOR, VLAX-GET, VLAX-GET-ACAD-OBJECT, VLAX-GET-OBJECT, VLAX-GET-OR-CREATE-OBJECT, VLAX-GET-PROPERTY, VLAX-IMPORT-TYPE-LIBRARY, VLAX-INVOKE, VLAX-INVOKE-METHOD, VLAX-LDATA-DELETE, VLAX-LDATA-GET, VLAX-LDATA-LIST, VLAX-LDATA-PUT, VLAX-LDATA-TEST, VLAX-MAKE-SAFEARRAY, VLAX-MAKE-VARIANT, VLAX-MAP-COLLECTION, VLAX-METHOD-APPLICABLE-P, VLAX-OBJECT-RELEASED-P, VLAX-PRODUCT-KEY, VLAX-PROPERTY-AVAILABLE-P, VLAX-PUT, VLAX-PUT-PROPERTY, VLAX-READ-ENABLED-P, VLAX-RELEASE-OBJECT, VLAX-REMOVE-CMD, VLAX-SAFEARRAY->LIST, VLAX-SAFEARRAY-FILL, VLAX-SAFEARRAY-GET-DIM, VLAX-SAFEARRAY-GET-ELEMENT, VLAX-SAFEARRAY-GET-L-BOUND, VLAX-SAFEARRAY-GET-U-BOUND, VLAX-SAFEARRAY-PUT-ELEMENT, VLAX-SAFEARRAY-TYPE, VLAX-TMATRIX, VLAX-TYPEINFO-AVAILABLE-P, VLAX-VARIANT-CHANGE-TYPE, VLAX-VARIANT-TYPE, VLAX-VARIANT-VALUE, VLAX-VBARRAY, VLAX-VBBOOLEAN, VLAX-VBDOUBLE, VLAX-VBEMPTY, VLAX-VBINTEGER, VLAX-VBLONG, VLAX-VBNULL, VLAX-VBOBJECT, VLAX-VBSINGLE, VLAX-VBSTRING, VLAX-VBVARIANT, VLAX-VLA-OBJECT->ENAME, VLAX-WRITE-ENABLED-P, VL-BB-REF, VL-BB-SET, VL-CATCH-ALL-APPLY, VL-CATCH-ALL-ERROR-MESSAGE, VL-CATCH-ALL-ERROR-P, VL-CMDF, VL-CONSP, VL-DIRECTORY-FILES, VL-DOC-EXPORT, VL-DOC-IMPORT, VL-DOC-REF, VL-DOC-SET, VL-EVERY, VL-EXIT-WITH-ERROR, VL-EXIT-WITH-VALUE, VL-FILE-COPY, VL-FILE-DELETE, VL-FILE-DIRECTORY-P, VL-FILENAME-BASE, VL-FILENAME-DIRECTORY, VL-FILENAME-EXTENSION, VL-FILENAME-MKTEMP, VL-FILE-RENAME, VL-FILE-SIZE, VL-FILE-SYSTIME, VL-GET-RESOURCE, VLISP-COMPILE, VL-LIST*, VL-LIST->STRING, VL-LIST-EXPORTED-FUNCTIONS, VL-LIST-LENGTH, VL-LIST-LOADED-VLX, VL-LOAD-ALL, VL-LOAD-COM, VL-LOAD-REACTORS, VL-MEMBER-IF, VL-MEMBER-IF-NOT, VL-MKDIR, VL-POSITION, VL-PRIN1-TO-STRING, VL-PRINC-TO-STRING, VL-PROPAGATE, VLR-ACDB-REACTOR, VLR-ADD, VLR-ADDED-P, VLR-BEEP-REACTION, VLR-COMMAND-REACTOR, VLR-CURRENT-REACTION-NAME, VLR-DATA, VLR-DATA-SET, VLR-DEEPCLONE-REACTOR, VLR-DOCMANAGER-REACTOR, VLR-DWG-REACTOR, VLR-DXF-REACTOR, VLR-EDITOR-REACTOR, VL-REGISTRY-DELETE, VL-REGISTRY-DESCENDENTS, VL-REGISTRY-READ, VL-REGISTRY-WRITE, VL-REMOVE, VL-REMOVE-IF, VL-REMOVE-IF-NOT, VLR-INSERT-REACTOR, VLR-LINKER-REACTOR, VLR-LISP-REACTOR, VLR-MISCELLANEOUS-REACTOR, VLR-MOUSE-REACTOR, VLR-NOTIFICATION, VLR-OBJECT-REACTOR, VLR-OWNER-ADD, VLR-OWNER-REMOVE, VLR-OWNERS, VLR-PERS, VLR-PERS-LIST, VLR-PERS-P, VLR-PERS-RELEASE, VLR-REACTION-NAMES, VLR-REACTIONS, VLR-REACTION-SET, VLR-REACTORS, VLR-REMOVE, VLR-REMOVE-ALL, VLR-SET-NOTIFICATION, VLR-SYSVAR-REACTOR, VLR-TOOLBAR-REACTOR, VLR-TRACE-REACTION, VLR-TYPE, VLR-TYPES, VLR-UNDO-REACTOR, VLR-WBLOCK-REACTOR, VLR-WINDOW-REACTOR, VLR-XREF-REACTOR, VL-SOME, VL-SORT, VL-SORT-I, VL-STRING->LIST, VL-STRING-ELT, VL-STRING-LEFT-TRIM, VL-STRING-MISMATCH, VL-STRING-POSITION, VL-STRING-RIGHT-TRIM, VL-STRING-SEARCH, VL-STRING-SUBST, VL-STRING-TRANSLATE, VL-STRING-TRIM, VL-SYMBOL-NAME, VL-SYMBOLP, VL-SYMBOL-VALUE, VL-UNLOAD-VLX, VL-VBALOAD, VL-VBARUN, VL-VLX-LOADED-P.

Tell me about...

Copying Code Examples from the progeCAD Developer Reference

Programming Overview of LISP (LISt Processing) Language