iCAx开思工具箱

标题: UG求最大外形 [打印本页]

作者: cjtking    时间: 2005-11-25 13:59
标题: UG求最大外形
用API求边界盒,你们一般是用什么方法?


作者: pzytony    时间: 2005-11-25 14:05
摇摇头,看不懂
作者: supergirl    时间: 2005-11-25 14:31
最大外形,好像没有这个说法,楼主莫非指的是最小包容盒?
作者: cjtking    时间: 2005-11-25 14:32
pzytony版主,能否向我提供一个求边界盒的C源码?
作者: cjtking    时间: 2005-11-25 14:33
原帖由  于 2005-11-25 14:31 发表
最大外形,好像没有这个说法,楼主莫非指的是最小包容盒?

是的,我指的就是最小包容盒!
作者: supergirl    时间: 2005-11-25 14:37
懒虫,自己去UGOPEN找函数去,又不是很难找。
忍不住发几句牢骚,做开发,要有耐心。很多函数明明写得很明白,但是很多人不去仔细看。有些函数是比较难找,但是大部分函数名一看就知道是做什么的,还要到论坛上来问。这样做什么开发啊。
作者: cjtking    时间: 2005-11-25 15:03
原帖由  于 2005-11-25 14:37 发表
懒虫,自己去UGOPEN找函数去,又不是很难找。
忍不住发几句牢骚,做开发,要有耐心。很多函数明明写得很明白,但是很多人不去仔细看。有些函数是比较难找,但是大部分函数名一看就知道是做什么的,还要到论坛上来 ...

我用的方法是获取一个实体上的每个面,再获取这个面的最大外形, 再用比较找出所有面的最大值。可有时出来的外形和实际的不符。不知为何。
作者: supergirl    时间: 2005-11-25 17:14
有函数可以求一个实体的bouding box的,不用那么麻烦。而且求bouding box的时候要注意坐标系,它求出来的值是ABS下的。
作者: along533    时间: 2005-11-26 08:37
楼主能否再详细一点,具体到那个函数。不甚感激
作者: cjtking    时间: 2005-11-26 10:16
原帖由  于 2005-11-25 17:14 发表
有函数可以求一个实体的bouding box的,不用那么麻烦。而且求bouding box的时候要注意坐标系,它求出来的值是ABS下的。

能否告知是哪个函数求实体的bouding box,非常谢谢
作者: kingwang    时间: 2005-11-26 16:25
UF_MODL_ask_bounding_box
作者: along533    时间: 2005-11-28 09:54
原帖由  于 2005-11-26 04:25 PM 发表
UF_MODL_ask_bounding_box



楼上的兄弟,可不可以帮我这个图档的的边界盒给测量一下,我用了你的UF_MODL_ask_bounding_box,测出的数据不准。
作者: cjtking    时间: 2005-11-29 08:14
知道的兄弟,能否站出来发表一下,好的东西大家一起分享嘛。
作者: supergirl    时间: 2005-11-29 09:58
你怎么知道结果不对啊。UG的boundingbox函数是肯定没有问题的,注意你的坐标系,那个函数求出来的结果是在绝对坐标系下的。
作者: along533    时间: 2005-11-29 10:29
原帖由  于 2005-11-29 09:58 AM 发表
你怎么知道结果不对啊。UG的boundingbox函数是肯定没有问题的,注意你的坐标系,那个函数求出来的结果是在绝对坐标系下的。



我把我做的录相放上来,给你看一下你就知道了。
作者: along533    时间: 2005-11-29 10:36
第三个,你看完就知道了,这个问题真的很头疼一个, 大部分都能准确的测量出来,只有这极个别测量出来的尺是错的.但我用他们用GRIP做的二次开发工具,能正确的测量出尺寸来。

望高手帮一下忙,小弟不甚感谢


作者: supergirl    时间: 2005-11-29 13:16
我觉得还是坐标的问题,UF_MODL_ask_bounding_box求的是ABS下的bounding box,我看了你的录像,是在装配下求的bouding box,你要把你求出来的bounding box从ABS转换到装配的WCS坐标下。
如果你嫌麻烦,你可以用函数UF_MODL_ask_bounding_box_aligned,就可以求任意坐标系下的bounding box了。
作者: along533    时间: 2005-11-29 15:49
要么我把我的代码发给你看一下,以前我用比较FACE的最大最小值, 也出现了这种问题。我用VC6, MFC APPWizard(dll)工程做的


作者: supergirl    时间: 2005-11-29 17:33
我看了你的程序和录像,问题出在你混淆了两个东西。GRIP的程序,如果我没有看错,求的是part里面的一个solid的bounding box,而你的程序求的是整个part的bounding box,两个东西不一样,怎么可能求出来的bounding box是一样的呢。
要想求出来的东西一样,你应该从那个part中找到那个solid,然后求solid的bounding box。

我对GRIP不太了解,但是我想GRIP和UGOPEN底层肯定用的是同样的函数求bounding box。
作者: airen    时间: 2005-11-29 17:45
grip  没有求最大外形的 bounding box。  

采用的是最小距离方式计算的。(精确计算法)

而系统自带的bounding box的算法是近似法。 很多时候是会错误的。
作者: along533    时间: 2005-11-29 17:45
对不起哦,程序发错了,刚才那个是我后来改的,现在我编辑了一下贴子,你重新下载一下,就知道了,我是用UF_OBJ_cycle_objs_in_part在他的组件中搜索一个实体,然后获取这个实体的大小的, 我以前也调试过了,他是由于那个电极有一个面有问题,才出现我现在遇到的情况的。这位仁兄,你有没有QQ号,要么我加你为好友,好好帮小弟一下。不甚感谢
作者: supergirl    时间: 2005-11-29 18:05
你这次的程序,就更加错误了。

part1=UF_ASSEM_ask_prototype_of_occ(objects[cannot]);
UF_PART_ask_part_name(part1, sPartPath);
UF_MODL_ask_bounding_box(part1, bounding_box);
首先在装配中,不要去问prototype的bouding box,UGOPEN的帮助说得很清楚。
其次,你问的还是part得bounding box 啊。
作者: along533    时间: 2005-12-1 14:23
楼上的兄弟,可否给一份C语言版的源码给小弟研究一下,不甚感谢。
作者: jchen2004    时间: 2005-12-1 17:35
标题: 不是的呀
友情提醒: 对表面是曲面的model,那个FUNCTION 是不准确的。用者要注意了。
作者: along533    时间: 2005-12-2 18:09
那么请问一下楼主,怎么才能最准确的获取MODEL的最大外形呢.希望楼上的兄弟详细一点,为我们这些新手提供帮助
作者: shenghui_xf    时间: 2005-12-5 22:47
UG的那个求边界盒函数是不准确的,但是脑袋转个弯,用其它方法可以做出来:
1.做一个很大很大的BLOCK;
2.求此BLOCK的六面到此面体或实体的最小距离,有一个函数自己找;
3.用block的长宽高分别减去这个最小距离,就可以得出实体的最大外形;
作者: cjtking    时间: 2005-12-6 08:32
谢谢各位指点,在此谢过。
作者: yangzhongshan    时间: 2009-4-13 19:02
收益匪浅,谢谢各位牛人
作者: boxi2279    时间: 2009-4-13 21:56
你用的函数有问题不应该是这个函数可以联系ugopenapi@163.com
作者: boxi2279    时间: 2009-4-19 07:22
在MOLD帮助文件
作者: htc850905    时间: 2009-4-19 11:35
在MOLD帮助文件




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