明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5800|回复: 10

[提问] 如何在cad中实现在交点处自动绘制点

  [复制链接]
发表于 2016-3-11 21:47:12 | 显示全部楼层 |阅读模式
如题,有没有插件什么工具
发表于 2016-3-12 14:38:08 | 显示全部楼层

  1. 需要小懒人工具箱支持
  2. 下载地址
  3. http://yunpan.cn/c3iAVqYptpwj9  访问密码 cc19
  4. QQ群: 208388011

  5. (defun c:tt ();;;;曲线交点处加点
  6.   (vl-load-com)
  7.   (princ "\n请选择多段线、样条曲线、直线、圆、圆弧、椭圆:")
  8.   (setq ss (ssget (list (cons 0 "*LINE,ARC,CIRCLE,ELLIPSE"))))
  9.   (if (/= ss nil)
  10.     (progn
  11.       (setq ptnls (xlr_jdlb_ss ss))
  12.       (if (/= ptnls nil)
  13.   (progn
  14.     (foreach pt ptnls
  15.       (entmake (list (cons 0 "POINT") (cons 10 pt)(cons 62 3)))
  16.       )
  17.     )
  18.   )
  19.     )
  20.   )
  21. )

本帖子中包含更多资源

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

x
 楼主| 发表于 2016-3-12 17:56:10 | 显示全部楼层
本帖最后由 KRG214 于 2016-3-12 18:19 编辑

为什么我把上面的代码复制加载到cad中还是没有用的,不能生成点显示为选择对象:
; 错误: no function definition: XLR_JDLB_SS,还是必须用小懒人工具,如果必须装,那有没有直接的代码不用安装工具的
发表于 2016-3-13 08:21:18 | 显示全部楼层
KRG214 发表于 2016-3-12 17:56
为什么我把上面的代码复制加载到cad中还是没有用的,不能生成点显示为选择对象:
; 错误: no function defi ...

没有,要安装小懒人才可以用
发表于 2016-3-13 21:54:27 | 显示全部楼层
  1. (defun c:tt ();;;;曲线交点处加点
  2.   (vl-load-com)
  3.   (princ "\n请选择多段线、样条曲线、直线、圆、圆弧、椭圆:")
  4.   (setq ss (ssget (list (cons 0 "*LINE,ARC,CIRCLE,ELLIPSE"))))
  5.   (if (/= ss nil)
  6.     (progn
  7.       (setq ptnls (xlr_jdlb_ss ss))
  8.       (if (/= ptnls nil)
  9.         (progn
  10.           (setvar "PDMODE" 35) ;点模式
  11.           (foreach pt ptnls
  12.             (entmake (list (cons 0 "POINT") (cons 10 pt)(cons 62 3)))
  13.           )
  14.         )
  15.       )
  16.     )
  17.   )
  18. )
  19. (defun xlr_jdlb_ss (ss / ipt lst n n1 n2 obj1 obj2)
  20.   (setq n  (sslength ss)
  21.         n1 0
  22.   )
  23.   (while (< n1 (1- n))
  24.     (setq obj1 (vlax-ename->vla-object (ssname ss n1))
  25.           n2   (1+ n1)
  26.     )
  27.     (while (< n2 n)
  28.       (setq obj2 (vlax-ename->vla-object (ssname ss n2))
  29.             ipt  (vlax-variant-value (vla-intersectwith obj1 obj2 0))
  30.       )
  31.       (if (> (vlax-safearray-get-u-bound ipt 1) 0)
  32.         (progn
  33.           (setq ipt (vlax-safearray->list ipt))
  34.           (while (> (length ipt) 0)
  35.             (setq lst (cons (list (car ipt) (cadr ipt) (caddr ipt)) lst) ipt (cdddr ipt))
  36.           )
  37.         )
  38.       )
  39.       (setq n2 (1+ n2))
  40.     )
  41.     (setq n1 (1+ n1))
  42.   )
  43.   lst
  44. )

评分

参与人数 1明经币 +1 收起 理由
linyangmjtd + 1 很给力!

查看全部评分

发表于 2016-3-15 09:10:38 | 显示全部楼层
要这么多行
 楼主| 发表于 2016-4-10 08:52:18 | 显示全部楼层
谢谢大牛,真的有用,很感谢
发表于 2018-11-14 21:50:58 | 显示全部楼层
这个程序我为什么用不了
发表于 2018-11-14 21:52:02 | 显示全部楼层
我也有用的,谢谢发下程序
发表于 2020-7-6 17:30:09 | 显示全部楼层
收藏学习中,感谢楼主,感谢大神回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 16:47 , Processed in 0.184694 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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