求助两线截交并分解成线段
截交即圆角或倒角为0,直线或多段线截交后分解成线段,最好可框选,
本人研究很久都没有进展,特来求助,
恳请各位大神指点...
本帖最后由 llsheng_73 于 2015-2-3 16:40 编辑
(defun c:tt(/ ss e p p1 p2)
(while(setq ss(ssget":S"'((0 . "line,*polyline"))))
(sssetfirst nil ss)
(princ"\n点选与已选线段求交点的直线或者多线段")
(while(<(sslength ss)2)
(if(member(cdr(assoc 0(entget(setq e(car(entsel))))))'("LINE""LWPOLYLINE""POLYLINE"))
(setq ss(ssadd e ss))))
(sssetfirst nil ss)
(setq p(vlax-safearray->list(vlax-variant-value(vla-IntersectWith(vlax-ename->vla-object(ssname ss 0))(vlax-ename->vla-object(ssname ss 1))3)))
p1(cdar(vl-sort(mapcar'(lambda(x)(cons(distance x p)x))(list(vlax-curve-getstartpoint(ssname ss 0))(vlax-curve-getendpoint(ssname ss 0))))
'(lambda(x y)(>(car x)(car y)))))
p2(cdar(vl-sort(mapcar'(lambda(x)(cons(distance x p)x))(list(vlax-curve-getstartpoint(ssname ss 1))(vlax-curve-getendpoint(ssname ss 1))))
'(lambda(x y)(>(car x)(car y))))))
(entdel(ssname ss 0))
(entdel(ssname ss 1))
(entmakex(list'(0 . "line")(cons 10 p1)(cons 11 p)))
(entmakex(list'(0 . "line")(cons 10 p2)(cons 11 p)))
)
(princ)) 为什么不贴个图加以说明? 本帖最后由 yangist 于 2015-2-2 14:05 编辑
sicky111 发表于 2015-2-2 11:04 static/image/common/back.gif
为什么不贴个图加以说明?好的,就是想截交后的线直接为line,不要变成pline
倒角输入R=0就可以了 选集先转化成 Lwpolyline
then ---> 示例--->
Command: pedit
Select polyline or : m
Select objects: Specify opposite corner: 2 found
Select objects:
Enter an option : j
Join Type = Extend
Enter fuzz distance or <0.0000>: 10
1 segments added to polyline
Enter an option :
<---
then explode 最近几个版本只要你在fillet时按住Ctrl键,就会临时变成filletrad=0.且不会改变原有的 rad 你最后 explode一下不就得了 e2002 发表于 2015-2-2 16:49 static/image/common/back.gif
你最后 explode一下不就得了
分解时的选择集不好写 我研究E很久也搞不出来,才来求助的呢~~~ Ref:
http://bbs.mjtd.com/thread-112117-2-1.html
页:
[1]
2