这个真不错。。。 看一看
好东西,下载试用一下
本帖最后由 fl202 于 2013-7-23 16:22 编辑
(repeat (- (sslength liness) 1)
(setq ename1 (ssname liness index1))
(setq entdata1 (entget ename1))
(setq pt1 (cdr (assoc 10 entdata1)))
(setq pt2 (cdr (assoc 11 entdata1)))
(setq index2 (1+ index1))
(while (< index2 (sslength liness))
(setq ename2 (ssname liness index2))
(setq index2 (1+ index2))
(setq entdata2 (entget ename2))
(setq pt3 (cdr (assoc 10 entdata2)))
(setq pt4 (cdr (assoc 11 entdata2)))
(if (inters pt1 pt2 pt3 pt4)
(setq arcss (ssadd (pipefillet ename1 ename2 r) arcss))
)
)
(setq index1 (1+ index1))
)
中的
(while (< index2 (sslength liness))
(setq ename2 (ssname liness index2))
(setq index2 (1+ index2))
(setq entdata2 (entget ename2))
(setq pt3 (cdr (assoc 10 entdata2)))
(setq pt4 (cdr (assoc 11 entdata2)))
(if (inters pt1 pt2 pt3 pt4)
(setq arcss (ssadd (pipefillet ename1 ename2 r) arcss))
)
)
这段while 没用?第一条线干嘛要和后面所有的线都比较,如果有交点就f,实际管道绘制很少有这种情况,应该去掉while。前面有人说;(setq inter (inters pt11 pt12 pt21 pt22));改为;(setq inter (inters pt11 pt12 pt21 pt22 nil));则两条直线不相交程序也可运行。是不对的,因为框选ssget,直线间的相互顺序并非是真实的流向顺序,那样出来的结果可能是错误的结果。
另:我还想加对话框,把A系列、B系列的管子、图层等加进去。
哈哈哈,我太高兴了!
((= col 1) ;若对象线颜色是1号色,改为14号色
(setq color0 14)
)
((= col 2) ;若对象线颜色是2号色,改为54号色
(setq color0 54)
)
((= col 3) ;若对象线颜色是3号色,改为96号色
(setq color0 96)
)
这是个人的作图习惯吗?没见过啊。
好东西,看一下
看看,先下了。
是源码吗?
好长时间没来明经了,还有这种好东西。有没有那位大侠开发了简单的二维管道三线画法??
支持楼主,谢谢分享。
使用中发现两个问题:
1、画单线结束,不能按Esc键,要按回车确认键,否则命令失效!
2、中心线最好能变成红色点划线(现是随层颜色,且是细实线)就好啦!
好贴,好东西