明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1743|回复: 13

[已解答] 求助两线截交并分解成线段

[复制链接]
发表于 2015-2-1 13:15 | 显示全部楼层 |阅读模式
5明经币
截交即圆角或倒角为0,
直线或多段线截交后分解成线段,最好可框选,
本人研究很久都没有进展,特来求助,
恳请各位大神指点...


发表于 2015-2-1 13:15 | 显示全部楼层
本帖最后由 llsheng_73 于 2015-2-3 16:40 编辑

  1. (defun c:tt(/ ss e p p1 p2)
  2.   (while(setq ss(ssget":S"'((0 . "line,*polyline"))))
  3.     (sssetfirst nil ss)
  4.     (princ"\n点选与已选线段求交点的直线或者多线段")
  5.     (while(<(sslength ss)2)
  6.       (if(member(cdr(assoc 0(entget(setq e(car(entsel))))))'("LINE""LWPOLYLINE""POLYLINE"))
  7.         (setq ss(ssadd e ss))))
  8.     (sssetfirst nil ss)
  9.     (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)))
  10.           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))))
  11.                          '(lambda(x y)(>(car x)(car y)))))
  12.           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))))
  13.                          '(lambda(x y)(>(car x)(car y))))))
  14.     (entdel(ssname ss 0))
  15.     (entdel(ssname ss 1))
  16.     (entmakex(list'(0 . "line")(cons 10 p1)(cons 11 p)))
  17.     (entmakex(list'(0 . "line")(cons 10 p2)(cons 11 p)))
  18.     )
  19.   (princ))

点评

太好用了,正是我想要的,非常感谢!~~~  发表于 2015-2-4 07:41
回复

使用道具 举报

发表于 2015-2-2 11:04 | 显示全部楼层
为什么不贴个图加以说明?
回复

使用道具 举报

 楼主| 发表于 2015-2-2 14:04 | 显示全部楼层
本帖最后由 yangist 于 2015-2-2 14:05 编辑
sicky111 发表于 2015-2-2 11:04
为什么不贴个图加以说明?
好的,就是想截交后的线直接为line,不要变成pline

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-2-2 14:10 | 显示全部楼层
倒角输入R=0就可以了
回复

使用道具 举报

发表于 2015-2-2 15:48 | 显示全部楼层
选集先转化成 Lwpolyline

then ---> 示例--->

Command: pedit
Select polyline or [Multiple]: m

Select objects: Specify opposite corner: 2 found

Select objects:

Enter an option [Close/Open/Join/Width/Fit/Spline/Decurve/Ltype gen/Undo]: j

Join Type = Extend
Enter fuzz distance or [Jointype] <0.0000>: 10

1 segments added to polyline

Enter an option [Close/Open/Join/Width/Fit/Spline/Decurve/Ltype gen/Undo]:

<---

then explode
回复

使用道具 举报

发表于 2015-2-2 16:48 | 显示全部楼层
最近几个版本只要你在fillet时按住Ctrl键,就会临时变成filletrad=0.且不会改变原有的 rad
回复

使用道具 举报

发表于 2015-2-2 16:49 | 显示全部楼层
你最后 explode一下不就得了
回复

使用道具 举报

 楼主| 发表于 2015-2-2 17:13 | 显示全部楼层
e2002 发表于 2015-2-2 16:49
你最后 explode一下不就得了

分解时的选择集不好写 我研究E很久也搞不出来,才来求助的呢~~~
回复

使用道具 举报

发表于 2015-2-2 17:48 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 16:58 , Processed in 0.213094 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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