kkkli 发表于 2014-5-19 17:49:03

highflybird自动规整命令用法说明

本帖最后由 kkkli 于 2014-5-19 18:04 编辑

很久前就在论坛上下载了一个“数据取整”的小工具,是个可以在ACAD各版本平台上运行的LSP程序。为了方便理解,我在这里将程序更名为“自动规整 AutoGuiZheng”。同时要先感谢作者highflybird提供了这个样一个方便的程序。 这个程序首先读取CAD图元的基点或者控制点的坐标值(如线段的端点、多段线的端点和转折点、圆的圆心,块的基点),然后将坐标值取整(相当于将这些点移动到了一个整数的坐标位置)。可以自定义容差,用来设置坐标值取整的位数和精度。同时适用于斯维尔对、天正对象。 刚开始的时候还不知道怎么用,弃置了一段时间。最近找出来研究了一下,发现功能真是强大,只是之前没有找对使用方法。为了能让更多的人可以享受到这个程序提供的便捷,现将我总结的一套使用方法分享出来。这个是新手教程,论坛里面的老鸟很多了,用过的就不用往下看了。
一、修改快捷命令程序只有一个很小的文件,可以直接用记事本打开。默认的命令为“GG”,可以根据自己的习惯修改。打开我提供的AutoGuiZheng.LSP文件,将下图红圈部分的“GG”修改为自己喜欢的快捷命令就可以了。



二、加载程序方法1:最简单的方法就是直接用鼠标把程序文件往打开的CAD窗口里面拖放。这样命令只能在当前文件用,而且文件关闭以后就丢失。这种方法经常用来做程序测试。
方法2: 以CAD2012版本为例,运行CAD命令“AppLoad”,点击启动组下面的“内容”按钮,然后是“加载”按钮,选择AutoGuiZheng.LSP文件。这样CAD启动后就会加载程序,命令随时能用。


方法3:以清华斯维尔Arch2012为例,将AutoGuiZheng.LSP文件复制到Arch程序安装文件夹里的SYS文件夹中,并用记事本打开里面的Acaddoc.LSP文件,在这个文件的最后面增加两行内容:(prompt"\n加载程序,") (Load"AutoGuiZheng") 第一行内容为提示内容,第二行为加载程序命令。很多小工具都可以用这种方式加载。


三、设置程序我的做法是先在AutoGuiZheng.LSP文件里将命令全名设置为“AutoGZ”,然后在ACAD.PGP文件里面将简化命令设置为“G”。接着输入S进入参数设置界面。1、建议保持基点为0,0,0原点,容差建议设置为100(与CAD的图形单位一致,通常为毫米单位)。

2、为了提高程序的稳定性,尽量将所绘的图形放置在0,0坐标原点附近。如果图形偏离坐标原点很远,天正或斯维尔软件的许多命令都会出错或无法运行。3、为了更直观的看到程序运行的效果,建议将CAD的“栅格显示”打开,并设置栅格间距为100mm。(这个数值设置应与容差的数值一致,这样可以最直观的看到程序处理的结果)
四、运用示例1、处理线段线段的规整可以用来理解程序运作的原理,并能够了解容差的概念。下图中的浅色方格线为CAD的栅格线,间距为100x100mm,我用了4根不同颜色的垂直线为例,左图为规整前的,右图为规整后的。
可以看到1号线被向下移动到原点,2号3号线被移到了x坐标为100的位置重叠在一起,4号线被移到了x坐标为200的位置。这是容差设置为100的结果。线段都被限制在了100x100的方格线内!如果将容差设置为50,那么线段将被限制在50x50的方格线内!程序基本的功能就是将线段端点的坐标值按照设置“容差”的整数倍取整,最直观的结果就是线段按就近原则被移动到与方格线重合。下面的两张图是1号线坐标值的变化。左图为规整前的,右图为规整后的,以下的示例都按此方式布图。还可以看到,线段的长度被改变了。



下面再看看斜线处理的结果。对比可以看到程序并不会将斜线变水平或垂直,而是将线段端点移动到了方格子的交点。可以了解到,程序规整处理的始终是端点坐标,而不会规整角度值。



2、处理多段线多线的处理方式跟直线类似,是按照容差设置将转角点移动到方格线的交点。如下图: 可以看到原来歪歪扭扭的矩形处理后变得方方正正了。这里要提醒一下,合理的设置容差非常重要,不是越大越好,也不是越小越好。上一个例子已经说明了,程序并不一定会将线变得水平或垂直。
3、处理斯维尔(天正)的墙体斯维尔(天正)的墙体可以理解为一段段的直线(注意,不是多段线!多段线是连续的,而墙体不一定是连续的。)连续的墙体处理结果如下图,可以看到墙的基线被移动到与方格线重合。

4、处理斯维尔(天正)的门窗下面的例子可以看到,程序会将门窗的定位中点移到网格线的交点,但不会调整门窗的尺寸。
5、处理斯维尔(天正)的柱子下面的例子可以看到,程序会将柱的定位中点移到网格线的交点,但不会调整柱的尺寸。
6、处理圆、块、圆弧、三维多段线等CAD图形处理整体的对象,程序移动的是定位中点。圆就移动圆心,块就移动插入点。如果是有端点、转折点的对象,程序就移动端点和转折点,比如圆弧、三维多段线等。
程序的处理方式依赖当前坐标系统,因此将UCS旋转一定角度,也是可以规整的。如果需要改变基点位置,建议移动UCS,而不是直接利用程序选取基点。下面给出一个处理倾斜轴网的例子。

这是原始的图形。
旋转并移动UCS坐标系统。
运行规整命令的结果。轻松搞定。
因此处理整张建筑图的时候,先计算容差,打开栅格显示,将UCS原点移动到轴网左下角交点位置,然后再处理图形。 最后要提醒一下,对于斯维尔或天正的对象,程序并不能将柱子或门窗的尺寸规整,只是移动定位基点。例如对于斯维尔的异形柱,即使用了规整命令,也不会移动位置。发现异形柱尺寸需要规整的情况,建议先分解为闭合的多段线,然后再将多段线转化为异形柱就可以了。

尘缘一生 发表于 2021-12-6 21:25:12

此程序对于模具,机械比较有用,有的画图,椭圆孔等,画的有误差,这个可以一次调整。

zws760829 发表于 2022-11-1 14:05:07

感谢分享 确实好用

kkkli 发表于 2014-5-19 18:11:29

程序文件附在下面

特别说明我发现的一个问题,就是程序在处理斯维尔的墙体对象时,有一定的几率会将墙体变成“卫生间隔墙”或者“虚墙”,刚运行完程序的时候发现不了。等墙体被复制、移动、或者重整关系的时候,就会发现有一部分墙体丢失(变成虚墙),或者搜索房间的时候,会发原来闭合的墙体无法搜房间,有一部分墙体变成了卫生隔断。
这个可能不是程序本身的问题,而是斯维尔墙体对象的问题。天正是否有类似情况我没有测试过。

flytoday 发表于 2014-5-20 16:52:51

有进行升级不。。。。还是只是说明~

lzeaf 发表于 2016-1-18 15:11:40

太棒了!!!!!!!谢谢!!!!!!!!!!!!

usvik 发表于 2016-1-29 00:56:15

参数类型错误是怎么回事??
求大神解释

知行ooo李肖坪 发表于 2016-2-5 13:30:02

谢谢,学习中……66

木个木 发表于 2016-2-16 19:19:09

楼主,怎么无法下载??谢谢啦

我吃苹果皮 发表于 2016-9-12 11:07:53

参数类型错误: VLA 对象集合: #<VLA-OBJECT 00000000373a2ec8>

y296026118 发表于 2017-12-12 12:57:53

感谢分享 确实好用

依然小小鸟 发表于 2021-11-27 12:25:40

页: [1] 2
查看完整版本: highflybird自动规整命令用法说明