Table of contents
- 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