明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2637|回复: 6

[求助]大虾们好,如何将重合的线段合并成一条线

[复制链接]
发表于 2005-3-14 17:42:00 | 显示全部楼层 |阅读模式
用三维图形生成向视图后,相互独立的接触面处会产生重合的线,造成文件体积较大。请问如何将这些线段合并成一条线段。谢谢高人指点迷径。
发表于 2005-3-14 17:51:00 | 显示全部楼层
生成什么视图,是轮廓图么?
发表于 2005-3-14 18:33:00 | 显示全部楼层
;两条同角度不平行的直线合并为一条.
(defun c:joinline ()
(if (and (progn (setq e1 (car (entsel)) ss (ssget "p" '((0 . "LINE")))))
(progn (setq e2 (car (entsel)) ss (ssget "p" '((0 . "LINE"))))))
(progn
(setq obj1 (vlax-ename->vla-object e1)
obj2 (vlax-ename->vla-object e2)
pt11 (vlax-get obj1 'startpoint)
pt12 (vlax-get obj1 'endpoint)
pt21 (vlax-get obj2 'startpoint)
pt22 (vlax-get obj2 'endpoint)
ptlst (list pt11 pt12 pt21 pt22)
z (last pt11)
angsub(abs (- (angle pt11 pt12) (angle pt21 pt22)))
ptmin (list (apply 'min (mapcar 'car ptlst))(apply 'min (mapcar 'cadr ptlst)) z)
ptmax (list (apply 'max (mapcar 'car ptlst))(apply 'max (mapcar 'cadr ptlst)) z))
(if (or (equal angsub 0 0.001) (equal angsub PI 0.001))
(setq el1 (entget e1)
el1 (subst (cons 10 ptmin) (assoc 10 el1) el1)
el1 (subst (cons 11 ptmax) (assoc 11 el1) el1)
nlin(entmod el1)
del (entdel e2))
)
)(princ "\n无法连接合并")
)
(princ)
)
发表于 2005-3-14 20:03:00 | 显示全部楼层
没有明白楼上的意思,两条直线,角度相同却又不平行,这是什么线呢?再说程序中怎么选取你要合并的线呢?请指教。谢谢。
 楼主| 发表于 2005-3-15 17:03:00 | 显示全部楼层
首先感谢CADghost的解答,虽然我还没有用您提供的程序,但你给出的题目我有些不理解。因为我的问题中的线段绝对是“重合线段”,相当于其中一条(比如短的)完全可以删除掉而不影响图形的显示。 我的做法:在模型空间制作几个实体,让平面相互的接触(没有合并)。然后进入图纸空间。进入视口,执行命令: 1、_solview (一串命令) 2、_soldraw (选择操作的适口) 这样,在三维的平面结合处就会产生两条线段,根据平面的大小不同,线长也不同。
 楼主| 发表于 2005-3-18 17:45:00 | 显示全部楼层
拜托!拜托!拜托!!!!!!!!!!!!
发表于 2005-3-18 21:46:00 | 显示全部楼层
我认为可以逐次删除,方法不是很好.你能否上传一下?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 18:38 , Processed in 0.173428 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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