the lisp working but not create the 3dpoly
(defun c:3dp ( / 3D CNT ELIST POINT PT ST ) (vl-load-com)
(defun _value (str / ATTS)
(while (not
(if (and (setq ATTS (car (nentsel str)))
(member (vla-get-objectname (setq ATTS (vlax-ename->vla-object ATTS)))
'("AcDbAttribute" "AcDbText"))
(setq ATTS (vl-string-left-trim "EL. " (vla-get-textstring ATTS)))
(numberp (setq ATTS (read ATTS))))
ATTS (progn (princ "\nNot Valid") nil)))) ATTS)
(defun Make3DPoly ( pointlist / lastent)
(setq lastent (entlast))
(foreach definition
(append
'(((0 . "POLYLINE") (100 . "AcDbEntity") (100 . "AcDb3dPolyline") (66 . 1) (10 0.0 0.0 0.0) (70 . 8) (40 . 0.0) (41 . 0.0)
(210 0.0 0.0 1.0) (71 . 0) (72 . 0) (73 . 0) (74 . 0) (75 . 0)))
(mapcar
'(lambda (point)
(append
'((0 . "VERTEX") (100 . "AcDbEntity") (100 . "AcDbVertex") (100 . "AcDb3dPolylineVertex"))
(list (cons 10 point))
'((40 . 0.0) (41 . 0.0) (42 . 0.0) (70 . 32) (50 . 0.0) (71 . 0) (72 . 0) (73 . 0) (74 . 0)))) PointList)
'(( (0 . "SEQEND") (100 . "AcDbEntity")))) (entmake definition)) (not (eq (entlast) lastent)))
(setq cnt 1)
(while
(setq pt (getpoint (strcat "\nPick Point No. 0" (itoa cnt) ": ")))
(setq st (_value (strcat "\nPick Point No. 0" (itoa cnt) " Level: ")))
(setq pt (list (float (nth 0 pt)) (float (nth 0 pt)) (float st)) )
(setq elist (cons pt elist))
(setq cnt (1+ cnt)))
(setq 3d (Make3DPoly elist))
(entmod 3d)
)