明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2771|回复: 1

[讨论]如何把拟合二维线转为多段线?

[复制链接]
发表于 2008-7-14 21:12:00 | 显示全部楼层 |阅读模式

我需要把CAD图转入其它格式,他只能点对点转换,对于拟合的点却转不过去,多段线就没有这个问题,这是我转的线,却是有一部分重合的,谁有更好的方法。

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-12-3 01:54:13 | 显示全部楼层
(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)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-23 11:56 , Processed in 0.170222 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表