AutoCAD AutoLISP 程序:生成所选图元的最小外接圆
(defun c:wy () (setq ent (entsel "\n选择图元: ")) (setq obj (vlax-ename->vla-object (car ent)))
(if (vlax-method-applicable-p obj 'GetBoundingBox) (progn (setq bbox (vlax-invoke-method obj 'GetBoundingBox)) (setq center (vlax-safearray->list (vlax-variant-value (vlax-variant-property bbox 'Center)))) (setq radius (vlax-variant-value (vlax-variant-property bbox 'Radius)))
(setq circle (vla-addcircle (vla-get-activedocument (vlax-get-acad-object))
(vlax-3d-point center)
radius))
(vla-put-layer circle "0")
(vla-update circle)
(princ "\n已生成最小外接圆。")
)
(princ "\n选择的图元不支持最小外接圆操作。")
) (princ) )
将此程序保存为一个以 .lsp 为后缀的文件,然后在 AutoCAD 中加载此程序(使用命令 "appload"),即可通过输入 "wy" 来调用它。
使用方法:
- 输入 "wy" 并按下 Enter 键来调用程序。
- 在图纸中选择要生成最小外接圆的图元。
- 程序将根据所选图元的最小外接圆的中心点和半径,在图纸中生成一个最小外接圆。
请注意,此程序仅支持支持 GetBoundingBox 方法的图元类型(例如:线段、多段线、圆等)。对于不支持此方法的图元类型,程序将显示错误消息。
希望这可以帮助到您!
原文地址: https://www.cveoy.top/t/topic/pWbi 著作权归作者所有。请勿转载和采集!