I've had this LISP routine for quite some time. First use in 2016 is causing program to fatal error. I've tested a couple of times each crashes out. Any thoughts? (Snippet of error attached too.)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 7/25/06 ;;
;; 3d Polyline with User defined Elevations ;;
;; ;;
;; PROGRAM PROVIDED "AS IS" AND WITH ALL FAULTS, ;;
;; AND DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM ;;
;; WILL BE UNINTERRUPTED OR ERROR FREE. ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:3pe (/ oldecho oldos pnt1 elevz elev1txt elev1 pnt1e pntx elev2txt elevx) ;3pe
(setq oldecho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq pnt1 (getpoint "\nSpecify start point of polyline: "))
(setq elevz (last pnt1))
(if (/= elevz 0)
(setq pe:elev1 elevz)
)
(if pe:elev1
(progn
(setq elev1txt (rtos pe:elev1 2 2))
(setq elev1 (getreal (strcat "\nStart elevation: <" elev1txt "> ")))
(if (= elev1 nil)
(setq pe:elev1 pe:elev1)
(setq pe:elev1 elev1)
)
) ;end progn
(setq pe:elev1 (getreal "\nStart elevation: "))
) ;end if
(setq pnt1e (subst pe:elev1 (last pnt1) pnt1))
(command ".3dpoly")
(while
(if (= pntx nil)
(progn
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command pnt1e)
(setvar "osmode" oldos)
(setq pntx (getpoint pnt1e "\nPick point: "))
) ;end progn
(setq pntx (getpoint pntx "\nPick Point: "))
) ;end if
(command pntx)
(setq elev2z (last pntx))
(if (/= elev2z 0)
(setq pe:elev1 elev2z)
)
(setq elev2txt (rtos pe:elev1 2 2))
(setq elevx (getreal (strcat "\nElevation: <" elev2txt "> ")))
(if (= elevx nil)
(setq elevx pe:elev1)
(setq elevx elevx)
)
(setq pe:elev1 elevx)
(setq pntx (subst elevx (last pntx) pntx))
(command "undo")
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command pntx)
(setvar "osmode" oldos)
) ;end while
(command "")
(setvar "cmdecho" oldecho)
(princ)
)