Bird
Raised Fist0
AutoCADbi_tool~5 mins

AutoLISP basics for automation in AutoCAD - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner

What is AutoLISP in AutoCAD?

AutoLISP is a simple programming language used to automate tasks in AutoCAD. It helps users write small programs to speed up repetitive work.

Click to reveal answer
beginner

How do you define a function in AutoLISP?

Use (defun function-name (parameters) body). For example, (defun c:hello () (princ "Hello World")) defines a function named 'hello' that prints a message.

Click to reveal answer
beginner

What does the princ function do in AutoLISP?

princ prints text or values to the AutoCAD command line without extra quotes or parentheses, making output clear and readable.

Click to reveal answer
intermediate

How can you get user input in AutoLISP?

Use functions like (getpoint) to get a point from the user or (getstring) to get text input.

Click to reveal answer
beginner

Why is automation with AutoLISP helpful in AutoCAD?

It saves time by automating repetitive tasks, reduces errors, and makes workflows smoother, just like using a coffee machine instead of making coffee by hand every time.

Click to reveal answer

Which AutoLISP function prints a message to the AutoCAD command line?

Aprinc
Bprintline
Cecho
Ddisplay

How do you start defining a new function in AutoLISP?

A(func function-name (parameters) body)
B(defun function-name (parameters) body)
C(define function-name parameters body)
D(function function-name parameters body)

Which function would you use to get a point coordinate from the user?

Agetpoint
Bgetstring
Cgetint
Dgetcoord

What is the main benefit of using AutoLISP for automation?

AImproves screen resolution
BCreates 3D models automatically
CReplaces AutoCAD software
DSpeeds up repetitive tasks

Which of these is a valid AutoLISP function call?

Aprinc: "Hello"
Bprinc("Hello")
C(princ "Hello")
Dprint("Hello")

Explain how to create a simple AutoLISP function that prints a message to the command line.

Think about how you tell AutoCAD to run a small program that shows text.
You got /4 concepts.

    Describe how AutoLISP helps automate tasks in AutoCAD and why this is useful.

    Imagine doing the same drawing steps many times and how a small program can help.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using AutoLISP in AutoCAD?
      (defun) is often used to define what?
      easy
      A. To export drawings to other formats
      B. To manually draw shapes faster
      C. To automate repetitive tasks by defining functions
      D. To change the color of objects automatically

      Solution

      1. Step 1: Understand AutoLISP purpose

        AutoLISP is designed to automate tasks in AutoCAD to save time and reduce errors.
      2. Step 2: Recognize (defun) usage

        (defun) defines a function that can be run as a command to automate tasks.
      3. Final Answer:

        To automate repetitive tasks by defining functions -> Option C
      4. Quick Check:

        Automation = Functions with (defun) [OK]
      Hint: AutoLISP automates tasks using functions with defun [OK]
      Common Mistakes:
      • Thinking AutoLISP changes colors automatically
      • Confusing manual drawing speed with automation
      • Assuming AutoLISP exports files
      2. Which of the following is the correct syntax to define a function named drawSquare in AutoLISP?
      easy
      A. defun drawSquare () (command "RECTANGLE")
      B. (defun drawSquare [] (command "RECTANGLE"))
      C. (defun drawSquare () command "RECTANGLE")
      D. (defun drawSquare () (command "RECTANGLE"))

      Solution

      1. Step 1: Recall correct function syntax

        AutoLISP functions start with (defun functionName () ...) using parentheses for parameters.
      2. Step 2: Check command usage inside function

        The (command "RECTANGLE") is correctly inside the function body.
      3. Final Answer:

        (defun drawSquare () (command "RECTANGLE")) -> Option D
      4. Quick Check:

        Correct parentheses and command call = (defun drawSquare () (command "RECTANGLE")) [OK]
      Hint: Use parentheses () for parameters in defun [OK]
      Common Mistakes:
      • Using square brackets [] instead of parentheses
      • Missing parentheses around defun
      • Omitting parentheses around command
      3. What will be the output when running this AutoLISP code?
      (defun c:test ()
        (command "LINE" '(0 0) '(10 0) "")
        (princ "Line drawn")
      )
      medium
      A. Draws a line from (0,0) to (10,0) and prints 'Line drawn'
      B. Nothing happens because function is not called
      C. Draws a circle instead of a line
      D. Syntax error due to incorrect quotes

      Solution

      1. Step 1: Analyze the function definition

        The code uses (defun c:test () ...) to define a command named TEST, but does not call or execute it.
      2. Step 2: Understand command and output

        Running this code only defines the function. No line is drawn, and no message is printed because the body is not executed. To run it, type TEST or (c:test).
      3. Final Answer:

        Nothing happens because function is not called -> Option B
      4. Quick Check:

        defun defines, does not run [OK]
      Hint: defun defines functions/commands; they must be called to execute [OK]
      Common Mistakes:
      • Thinking function runs automatically without calling
      • Confusing quotes causing syntax errors
      • Assuming wrong command draws circle
      4. Identify the error in this AutoLISP function:
      (defun c:drawLine ()
        (command "LINE" (0 0) (10 10) "")
        (princ "Done")
      )
      medium
      A. Points should be quoted lists, not bare numbers
      B. Missing closing parenthesis for defun
      C. Command name should be lowercase
      D. princ cannot print strings

      Solution

      1. Step 1: Check point format in command

        AutoLISP requires points as quoted lists like '(0 0), not bare numbers (0 0).
      2. Step 2: Verify parentheses and commands

        Parentheses are balanced, command name case is not an error, and princ prints strings correctly.
      3. Final Answer:

        Points should be quoted lists, not bare numbers -> Option A
      4. Quick Check:

        Points need quotes for lists [OK]
      Hint: Use single quotes for coordinate lists '(x y) [OK]
      Common Mistakes:
      • Using unquoted coordinates causing errors
      • Assuming case sensitivity for commands
      • Thinking princ can't print strings
      5. You want to create an AutoLISP function that draws a rectangle with width 20 and height 10 starting at point (5,5). Which code correctly automates this task?
      hard
      A. (defun c:drawRect () (command "RECTANGLE" '(5 5) '(25 15)) (princ "Rectangle drawn") )
      B. (defun c:drawRect () (command "RECTANGLE" (5 5) (20 10)) (princ "Rectangle drawn") )
      C. (defun c:drawRect () (command "RECTANGLE" '(5 5) '(20 10)) (princ "Rectangle drawn") )
      D. (defun c:drawRect () (command "RECTANGLE" '(0 0) '(20 10)) (princ "Rectangle drawn") )

      Solution

      1. Step 1: Calculate rectangle corner points

        Starting at (5,5), width 20 means x=25, height 10 means y=15, so opposite corner is (25 15).
      2. Step 2: Check correct point format and command

        Points must be quoted lists '(x y). (defun c:drawRect () (command "RECTANGLE" '(5 5) '(25 15)) (princ "Rectangle drawn") ) uses correct points and syntax.
      3. Final Answer:

        (defun c:drawRect () (command "RECTANGLE" '(5 5) '(25 15)) (princ "Rectangle drawn") ) -> Option A
      4. Quick Check:

        Correct points and quotes = (defun c:drawRect () (command "RECTANGLE" '(5 5) '(25 15)) (princ "Rectangle drawn") ) [OK]
      Hint: Calculate corner points, use quoted lists '(x y) [OK]
      Common Mistakes:
      • Using unquoted points causing errors
      • Using width/height as points instead of coordinates
      • Starting rectangle at wrong point
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard