New commands can be defined with the defun function and by prefixing a function name with c:.
Functions prefixed with c: can be accessed directly from the AutoCAD Command prompt and used to redefine an AutoCAD command.
Functions that are defined as commands should not accept arguments directly, instead input for a command should be obtained
using one of the getXXX functions.
The following defines a function named HELLO. This function displays a simple message.
(defun HELLO () (princ "\nHello world.") (princ))
Functions can be issued from the AutoCAD Command prompt or an AutoLISP program. The HELLO function can be called from the AutoCAD Command prompt by entering the following:
The HELLO function must be wrapped in parentheses since it is not defined as a command. Entering HELLO without the parentheses at the AutoCAD Command prompt, returns the following error message:
Unknown command "HELLO". Press F1 for help.
Adding c: to the front of the HELLO function name results in the function being declared as a command, and can then be entered at the AutoCAD Command prompt
without being wrapped with parentheses. For example:
(defun C:HELLO () (princ "\nHello world.") (princ))
While HELLO is declared as a command, it is also an AutoLISP function as well. The command can now be entered at the AutoCAD Command
prompt, as follows:
The HELLO command can also be used transparently because it does not make a call the command function. At the AutoCAD Command prompt,
you could do the following:
From point: 'hello
If an AutoLISP function is declared as a command, you can call the command from an AutoLISP program by wrapping the whole
function name with parentheses. For example:
NoteIf you are using the Visual LISP Editor in the Windows release, the Console window does not recognize AutoCAD commands. You
must wrap the function name with parentheses.
You cannot usually use an AutoLISP statement to respond to prompts from an AutoLISP-implemented command. However, if your
AutoLISP routine makes use of the initget function, you can use arbitrary keyboard input with certain functions. This allows an AutoLISP-implemented command to accept
an AutoLISP statement as a response. Also, the values returned by a DIESEL expression can perform some evaluation of the current
drawing and return these values to AutoLISP.