¿£Áö´Ï¾î ±â¼úºí·Î±×
(defun c:sptrace (/ ent spline cur pl end keep)
 (setq cur nil)
 (setq pl '((0 . "LWPOLYLINE")
     (100 . "AcDbEntity")
     (67 . 0)
     (8 . "0")
     (100 . "AcDbPolyline")
     (90 . 7)
     (70 . 0)
     (43 . 0.0)
     (38 . 0.0)
     (39 . 0.0)
    )
   )
 (setq end '(210 0.0 0.0 1.0))
 (while (not (progn (princ "r½ºÇöóÀÎ ¼±ÅÃ: ")
    (setq spline (ssget ":s" '((0 . "SPLINE"))))
     )
)
 )
 (initget "Yes No")
 (setq keep (getkword "¿øº» ½ºÇöóÀÎÀ» À¯ÁöÇϽðڽÀ´Ï±î [Yes/No]: "))
 (setq spline (ssname spline 0))
 (if (/= keep "No")
   (progn
     (entmake (entget spline))
     (setq spline (entlast))
     )
   )
 (setq ent spline)
 (command "splinedit" ent "refine" "elevate" 26 "x" "x")
 (setq ent (entget ent)); get data for spline
 (setq pl (subst (assoc 8 ent) (assoc 8 pl) pl))
 (if (= (rem (cdr (assoc 70 ent)) 2) 1)
   (setq pl (subst (cons 70 1) (assoc 70 pl) pl))
   (setq pl (subst (cons 70 0) (assoc 70 pl) pl))
 )
 (repeat (length ent)
   (progn
     (if (eq (car (car ent)) 10)
(setq cur (append cur (list (car ent))))
     )
     (setq ent (cdr ent))
   )
 )
 (setq pl (subst (cons 90 (length cur)) (assoc 90 pl) pl))
 (repeat (length cur)
   (progn
     (setq pl
    (append
      pl
      (list (car cur) (cons 40 0.0) (cons 41 0.0) (cons 42 0.0))
    )
     )
     (setq cur (cdr cur))
   )
 )
 (setq pl (append pl (list end)))
 (entmake pl)
 (entdel (cdr (assoc -1 (entget spline))))
 (princ)
)