Hide Table of Contents

Lisp Functions Overview

In the following, an symbol labels an argument description.

For better readability, both lowercase and uppercase characters are used in the names of some functions.


 

Function Definitions

Function Description
(defun symbol argument_list term...) Defines a command or function.

Error Handling and Error Tracing

Function Description
(alert string string string) Displays a message box.
Message
Title
System Icon
(*error* string) Defines a custom error-handling function.
Error Message
(*settrace* [<integer> [integer]]) Sets the mode for tracing of Lisp routines and functions.
Trace mode flag
React time in seconds
(trace symbol) Provides a debugging aid that displays the return value each time the specified function is evaluated.
Function
(untrace symbol) Clears the debugging mode for the specified function.
Function

        ^ Top of Page

System Functions

Function Description
(command arguments ...) Executes a built-in command with the arguments supplied.
(delcmd string) Deactivates a specified command.
Command name
(actcmd string) Re-activates a specified command.
Command name
(getcname string) Retrieves the primary (underscored) name of a built-in command. A primary command always has an English name.
Command name
(getvar string) Retrieves system variable settings.
Variable name
(setvar string value) Sets a system variable to a specified value.
Variable name
Variable value
(findfile string [value]) Searches for a file.
File name
Condition
(getfiled string string string integer) Provides a dialog for file selection.
Dialog caption
Preset filename
Preset extension
Control flag
(getcolorindex [point_list] [flag]) Displays the Colors dialog box allowing the user to select a color.
(initdia [flag]) Determines that certain commands which normally invoke a dialog box be performed at the command line when flag is set to 0.

        ^ Top of Page

Geometric Utilities

Function Description
(distance point_list point_list) Calculates the distance between two given points.
Starting point
End point
(angle point_list point_list) Calculates the angle between two points.
Starting point
End point
(polar point_list real real) Returns a 3D point.
Point
Angle
Distance
(inters point_list point_list point_list point_list [value]) Returns the intersection of two lines, each specified by two endpoints.
(osnap point_list string) Snaps to a significant point on an entity.
(textbox list) Returns the corners of a bounding box of a text entity.

        ^ Top of Page

User Input

Function Description
(initget [integer] [string]) Initializes the next user input function.
(getreal [string]) Prompts the user to enter a real number.
(getstring [value] [string]) Prompts the user to enter a string.
(getpoint [point_list] [string]) Prompts the user to specify a point.
(getcorner point_list [string]) Prompts the user to specify a second corner of a rectangle.
(getdist [point] [prompt]) Prompts the user to specify a distance.
(getangle [point_list] [string]) Prompts the user to specify an angle.
(getorient [point_list] [string]) Prompts the user to specify an angle (takes into account the ANGBASE systenm variable).
(getorient [point_list] [string]) Prompts the user to specify an angle (takes into account the SetAngBase command variable).
(getkword [string]) Prompts the user to select an option.
(getint [string]) Prompts the user to enter an integer value.

        ^ Top of Page

Conversion

Function Description
(rtos real [integer [integer]]) Converts a real number to a string.
Floating-point number
Mode
Precision
(distof string [integer]) Converts a distance to a floating-point number.
Distance
Unit System
(angtos real [integer [integer]]) Converts an angle to a string.
Angle
Mode
Precision
(angtof string [integer]) Converts an angle to a floating-point number.
Angle
Unit System
(symbtos value) Returns any Lisp expressions in a string.

        ^ Top of Page

Coordinate System Transformation

Function Description
(trans point_list value value integer) Transforms a point from one coordinate system to another.
Point
From
To
Transformation

        ^ Top of Page

Selection Sets

Function Description
(ssget [string] [point [point]] [point_list] [assoc_list]) Creates a selection set.
Mode
Point
Point
Point list
Filter list
(ssadd [Ename [SelSet]]) Adds an entity to a selection set.
Entity name
Selection set
(ssdel Ename SelSet) Deletes an entity from a selection set.
Entity name
Selection set
(sslength SelSet) Returns the length of a selection set.
Selection set
(ssname SelSet integer) Returns the nth element of a selection set.
Selection set
Index
(ssmemb Ename SelSet) Verifies if an entity is member of a selection set.
Entity name
Selection set
(sssetfirst nil SelSet) Hightlights and grips the entities of the specified selection set in the graphics area.
nil
selection set
(ssgetfirst) Returns the selection set with the entities that are highlighted (selected) and gripped.
(ssdbno SelSet) Returns the drawing database number (id) the selection set belongs to
selection set.

        ^ Top of Page

