AutoLISP Tutorial
Documentation Home
Introduction
Working in Visual LISP
Tutorial Overview
Designing and Beginning the Program
Defining Overall Program Goals
Getting Started with Visual LISP
Looking at Visual LISP Code Formatting
Analyzing the Code
Filling the Gaps in the Program
Letting Visual LISP Check Your Code
Running the Program with Visual LISP
Wrapping Up Lesson 1
Using Visual LISP Debugging Tools
Differentiating Between Local and Global Variables
Using Local Variables in the Program
Examining the gp:getPointInput Function
Using Association Lists to Bundle Data
Putting Association Lists to Use
Storing the Return Value of gp:getPointInput in a Variable
Examining Program Variables
Revising the Program Code
Commenting Program Code
Setting a Breakpoint and Using More Watches
Using the Debug Toolbar
Stepping Through Code
Watching Variables As You Step Through a Program
Stepping Out of the gp:getPointInput Function and into C:Gpmain
Wrapping Up Lesson 2
Drawing the Path Boundary
Planning Reusable Utility Functions
Converting Degrees to Radians
Converting 3D Points to 2D Points
Drawing AutoCAD Entities
Creating Entities Using ActiveX Functions
Using entmake to Build Entities
Using the AutoCAD Command Line
Enabling the Boundary Outline Drawing Function
Passing Parameters to Functions
Working with an Association List
Using Angles and Setting Up Points
Understanding the ActiveX Code in gp:drawOutline
Ensuring That ActiveX Is Loaded
Obtaining a Pointer to Model Space
Constructing an Array of Polyline Points
Constructing a Variant from a List of Points
Putting It All Together
Wrapping Up Lesson 3
Creating a Project and Adding the Interface
Modularizing Your Code
Using Visual LISP Projects
Adding the Dialog Box Interface
Defining the Dialog Box with DCL
Saving a DCL File
Previewing a Dialog Box
Interacting with the Dialog Box from AutoLISP Code
Setting Up Dialog Values
Loading the Dialog File
Loading a Specific Dialog into Memory
Initializing the Default Dialog Values
Assigning Actions to Tiles
Starting the Dialog
Unloading the Dialog
Determining What to Do Next
Putting the Code Together
Updating a Stubbed-Out Function
Providing a Choice of Boundary Line Type
Cleaning Up
Running the Application
Wrapping Up Lesson 4
Drawing the Tiles
Introducing More Visual LISP Editing Tools
Matching Parentheses
Completing a Word Automatically
Completing a Word by Apropos
Getting Help with a Function
Adding Tiles to the Garden Path
Applying Some Logic
Applying Some Geometry
Drawing the Rows
Drawing the Tiles in a Row
Looking at the Code
Testing the Code
Wrapping Up Lesson 5
Acting with Reactors
Reactor Basics
Reactor Types
Designing Reactors for the Garden Path
Selecting Reactor Events for the Garden Path
Planning the Callback Functions
Planning for Multiple Reactors
Attaching the Reactors
Storing Data with a Reactor
Updating the C:GPath Function
Adding Reactor Callback Functions
Cleaning Up After Your Reactors
Test Driving Your Reactors
Examining Reactor Behavior in Detail
Wrapping Up Lesson 6
Putting It All Together
Planning the Overall Reactor Process
Reacting to More User-Invoked Commands
Storing Information Within the Reactor Objects
Adding the New Reactor Functionality
Adding Activity to the Object Reactor Callback Functions
Designing the gp:command-ended Callback Function
Handling Multiple Entity Types
Using ActiveX Methods in Reactor Callback Functions
Handling Nonlinear Reactor Sequences
Coding the command-ended Function
Updating gp:Calculate-and-Draw-Tiles
Modifying Other Calls to gp:Calculate-and-Draw-Tiles
Redefining the Polyline Boundary
Looking at the Functions in gppoly.lsp
Understanding the gp:RedefinePolyBorder Function
Understanding the gp:FindMovedPoint Function
Understanding the gp:FindPointInList Function
Understanding the gp:recalcPolyCorners Function
Understanding the gp:pointEqual, gp:rtos2, and gp:zeroSmallNum Functions
Wrapping Up the Code
Building an Application
Starting the Make Application Wizard
Wrapping Up the Tutorial
LISP and AutoLISP Books
Documentation Home