[go: up one dir, main page]

0% found this document useful (0 votes)
431 views44 pages

Lisp Auto Cad

The document provides an introduction to Visual Lisp, covering basic concepts like lists, functions, arguments, and data types. It teaches some quick Visual Lisp basics through examples and quizzes. It explains how to use Visual Lisp commands in AutoCAD, create custom AutoCAD commands using DEFUN, and load and automatically run Visual Lisp routines on startup through files like ACAD.LSP. The goal is to lay a foundation for writing Visual Lisp routines and scripts.

Uploaded by

HKRajesh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
431 views44 pages

Lisp Auto Cad

The document provides an introduction to Visual Lisp, covering basic concepts like lists, functions, arguments, and data types. It teaches some quick Visual Lisp basics through examples and quizzes. It explains how to use Visual Lisp commands in AutoCAD, create custom AutoCAD commands using DEFUN, and load and automatically run Visual Lisp routines on startup through files like ACAD.LSP. The goal is to lay a foundation for writing Visual Lisp routines and scripts.

Uploaded by

HKRajesh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 44

Objectives

• To lay a firm foundation of the basics of Visual


Lisp.
• Prepare you to write your own Visual Lisp
routines
• Start you down the path to official AutoCAD
Gurudom ( or “Nerdom”)
• Teach you some quick and dirty basics of Visual
Lisp (don’t look too close!).
• Discover new ways to torture your coworkers!
Hold on - we have a lot of information to
cover in 80 minutes!
First and Foremost!
Don’t let Visual Lisp intimidate you!
What does LISP stand for?
LISt Processor
(not Lost In Stupid
Parentheses!)
The Basics

• Lists
• Functions
• Arguments
• Golden Rules of AutoLISP
What is a LIST?

Anything inside of parentheses

Examples of LISTS:
(a b c)
(setq x 1)
(princ)
What is a FUNCTION?
(or subr)
The ACTION you want Visual Lisp to do!
In Visual Lisp the function ALWAYS
go first!!!

Visual Lisp uses Prefix notation

Example: (+ 1 2)
(- 5 3)
(inters A B C D)
(setq x 3)
Visual Lisp as a Calculator
INFIX Notation
(1 + 1)
(3 * 4)
(6 / 2)
PREFIX Notation
(+ 1 1)
(* 3 4)
(/ 6 2)
Arguments
• Arguments are the values you pass to a
function
(+ 5 6)
+ is the function
5 and 6 are the arguments

(setq x “Autodesk”)
Setq is the function
X and “Autodesk” are the
arguments
The Golden Rules of Visual Lisp
• For every open paren, you must have a
closed paren
Example: (setq x (+ a b))
• For every open double quote, you must
have a closed double quote.
Example: (prompt “How are you?”)
The Key to unlocking complicated
LISP routines:
Visual Lisp works from the Inside Out
(+ 5 (* 4 3))
is equal to
(4 * 3) + 5
(- (+ 5 2) (* 6 (- 7 6)))
is equal to
(5 + 2) - (6 * (7 - 6))
7 - (6 * 1)
Quiz Time!

(* 4 (/ (+ 6 3) 3))
12
(+ (* (- 5 2) (/ 15 3)) 6)
21
(/ (* (- 11 9) (+ 25 5)) (* 3 2))
10
Some popular Data Types:

• Real Numbers 1.5


• Integers 5
• Strings “LINE”
• Lists (8 . “DIM”)
• Subrs (or functions) SETQ
Real Numbers and Integers
• Real Numbers have decimal points
Example: 1.3 5.0

• Integers do not!
Example: 25 11

• Real Numbers must have a leading zero.


.5 is incorrect 0.5 is correct

Dotted pair: (0 . “CIRCLE”)


error: misplaced dot on input
(/ 7 2) => 3
(/ 7 2.0) => 3.5
(+ 1 2 3 4 5 6. ) => 21.0
(+ 1 .5) => invalid dotted pair
(+ 1 0.5) => 1.5

One real number changes the entire pot!


Basic Arithmetic Functions
(for you math-heads):
+ = addition * = multiplication
/ = division - = subtraction

(sqrt x) (sin ang) (atan x)


(expt x y) (cos ang)
(abs x) (log x)
(float x) (fix x)
btw...

Angles are measured in radians!


(not degrees)
and you’ll need to remember that.
Strings
Usually Text (literals)
Always double-quoted
Spaces accepted

Examples: “autodesk”
“line”
“1.25”
Setting Variables
(SETQ)

(SETQ X 1)
SETQ is the function
X is the variable name
1 is the value