Entity Handling

Function Description
(entget Ename [list]) Returns entity information.
Entity name
(entmod list) Modifies an entity.
(entmake [list]) Creates an entity.
(entmakex list) Creates a new entity (graphical or non-graphical) with a data list.
(entdel Ename) Deletes an entity.
Entity name
(entnext [Ename]) Returns the entity name that follows the given entity in the drawing database.
(entlast) Returns the last entity added to the drawing database.
(entsel [string]) Prompts the user to select an entity.
(entupd Ename) Updates a complex entity after modifications.
Entity name
(entpos integer) Sets the database pointer.
(handent string) Returns the entity name to the entity that has the specified reference.

        ^ Top of Page

Drawing Database Symbol Tables

Function Description
(tblnext string [value]) Returns the next table entry.
(tblsearch string string) Searches a table entry.
(tblmake list) Generates a new table-entry.
(tblmod list) Modifies a table-entry.
(tblset string string) Sets an entry as the current
(tblrename string string string) Renames a table-entry
(tbldel string string) Deletes a table-entry
(tblpurge string flag) Deletes all not referenced entries of a table
(tblobjname string string) Returns the entity name (Ename) of a given drawing database table entry.
(snvalid string [flag]) Tests whether a table entry for a symbol in a drawing database has valid characters.

        ^ Top of Page

Dictionaries

Function Description
(dictadd dictionary item newobj) Adds a non-graphical object to the specified dictionary.
(dictnext dictionary [flag]) Retrieves the next item in a dictionary.
(dictremove dictionary item) Removes an entry from the specified dictionary.
(dictrename dictionary old new) Renames an item of a dictionary.
(dictsearch dictionary item [next]) Searches a dictionary for an item.
(namedobjdict) Returns the entity name of the current drawing's named object dictionary, which is the root of all non-graphical objects in the drawing.

        ^ Top of Page

Extended Entity Data

Function Description
(regapp string) Registers an application name.
(xdroom entity) Determines the free space size (in bytes) available for an extended entity data.
(xdsize list) Determines the size (in bytes) necessary to keep extended entity data for an entity.

        ^ Top of Page

Arithmetical Functions

Function Description
(+ number number ...) Addition
(- number number ...) Subtraction
(* number number ...) Multiplication
(/ number number ...) Division
(~ integer) Bitwise NOT
(1+ number) Increment
(1- number) Decrement
(abs number) Returns the absolute value of a number.
(atan number [number]) Returns the arc tangent of an angle supplied in radians.
(cos number) Returns the cosine of an angle supplied in radians.
(exp number) Returns e raised to the power number, where e is the base of the natural logarithm.
(expt number1 number2) Returns number1 raised to the power number2.
(fix number) Converts a real number to an integer.
(float number) Converts a given number into a real number.
(gcd number number ...) Returns the greatest common denominator of the given numbers.
(log number) Returns the natural logarithm of a given number.
(logand integer integer ...) Logical bitwise AND
(logior integer integer ...) Logical bitwise OR
(lsh integer integer) Logical bitwise shift
(max number number ...) Returns the largest number.
(min number number ...) Returns the smallest number.
(minusp number) Tests if the number is negative.
pi Specifies the constant 3.141593.
(rem number1 number2) Divides number1 by number2 and returns the remainder.
(sin number) Returns the sine of an angle supplied in radians.
(sqrt number) Returns the square root of a number.
(tan number) Returns the tangent of an angle supplied in radians.
(zerop number) Verifies whether number is zero (or floating-point zero).

        ^ Top of Page

Symbol Handling

Function Description
(atom term) Returns T (true) if term is an atom.
(atoms-family 0 | 1  [string_list]) Returns a list of all atoms currently defined.
(boundp value) Tests if the specified atom has a value.
(not argument) Returns T (true) if argument is nil.
(null argument) Returns T (true) if argument is an empty list.
(numberp argument) Returns T (true) if argument is any kind of number.
(quote object) Returns object.
'object Identical to (quote ...).
(set symbol value) Sets the value of a quoted symbol to an expression.
(setq symbol value [symbol value] ...) Sets the value of a symbol to an expression.
(type object) Returns the data type.

        ^ Top of Page

