我现在在写一个3D多段线逆向的程序,写完以后程序没有出错,但是方向也没有改变,请各位大师为我指点一二,不胜感激!代码如下: (defun C:ddl(/ tmp ed ent m n endpt1 endpt2 newline name) (princ "\n请选择3d多段线:\n") (setq ent (ssname tmp m)) (setq ed (entget ent)) (setq name (cdr (assoc 0 ed))) (if (= name "POLYLINE") (progn (setq points nil) (setq vrt ent) (setq elist (entget (setq vrt (entnext vrt)))) (while (not (equal (cdr (assoc 0 (entget vrt))) "SEQEND")) (SETQ points (APPEND points (list elist))) ; (setq vrt (cdr (assoc -1 elist))) (setq elist (entget (setq vrt (entnext vrt)))) ) (SETQ rpoints (REVERSE points)) (SETQ n 0) (setq elist (entget (setq aa (entnext ent)))) (while (not (equal (cdr (assoc 0 elist)) "SEQEND")) (SETQ nn 0) (setq nvrt (nth n rpoints)) (foreach one elist (setq elist (subst (nth nn nvrt) one elist)) (setq nn (1+ nn)) ) (entmod elist) (setq elist (entget (setq aa (entnext aa)))) (setq n (1+ n)) ) ) ) ) |