
这个用一个小插件就可以完成批量绘制圆:
(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】
完全可以的啊!我就有CASS或CAD里标注面积亩数(平方米)的程序软件,完全可以批量标注、自动编号的,还可以自定义起始编号、编号位数,能够把地块的坐标点、地块编号和地块面积批量导出到EXCEL表格里,很好使用的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)