东西南北人 发表于 2005-3-14 17:42:00

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

用三维图形生成向视图后,相互独立的接触面处会产生重合的线,造成文件体积较大。请问如何将这些线段合并成一条线段。谢谢高人指点迷径。

席恩蒂 发表于 2005-3-14 17:51:00

生成什么视图,是轮廓图么?

CADghost 发表于 2005-3-14 18:33:00

;两条同角度不平行的直线合并为一条.<BR>(defun c:joinline ()<BR>                (if (and (progn (setq e1 (car (entsel)) ss (ssget "p" '((0 . "LINE")))))<BR>                                (progn (setq e2 (car (entsel)) ss (ssget "p" '((0 . "LINE"))))))<BR>                                (progn<BR>                                                (setq obj1 (vlax-ename-&gt;vla-object e1)<BR>               obj2 (vlax-ename-&gt;vla-object e2)<BR>               pt11 (vlax-get obj1 'startpoint)<BR>               pt12 (vlax-get obj1 'endpoint)<BR>               pt21 (vlax-get obj2 'startpoint)<BR>               pt22 (vlax-get obj2 'endpoint)<BR>               ptlst (list pt11 pt12 pt21 pt22)<BR>               z                               (last pt11)<BR>               angsub(abs (- (angle pt11 pt12) (angle pt21 pt22)))<BR>               ptmin (list (apply 'min (mapcar 'car ptlst))(apply 'min (mapcar 'cadr ptlst)) z)<BR>               ptmax (list (apply 'max (mapcar 'car ptlst))(apply 'max (mapcar 'cadr ptlst)) z))<BR>                                (if (or (equal angsub 0 0.001) (equal angsub PI 0.001))<BR>                                                                (setq el1 (entget e1)<BR>                                               el1 (subst (cons 10 ptmin) (assoc 10 el1) el1)<BR>                                               el1 (subst (cons 11 ptmax) (assoc 11 el1) el1)<BR>                                               nlin(entmod el1)<BR>                                               del (entdel e2))<BR>                                )<BR>               )(princ "\n无法连接合并")<BR>)<BR>(princ)<BR>)

yaopx0782 发表于 2005-3-14 20:03:00

没有明白楼上的意思,两条直线,角度相同却又不平行,这是什么线呢?再说程序中怎么选取你要合并的线呢?请指教。谢谢。

东西南北人 发表于 2005-3-15 17:03:00

首先感谢<A name=15223><FONT color=#000066><B>CADghost</B></FONT></A>的解答,虽然我还没有用您提供的程序,但你给出的题目我有些不理解。因为我的问题中的线段绝对是“重合线段”,相当于其中一条(比如短的)完全可以删除掉而不影响图形的显示。


我的做法:在模型空间制作几个实体,让平面相互的接触(没有合并)。然后进入图纸空间。进入视口,执行命令:


1、_solview                                       (一串命令)


2、_soldraw                       (选择操作的适口)


这样,在三维的平面结合处就会产生两条线段,根据平面的大小不同,线长也不同。

东西南北人 发表于 2005-3-18 17:45:00

拜托!拜托!拜托!!!!!!!!!!!!

zl-sir 发表于 2005-3-18 21:46:00

我认为可以逐次删除,方法不是很好.你能否上传一下?
页: [1]
查看完整版本: [求助]大虾们好,如何将重合的线段合并成一条线