Display Control

Function Description
(prin1 [object [FileDescriptor]]) Prints a message in the Command Window or writes it to an open file.
(princ [object [FileDescriptor]]) Prints a message in the Command Window or writes it to an open file.
(print [object [FileDescriptor]]) Prints a message in the Command Window or writes it to a file (like prin1, but with a preceding CR and a space following).
(prompt string) Displays a message in the Command Window.
(terpri) Outputs a new line in the Command Window.
(grread [integer [integer]]) Reads from an input device.
Draw mode
Cursor type
(redraw [string [integer]]) Refreshes the current drawing display or redraws an entity.
Entity name
Mode
(graphscr) Closes the Command Window.
(textscr) Opens the Command Window.
(textpage) Opens the Command Window.

        ^ Top of Page

Text Strings

Function Description
(read string) Retrieves the first atom or list from the given string and returns it according to its data type.
(read-char [FileDescriptor]) Reads a single character from either the keyboard buffer or from an open file.
(read-line [FileDescriptor]) Reads a string from the keyboard buffer or from an open file.
(strcase string [value]) Converts a given string to a new upper case or lower case string.
(strcat string string ...) Returns a new string by concatenating two or more strings.
(strlen string string ...) Returns the sum of the length (number of characters) of all strings given as argument to the function.
(substr string integer [integer]) Returns a new partial string based on a given string.
(write-char integer [FileDescriptor]) Writes a single character to a file or displays it in the Command Window.
(write-line string [FileDescriptor]) Writes a string to a file or displays it in the Command Window.
(stringsort list) Sorts a list of string-items alphabetically, ascending.
(acad_strlsort list) Sorts a list of strings in alphabethical order.
List of strings to sort
(wcmatch string string) Searches a string using a wild card pattern match.

        ^ Top of Page

Type Conversion

Function Description
(ascii string) Converts the first character of a string into its ASCII-Code, which is returned as integer.
(atof string) Converts a given string to a floating-point number.
(atoi string) Converts a given string to an integer.
(chr integer) Converts an ASCII code (given as integer) into its equivalent single-character string.
(itoa integer) Returns a given integer as a string.

        ^ Top of Page

Comparison / Conditions

