[原创]ucs下如何创建物体的包围框
www.dimcax.com
[原创]ucs下如何创建物体的包围框
ucs下如何创建物体的包围框
我们知道如果要创建物体的包围框采用函数
vla-getboundingbox函数,但这个函数创建的物体包围框永远是wcs的,也就是说无论你当前处于什么ucs状态,它得到的包围框总是跟wcs的x轴线,y轴线,z轴线平行的。
那么如何在ucs下创建物体的包围框呢?
当然不能仅仅是直接用getboundingbox得到的点变换到ucs就可以了,还需要一个步骤。
这个步骤是要首先把物体通过transformby变换到wcs状态,然后得到这个时候的包围框,再把物体又变换回到ucs中,
同时还要把得到的这个包围框也变换到ucs中。好了,有什么不明白的请看下面的程序。另外有什么更好的办法不妨到这里讨论。
下面我提供了一个程序可以创建物体的包围框,(仅仅平面的,如果是立体的,可以稍加修改)。
使用方法,输入命令: test,然后选择物体,就得到了物体的ucs底下的包围框。
通过工具菜单->加载应用程序 可加载该程序,然后可直接在命令行输入相关命令运行。如需要每次启动时均加载该程序,则可以将该文件放在启动组中。
文件预览:
没有加出错处理,譬如某些东西可能处于锁定的图层或者不能被修改。
/blog/user1/90/index.asp
这个问题有晓东上讨论过了,实现方法差不多,但如果这个实体有关联反应器的时候,transformby会有问题
d
晓东论坛上的方法我看见过了,不过我没测试过。因为我一时找不到里面的库函数。
我虽然思路大同小异,但是感觉到那个方法可能只能适合二维情况,不适合三维的ucs,(就是ucs的法线矢量不为(0,0,1)的情况).另外用了command,在某些情况下可能不利于效率的提高。
你说的反应器关联的问题,不妨请举个具体例子,我测试看看。
/blog/user1/90/index.asp
看看附件中的图
请使用winrar或winzip软件打开zip压缩文件。
d
你的测试文件已看,我想,如果是带了反应器的话,可能相关函数也要做一定的调整。我拿自己的反应器例子再测试看看。
/blog/user1/90/index.asp
可能要改写反应器了
人挡杀人,佛挡杀佛