该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
(defun c:qq(/ acad this mods p_center p_a p_b p_c arc0 arc1 arc2 )
;以下是核心代码,肯定没问题。但是没有做容错处理,错误捕捉等,请自行修改
(vl-load-com)
(setq acad (vlax-get-acad-object))
(setq this (vla-get-activedocument acad))
(setq mods (vla-get-modelspace this))
(setq p_center (getpoint "\n 获取圆心"));获取圆心
(setq p_a (getpoint "\n 获取圆弧起点"));圆弧起点
(setq p_b (getpoint "\n 获取圆弧终点"));圆弧终点
;此处默认当选择两点到圆心长度不同时,以第一个点为半径
(setq arc1 (vla-AddArc mods (vlax-3d-point p_center) (distance p_center p_a) (angle p_center p_a) (angle p_center p_b)));绘制圆弧1
(setq arc2 (vla-AddArc mods (vlax-3d-point p_center) (distance p_center p_a) (angle p_center p_b) (angle p_center p_a)));绘制圆弧2
(if (>= (vla-get-ArcLength arc1) (vla-get-ArcLength arc2));删除长的圆弧段,则长度短的是劣弧赋值给arc0
(progn
(vla-delete arc1)
(setq arc0 arc2)
)
(progn
(vla-delete arc2)
(setq arc0 arc1)
)
)
(setq p_b (getpoint "\n 取镜像基点1"));获取镜像基点1
(setq p_c (getpoint "\n 取镜像基点2"));获取镜像基点2
(vla-mirror arc0 (vlax-3d-point p_b) (vlax-3d-point p_c));镜像完成
)