如何在CAD多段线的连接点上批量标注圆圈

2024-01-09 12:53:44
推荐回答(4个)
回答1:

这个用一个小插件就可以完成批量绘制圆:

(defun C:tes ( / &k1 &kw1 &ob1 c40 i n1 pt1)
 (if (null vlax-dump-object) (vl-load-com) )
 (if (and (setq c40 (getdist "\n请输入圆的半径"))
          (> c40 0);输入的值大于0
          (princ "\n请选择要绘制圆的多段线")
          (setq &kw1 (ssget '((0 . "LWPOLYLINE"))))
     )
  (progn
   (while (setq &k1 (ssname &kw1 0))
    (setq &kw1 (ssdel &k1 &kw1) &ob1 (vlax-ename->vla-object &k1))
    (setq n1 (fix (vlax-curve-getEndParam &ob1)) i 0);取得坐标数量
    (if (null (vlax-curve-isClosed &ob1)) (setq n1 (1+ n1)) );如果不封闭就增加一个点
    (repeat n1
     (setq pt1 (vlax-curve-getPointAtDist &ob1 (vlax-curve-getDistAtParam &ob1 i)));得到点的坐标
     (entmake (list '(0 . "CIRCLE") (cons 10 pt1) (cons 40 c40)));多段线点上绘制圆
     (setq i (1+ i))
    )
   )
  )
 )
 (princ)
);复制到记事本,以【.lsp】为后缀命名,打开CAD,autolisp加载,命令【TES】

回答2:

cad自带功能是不可能实现批量的,类似打印和其他涉及批量都是通过外置程序来实现的,如果多段线长度一致可以批量不知黏贴,还有个技巧是画整条线,用点样式来等分 线条,点样式就选择圆圈,然后框选全部X分解下(算是个小技巧吧,但不知道对你是否实用),另外有一个燕秀工具的插件,它可以自动在图形中找到断点,然后自动放一个圈在上面,但是这个圈好像不可以选中,你可以试试,不对勿喷

回答3:

要编个小程序,得到每个连接点,再每个点标注就行了。

回答4:

没读懂你的意思