Updating a Stubbed-Out Function
 
 
 

You have now revised the gp:getDialogInput function. Whenever you modify a stubbed-out function, you should always check a couple of things:

In the case of gp:getDialogInput, the answer to both questions is yes. The function now accepts the parameter of the path width (to set the default tile size and spacing). And instead of returning T, which is the value the stubbed-out version of the function returned, gp:getDialogInput now returns an association list containing four new values.

Both changes affect the code that calls the function and the code that handles the return values from the functions. Replace your previous version of the C:GPath function in gpmain.lsp with the following code:

(defun C:GPath (/ gp_PathData gp_dialogResults)
  ;; Ask the user for input: first for path location and
  ;; direction, then for path parameters.  Continue only if you
  ;; have valid input.  Store the data in gp_PathData.
  (if (setq gp_PathData (gp:getPointInput))
	(if (setq gp_dialogResults (gp:getDialogInput (cdr(assoc 40
							 gp_PathData))))
	(progn
	 ;; Now take the results of gp:getPointInput and append this
	 ;; to the added information supplied by gp:getDialogInput.
	 (setq gp_PathData (append gp_PathData gp_DialogResults))
	 ;; At this point, you have all the input from the user.
	 ;; Draw the outline, storing the resulting polyline
	 ;; "pointer" in the variable called PolylineName.
	 (setq PolylineName (gp:drawOutline gp_PathData))
	) ;_ end of progn
	 (princ "\nFunction cancelled.")
	 ) ;_ end of if
	(princ "\nIncomplete information to draw a boundary.")
  ) ;_ end of if
  (princ)  ; exit quietly
) ;_ end of defun

Take a look at the boldface lines in the revision of the main C:GPath function. There are two essential changes to make the program work correctly:

There are additional changes in the code resulting from the replacement of placeholders in the stubbed-out version. The easiest thing to do is copy this code from the online tutorial and paste it into your file.