Setting several variables at once:


(SETQ A 1 B 2 C 3)
Variable Names

• Alpha-numeric
• May not contain spaces
• should not replace existing preset values
such as T or pi

Note: A variable that hasn’t been set is


equal to nil
Using Visual Lisp variables in
AutoCAD

(setq X 1 Y 2)

Command: !X
returns 1
Command: circle
3P/2P/TTR/<Center point>:
Diameter/<Radius>:!Y
Ways to ruin your Visual Lisp life

(setq + -)
(setq * /)
(setq pi 2.5)

Visual Lisp will let you abuse


yourself. . .
Using AutoCAD commands
in Visual Lisp (the good stuff!)
Using the COMMAND function, you can
access the AutoCAD commands
Example:
(command “QSAVE”)
(command “TRIM”)
(command “ZOOM” “P”)
(command “LAYER”)
By default, Visual Lisp doesn’t
display dialog boxes
Visual Lisp displays the command line interface for
commands.

To force the dialog box use:


(initdia)
Before the command:

(initdia)
(command “layer”)
pause allow for user input

(command) cancel

“” enter
(Command “ZOOM” “A”)

(Command “ERASE” “L” ““)

(Command “INSERT” “DESK” pause 1 1 pause)

(Command “LINE” A B C “C”)

(Command “TEXT” pause “.5” 0 “Visual Lisp”)

(Command “LAYER” “S” pause ““)

(Command)
Creating your own AutoCAD
Commands
(DEFUN)
DEFUN binds a set of expressions to a
variable.
(DEFUN C:ZAP ( )

Command: zap
Anatomy of DEFUN
• DEFUN
is the function
• C:
indicates the function will be an
AutoCAD command
•()
indicates no local variables and no
arguments (we’ll get to that another
time!)
DEFUN examples

(DEFUN C:ZA ( )
(Command “ZOOM” “A”)
)
(DEFUN C:SQ ( )
(Command “POLYGON” 4 “E” pause pause)
)
(DEFUN C:ZAP ( )
(Command “erase” “all” ““)
)
(defun c:ls ( ) SHORT.LSP
(command “layer” “M” pause ““)
)
(defun c:ZO ( )
(command “ZOOM” “O”)
)
(defun c:ttr ( )
(command “circle” “ttr” pause pause pause)
)
(defun c:Jellydonut ( )
(command “donut” “0” pause )
)
Loading Visual Lisp routines
• APPLOAD - used to load one or more Visual
Lisp routines

• (load “short”)
Opening a dialog to a specific tab

(command “+dialogname” X)

(command “+options” 7)
will open the Options dialog to tab #8

(command “+customize” 0)
What’s wrong with this picture?

(defun c:door
(“insert” “door” pause 1 1 45)
)
(defun c:fun ())
(prompt “are we having fun yet?)
)
PPurge.LSP

(Defun c:ppurge ( )
(command “purge” “all” “*” “N”)
)
Let’s create a command that
breaks an object in the same
spot twice
(defun c:crack ()
Clean up your ACT!

• PRINC (get rid of the nils!)


PPurge.LSP

(Defun c:ppurge ( )
(command “purge” “all” “*” “N”)
(princ)
)
Just for fun!
ALERT
ALERT sends an ALERT box to the screen
with the indicated text
Example:
(ALERT “Formatting the hard drive”)
ACAD.LSP or ACADDOC.LSP
Automatic Visual Lisp Loading

• Put frequently used Visual Lisp routines.


• Undefine those AutoCAD commands you
want to automatically replace with Visual
Lisp routines.
• Place partial menu loading instructions
ACAD.LSP

(defun c:ZA ( )
(command “Zoom” “All”)
(princ))
(defun c:DT ( )
(setvar “clayer” “TEXT”)
(command “Dtext”)
(princ))
(defun c:bolt ( )
(command “insert” “bolt” pause pause pause)
(princ))
Automatic loading LISP files

ACAD.LSP 2
ACADDOC.LSP 4
ACAD.MNL 5
-------------
ACAD200X.LSP 1
ACAD200XDOC.LSP 3
Undefine and Redefine

Permits undefining and redefining the


internal AutoCAD commands

Note: AutoCAD commands can always be


executed with a leading period.
S::STARTUP
a special section of ACAD.LSP

(defun C:LINE ( )
(prompt “Shouldn’t you be using Polylines?”)
(command “PLINE”))
(defun S::STARTUP ( )
(command “undefine” “line”)
)

Note: s::startup is the last file to be loaded before


control is handed over to the user.

You might also like