jdhszh 发表于 2008-4-1 08:39:00

[求助]程序有时会出错不知为什么

<p>我做的是二维转多段线的程序,不知是程序原因还是图形问题,修改后结果不大一样,有的改对有的错,请大家给看一下,若是图形原因如何改程序</p><p>&nbsp;</p><p></p><p>&nbsp;</p><p></p><p>改后结果</p>

jdhszh 发表于 2008-4-2 18:10:00

用PEDIT拟合的的曲线都会出现类似问题,怎么修改呀

ljttjl 发表于 2008-4-3 20:46:00

将详细问题及图形发送至<a href="mailto:ljttjl@tom.com">ljttjl@tom.com</a>,我试试

004 发表于 2012-12-3 02:00:36

(defun c:tt (/)
;;;作者:wkq004@qq.com 2012-11-28
;;;功能:将二次拟合的二维多段线转为轻多段线
(setq ss (ssget ":S" '((0 . "POLYLINE"))))
(setq e (ssname ss 0))
(setq a e)
(setq ela (entget a))
(setq pts '())
(setq i 0)
(while
    (and (setq e (entnext e)) (/= "SEQEND" (cdr (assoc 0 (entget e)))))
   (setq el (entget e))
   (if (= 8 (logand (cdr (assoc 70 el)) 8))
       (progn (setq pt (cdr (assoc 10 el)))
              (setq pts (append pts (list pt)))
       )
   )
)
(if pts
    (progn (entdel a)
           (entmake (append (list '(0 . "LWPOLYLINE")
                                  '(100 . "AcDbEntity")
                                  '(100 . "AcDbPolyline")
;;;                  (assoc 8 ela)
;;;                  (assoc 62 ela)
                                  (cons 38 (caddr (assoc 10 ela)))
                                  (cons 90 (length pts))
                          )
                          (if        (= (logand (cdr (assoc 70 ela)) 1) 1) ;_判断闭合
                              (list (cons 70 1))
                          )
                          (mapcar '(lambda (x) (cons 10 x)) pts)
                          '((210 0. 0. 1.))
                  )
           )
    )
)
(princ)
)
页: [1]
查看完整版本: [求助]程序有时会出错不知为什么