Hi Topographer
Try this out
(defun c:tw (/ ent fh fn hnd itm num obj pnt sset v vexx)
;; helper to get 3dpoly coordinates
(defun 3dpoly-verts (en / elist lst vex)
(if (member "AcDb3dPolyline"
(mapcar 'cdr (entget en)))
(progn
(setq vex (entnext en))
(setq elist (entget vex))
(while (= (cdr (assoc 0 elist)) "VERTEX")
(setq lst (cons (trans (cdr (assoc 10 elist)) 1 0) lst))
(setq vex (entnext vex))
(setq elist (entget vex))
)
)
)
(reverse lst)
)
;;________________________________________________;;
(setq sset (ssget '((-4 . "<OR")(0 . "POINT")
(0 . "POLYLINE")(-4 . "OR>"))))
(if sset
(progn
(setq itm 0 num (sslength sset))
(setq fn (getfiled "Point Export File" "" "txt" 1))
(if (/= fn nil)
(progn
(setq fh (open fn "w"))
(while (< itm num)
(setq hnd (ssname sset itm))
(setq ent (entget hnd))
(setq obj (cdr (assoc 0 ent)))
(cond
((eq obj "POINT")
(setq pnt (cdr (assoc 10 ent)))
(setq pnt (trans pnt 0 1));;**CAB
(write-line (strcat (rtos (car pnt) 2 3) ","
(rtos (cadr pnt) 2 3) ","
(rtos (caddr pnt) 2 3)) fh)
)
((= obj "POLYLINE")
(setq v hnd)
(setq vexx (3dpoly-verts v ))
(foreach pnt vexx
(write-line (strcat (rtos (car pnt) 2 3) ","
(rtos (cadr pnt) 2 3) ","
(rtos (cadr pnt) 2 3)) fh)
)
)
(t nil)
)
(setq itm (1+ itm))
)
(close fh)
)
)
)
)
(princ)
)
(princ "\n\t---\tType TW to write coordinates\t---")
(princ)