Function Description
(= atom atom ...) Comparison: Equal
(/= atom atom ...) Comparison: Not equal
(< atom atom ...) Comparison: Less than
(<= atom atom ...) Comparison: Less than or equal
(> atom atom ...) Comparison: Greater than
(>= atom atom ...) Comparison: Greater than or equal
(and term term ...) Returns the logical AND of multiple terms in a list.
(or term term ...) Returns the logical OR of multiple terms in a list.
(boole bit_value integer integer ...) Performs a general bitwise Boolean function.
(eq term term) Evaluates if two terms are identical.
(equal value value [number]) Tests if two expressions have the same result.
(cond
    (value value value ... )
    [(value value value ... )] ...
)
Performs a primary conditional function.
(if <value> <value>
    [<value> value value [value]
)
Performs a conditional evaluation.
Test expression
Then expression
[Else expression]
(repeat integer value ...) Executes a given expression n times
(while value value ...) Allows iterations to continue until the specified expression evaluates to nil.

        ^ Top of Page

List Handling and Manipulation

Function Description
(append list list ...) Adds any number of lists together, and returns a new list.
(assoc value assoc_list) Searches an association list assoc_list for key.
(car list) Returns the first element of a list.
(cdr list) Returns a new list without the first element of a given list.
(c????r list) Constructs combinations of car and cdr, up to four levels.
(cons value list | atom) Constructs a new list.
(foreach symbol list value ...) Steps through a given list, assigning each element to the specified symbol and evaluating the specified expression for each element of the list.
(last list) Returns the last element of a list.
(length list) Returns the number of elements in a list.
(list expression1 ...) Creates a list out of expressions supplied as arguments to the function.
(listp element) Verifies if element is a list.
(mapcar func_symb list_1 ... list_n) Operates on successive elements of the lists list_1 ... list_n.
(member value list) Searches the given list for an element and returns the remaining portion of the list.
(nth integer list) Returns the nth element of list (n counting starts with 0).
(reverse list) Reverses the given list and returns a new list.
(subst old_element new_element list) Copies a list, substituting old_element with new_element.

        ^ Top of Page

File Access and Handling

Function Description
(close FileDescriptor) Closes the specified open file.
File descriptor
(load string [value]) Loads an existing Lisp file.
File name
Error expression
(open string string) Opens the specified file to read or write.
File name
File mode can be:
     "r" - Opens file to read
     "w" - Opens file to write
     "a" - Opens file to append

        ^ Top of Page

Function Handling

Function Description
(apply func_symbol list) Executes a function, where arguments are taken from a list.
(eval value) Returns the result of a Lisp expression.
(exit) Terminates the current application.
(lambda argument_list value ...) Defines of an anonymous function.
(progn value value ...) Evaluates each expression in succession, in the order in which they are grouped in progn.
(quit) Terminates (cancels) the current application and returns to the command prompt.

        ^ Top of Page

Application Handling

Function Description
(ver) Returns a string containing the information about the current version of the Lisp Interpreter.
(getenv [string] [string] [string]) Retrieves a string value assigned to:
  • A list containing the environment variables as found in the "CAD Path" section of the application INI file,
  • A certain environment variable from the "CAD Path" section of the application INI file,
  • A specific registration within an ASCII configuration file (like an INI or other parameter file), or
  • A system environment variable.
(setenv name value) Assigns a new value to a specified environment variable.
(getcfg string) Retrieves application data from the [APPDATA] section of the appdata.ini file.
(setcfg string string) Writes application data to the [APPDATA] section of the appdata.ini file.

        ^ Top of Page

Help

Function Description
(help [string [string [string]]]) Displays the help window with a specified help topic.
Help file name
Topic
Settings
(setfunhelp string string string) Sets a help topic belonging to a function.
Function
Topic
Help file name

        ^ Top of Page

Dialog Box Functions

Function Description
(load_dialog string) Loads a dialog box description file (file of type .dcl).
File name
(unload_dialog number) Unloads a dialog box.
ID
(new_dialog dialog_name dialog_id [default_action [position]]) Displays a dialog box.
(start_dialog) Starts the dialog box.
(done_dialog [flag]) Terminates the dialog box.
Status
(term_dialog) Terminates all dialog boxes.
(action_tile key expression) Responds when a dialog box tile is clicked.
Key of a tile
Expression to evalute
(mode_tile key mode) Sets the mode of a dialog box tile.
(get_tile key) Determines the value to which a tile of a dialog box is set.
(get_attr key) Determines the attribute to which a key of a dialog box is set.
(set-tile key value) Sets the value of a dialog box tile.
(dimx_tile key) Determines the x-dimension of a dialog box tile.
(dimy_tile key) Determines the y-dimension of a dialog box tile.
(client_data_tile tile_key data) Associates data with a dialog box tile.

        ^ Top of Page

Viewports / Views Handling

Function Description
(cvunit string string string) Converts a value from one system of measurement to another.
(vports) Returns a description of all viewports in the current drawing.
(setview list [viewport_id]) Establishes a 3D view for a specified viewport of the current drawing.

        ^ Top of Page

Application Utility Functions

Function Description
(acad_colordlg number [flag]) Displays the color selection dialog box.
Color Number
Buttons display flag
(startapp string [string]) Executes an external OS application.
Application
File name
(menugroup string) Verifies that a menu group is loaded.
Menu group name

Memory Management (Legacy)

Function Description
(mem) Displays the memory status for Lisp. Returns always nil.
(vmon) Provided for compatibility with other Lisp implementations (virtual memory management). Returns always nil.
(alloc integer) Provided for compatibility with other Lisp implementations (memory allocation function). Returns always 0.
(expand integer) Provided for compatibility with other Lisp implementations (memory expansion function). Returns always 0.
(gc) Provided for compatibility with other Lisp implementations ("garbage collection"; memory release function). Returns always nil.

        ^ Top of Page

 

 

 



Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   Lisp Functions Overview
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:




x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2025 SP0

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.