如何在cad中实现在交点处自动绘制点
如题,有没有插件什么工具的需要小懒人工具箱支持
下载地址
http://yunpan.cn/c3iAVqYptpwj9访问密码 cc19
QQ群: 208388011
(defun c:tt ();;;;曲线交点处加点
(vl-load-com)
(princ "\n请选择多段线、样条曲线、直线、圆、圆弧、椭圆:")
(setq ss (ssget (list (cons 0 "*LINE,ARC,CIRCLE,ELLIPSE"))))
(if (/= ss nil)
(progn
(setq ptnls (xlr_jdlb_ss ss))
(if (/= ptnls nil)
(progn
(foreach pt ptnls
(entmake (list (cons 0 "POINT") (cons 10 pt)(cons 62 3)))
)
)
)
)
)
)
本帖最后由 KRG214 于 2016-3-12 18:19 编辑
为什么我把上面的代码复制加载到cad中还是没有用的,不能生成点显示为选择对象:
; 错误: no function definition: XLR_JDLB_SS,还是必须用小懒人工具,如果必须装,那有没有直接的代码不用安装工具的 KRG214 发表于 2016-3-12 17:56 static/image/common/back.gif
为什么我把上面的代码复制加载到cad中还是没有用的,不能生成点显示为选择对象:
; 错误: no function defi ...
没有,要安装小懒人才可以用 (defun c:tt ();;;;曲线交点处加点
(vl-load-com)
(princ "\n请选择多段线、样条曲线、直线、圆、圆弧、椭圆:")
(setq ss (ssget (list (cons 0 "*LINE,ARC,CIRCLE,ELLIPSE"))))
(if (/= ss nil)
(progn
(setq ptnls (xlr_jdlb_ss ss))
(if (/= ptnls nil)
(progn
(setvar "PDMODE" 35) ;点模式
(foreach pt ptnls
(entmake (list (cons 0 "POINT") (cons 10 pt)(cons 62 3)))
)
)
)
)
)
)
(defun xlr_jdlb_ss (ss / ipt lst n n1 n2 obj1 obj2)
(setq n(sslength ss)
n1 0
)
(while (< n1 (1- n))
(setq obj1 (vlax-ename->vla-object (ssname ss n1))
n2 (1+ n1)
)
(while (< n2 n)
(setq obj2 (vlax-ename->vla-object (ssname ss n2))
ipt(vlax-variant-value (vla-intersectwith obj1 obj2 0))
)
(if (> (vlax-safearray-get-u-bound ipt 1) 0)
(progn
(setq ipt (vlax-safearray->list ipt))
(while (> (length ipt) 0)
(setq lst (cons (list (car ipt) (cadr ipt) (caddr ipt)) lst) ipt (cdddr ipt))
)
)
)
(setq n2 (1+ n2))
)
(setq n1 (1+ n1))
)
lst
) 要这么多行 谢谢大牛,真的有用,很感谢 这个程序我为什么用不了 我也有用的,谢谢发下程序{:1_1:} 收藏学习中,感谢楼主,感谢大神回复
页:
[1]
2