自用LISP小工具:使用当前标注样式一键标注多段线/直线/块的外轮廓
这个小工具能干啥?
简单来说,就是帮你自动给选中的直线、多段线(包括轻量和普通)、或者块(Block Insert) 添加外轮廓的水平和垂直标注。
它会自动:
1. 找出你选中所有对象的整体边界框(Bounding Box)。
2. 提取这些对象的所有顶点。
* 把这些顶点(特别是最外侧的那些点)投影到边界框的四条边上。
* 在边界框的上下左右四个方向,生成两排线性标注:
* 一排是分段尺寸,标注出投影点之间的距离。
* 另一排是总尺寸,标注出整个方向的总长度。
效果大概就像这样(你可以在这里简单描述一下最终效果图的样子,或者如果论坛支持,可以贴张效果图):
有啥特点?
* 省时省力: 对于需要快速获取外轮廓尺寸的场景,比手动标注效率高多了。
* 支持多种对象: 你可以一次框选多个直线、多段线、甚至块,它会把它们看成一个整体来计算边界和标注。
* 能处理块: 选中块(INSERT)也没问题,它会临时把块“炸开”来分析里面的图形,获取点位信息,然后再用 undo 命令恢复块的原状,不会真的破坏你的块。
* 投影逻辑: 对于最边缘的点(比如最左、最右、最上、最下的点),它会尽量往多个方向投影,确保关键的极值点能被标注到。
* 自动偏移: 标注线的位置是根据你当前的 DIMSCALE(标注全局比例)自动计算偏移的,看起来会比较规整。
怎么用?
用法很简单:
* 加载LISP文件: 把 polydim\_v3.lsp 文件(或者你最终命名的文件)通过 APPLOAD 命令加载到你的AutoCAD中。
* 输入命令: 在命令行输入 POLYDIM 然后按回车。
* 选择对象: 根据提示,选择你想要标注的直线、多段线或块。可以框选多个。
* 完成: 选择完毕后按回车,脚本就会自动计算并添加标注了。
需要注意的地方:
* 支持的对象类型有限: 目前主要就是针对 LINE, LWPOLYLINE, POLYLINE, INSERT 这几种。圆、弧、椭圆之类的暂时还不支持直接处理(除非它们在块里面被分解成了直线或多段线)。
* 基于XY平面: 所有的计算和投影都是在XY平面进行的,会忽略对象的Z坐标。对于纯二维图形没问题。
* 块处理机制: 处理块时用到了 explode 和 undo。虽然加了基本的错误处理,但如果你的图纸非常非常复杂,或者块里面有奇怪的东西,理论上还是有极小可能出点小意外(比如 undo 没完全恢复)。不过一般情况下是没问题的。
* 标注样式和偏移: 标注会使用你当前的标注样式。偏移距离是根据 DIMSCALE 自动算的 (\* 8.0 和 \* 12.0 的比例,如果你想改可以在LISP源码里搜 dim\_offset 和 overall\_dim\_offset 修改那两行)。