自编一段多段线与曲线相互转换程序,想将转换后的线保持和原线一样的颜色、线型、线型比例、线宽和图层。但只能改变颜色,其它的不能改变,不知什么原因,请高手帮看看错在哪能里? 程序如下: (defun c:lpsp () (setq ss (car(entsel"\n请选择曲线、多段线: "))) (setq endata (entget ss)) ;取出对象(多段线)ssn的信息列表赋于endata (setq s0 (cdr (assoc 0 endata))) ;取得原实体线型名称 (entdel ss) ;删除要修改的线 (if (= s0 "LWPOLYLINE") (progn ;如果是多段线 (setq kd 10) ;判断坐标的参数为10 (command "_spline") ;启动画曲线命令 )) (if (= s0 "SPLINE") (progn ;如果是曲线 (setq kd 11) ;判断坐标的参数为11 (command "_pline") ;启动画多段线命令 )) (setq n 0 ptn '()) (repeat (length endata) (setq pt (nth n endata)) ;依次取得信息列表的子表 (setq x (car pt)) (if (= x kd) (command (cdr pt))) ;判断是否是坐标点,是就画线 (setq n (+ n 1)) ) (if (= s0 "LWPOLYLINE") (command "" "" "")) ;多段线画线结束 (if (= s0 "SPLINE") (command "")) ;曲线画线结束 (setq f1 (cdr (assoc 62 endata))) ;取得ss的颜色 (setq f2 (cdr (assoc 6 endata))) ;取得ss的线型 (setq f3 (cdr (assoc 48 endata))) ;取得ss的线型比例 (setq f4 (cdr (assoc 370 endata))) ;取得ss的线宽 (setq f5 (cdr (assoc 8 endata))) ;取得ss的图层 (command "_chprop" (entlast) "" "c" f1 "") ;新线的颜色 (command "_chprop" (entlast) "" "it" f2 "") ;新线的线型 (command "_chprop" (entlast) "" "s" f3 "") ;新线的线型比例 (command "_chprop" (entlast) "" "lw" f4 "") ;新线的线宽 (command "_chprop" (entlast) "" "la" f5 "") ;新线的图层 ) |