iCAx开思工具箱

标题: 请教UG编程:对任一物体,做一长方体恰好包住它,如何实现? [打印本页]

作者: jimstill    时间: 2004-10-18 18:57
标题: 请教UG编程:对任一物体,做一长方体恰好包住它,如何实现?
如题所示,这在模具设计、数控加工中是一个很普通的功能,但在UG编程中
如何实现呢?好像没有这方面的命令,有谁做过吗?能否提供一点思路。
作者: 深夜摔键盘    时间: 2004-10-18 19:15
能计算出该物体的X,Y,Z的最大值和最小值吗?
作者: huashanyjj    时间: 2004-10-18 22:22
UF_MODL_ask_bounding_box函数可以实现包容盒的功能
/******************************************************************************
Returns the bounding box of wireframe and solid type objects.
Wireframe objects include lines, arcs, splines, and conics.  Solid type
objects include bodies, faces, and edges.  Bounding box values are
returned in absolute coordinate values according to where the object
exists in the part file.
  
If you call this function with an occurrence, the bounding box
of the underlying geometry is transformed into assembly space. This
may cause the bounding box that is returned to be larger than
expected. This happens in cases when the axes of the component part
are transformed such that they don't align with the axes of the
assembly coordinate system.
  
Environment: Internal  and  External
See Also:  
History:
  ******************************************************************************/
extern UFUNEXPORT int UF_MODL_ask_bounding_box(
tag_t  object ,/* <I>
               Object identifier of object to ask bounding box.
               */
double bounding_box[6]  /* <O>
                        Bounding box of object.
                        [0] - minimum x value
                        [1] - minimum y value
                        [2] - minimum z value
                        [3] - maximum x value
                        [4] - maximum y value
                        [5] - maximum z value
                        */
);
  
但是这个函数得到包容盒在某些情况下比实际的包容盒要大一些,这时这个函数就不太准确了,而且UG也没有提供其他更好的函数,也许要自己运用几何原理自己解决了。
作者: jimstill    时间: 2004-10-19 11:27
谢谢两位!
我用 UF_MODL_ask_bounding_box 查询后,确实发现包容盒的值变大了。变化最大有十几毫米。
还在寻找更好的方法中。
作者: mzgcoco    时间: 2004-10-21 16:45
用UF_BOUND_create_boundary 可以嘛?
作者: lijz    时间: 2004-10-22 20:09
用UF_MODL_ask_bounding_box_aligned(...)
作者: trical    时间: 2009-3-20 21:31
1111111111111
作者: tealy    时间: 2009-3-21 01:02
UF_MODL_ask_bounding_box 尺寸不准但速度较快
UF_MODL_ask_bounding_box_exact 精确尺寸,速度较慢,帮助文件是怎么说的,但是据我测试,这个函数也慢不到哪去,都用这个做就可以了
作者: ffhi    时间: 2009-4-2 14:23
我就是用UF_MODL_ask_bounding_box_exact()来做的。
作者: look_tfq    时间: 2009-4-2 22:53
grip里面可以先查询实体的最大边界,然后创建个方形体就可以了,很精确,实现起来也简单
作者: look_tfq    时间: 2009-4-2 22:56
temp=solbox/obj(i),iferr,err:
作者: look_tfq    时间: 2009-4-2 22:57
solblk/origin,orig(1..3),size,incrmt(1..3),iferr,err:
作者: yuanguoan    时间: 2009-7-26 18:30
8#  
上楼的兄弟,请问UF_MODL_ask_bounding_box_exadt()有哪些参数,可示例一个看一下吗?
作者: huangjun2000    时间: 2009-8-11 16:40
用UF_BOUND_create_boundary
作者: 风一样的我    时间: 2010-6-28 17:05
look_tfq 发表于 2009-4-2 22:53
grip里面可以先查询实体的最大边界,然后创建个方形体就可以了,很精确,实现起来也简单


用GRIP如果想精确的话,一定要二次计算。
作者: mmgoal    时间: 2010-7-6 15:44
这个程序我有,能十分有效的算出任何坐标系下任何形状的最小包容体,不像大家回帖说的那么简单,没有一个直接函数可以实现,如果你想要的话,我可以考虑卖给你一套!QQ 332521731
作者: 风一样的我    时间: 2010-7-9 10:43
mmgoal 发表于 2010-7-6 15:44
这个程序我有,能十分有效的算出任何坐标系下任何形状的最小包容体,不像大家回帖说的那么简单,没有一个直接函数可以实现,如果你想要的话,我可以考虑卖给你一套!QQ 332521731


楼上的主人,请问你是用API实现的还是GRIP来实现的?
作者: mmgoal    时间: 2010-9-13 19:53
肯定是API了,功能比较强大




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3