![]() |
[原创]ucs下如何创建物体的包围框
[原创]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 可能要改写反应器了 人挡杀人,佛挡杀佛 |
所有的时间均为北京时间。 现在的时间是 04:37 AM. |