iCAx开思网

标题: 我来出个题::求一个不规则封闭体的最大内接圆 [打印本页]

作者: hino    时间: 2007-5-14 21:51
标题: 我来出个题::求一个不规则封闭体的最大内接圆
如图,有一个不规则的封闭体。当然,不是不规则得一塌糊涂的那样。

现在请试用CATIA作出一个最大内接圆。

版主看看这题能不能拿来让大家练练

==
2007.5.16追记:

由于我是随手画的。为了比较答案,请大家不要修改那两个wireframe。

此题要求第一个面及第二个面的offset分别为:

1) 200mm / 200mm
2) 330mm / 200mm
3) 110mm / 220mm

请大家分别算出这三种情况时的半径值。

[ 本帖最后由 hino 于 2007-5-16 21:26 编辑 ]
作者: hino    时间: 2007-5-14 22:38
标题: 文件
文件
作者: hino    时间: 2007-5-14 22:57
唉,论坛太破了。上传一个文件都好费好大的劲。。。
作者: hino    时间: 2007-5-15 21:30
有谁做过了吗?版主们对这个有兴趣吗?
作者: hangzhou4311    时间: 2007-5-15 22:45
有人会做吗
作者: biiby    时间: 2007-5-15 22:54
原帖由 hino 于 2007-5-15 21:30 发表
有谁做过了吗?版主们对这个有兴趣吗?

刚看到,,,不太理解用处,你做出来了吗、?
作者: hino    时间: 2007-5-15 23:34
这题是我在工作之时,突然想到的,所以答案是有的。
谈不上用处,但可以改变大家对CATIA的看法。呵呵。
本题只是一种思路。任何不怪异的任意封闭体都可以做。
作者: shanshui281    时间: 2007-5-16 09:38
打不开,估计是R17
作者: A380    时间: 2007-5-16 14:25
200
作者: hino    时间: 2007-5-16 20:33
>>>shanshui281
sorry,是R17的文件。

不过图形是任意的。在XY面各自offset 200/-200建两个面。在这两个面上,各随便拉一个矩形出来。然后用loft进行封闭。求此封闭体的最大内接圆的半径。

你可以自己画一个。

>>>A380
200是正确的
不过我刚才修改了题目。要求把offset1和offset2设成三组数据,要求求出不同情况下的半径值。

[ 本帖最后由 hino 于 2007-5-16 21:34 编辑 ]
作者: A380    时间: 2007-5-16 20:46
我说的是半径啊,你的也是吧?

太大了,上下两面都通不过。
作者: hino    时间: 2007-5-16 23:45
其实我的意思,就是找一个通用的方法。不因参数变而变。那个200是因为原来的正好offset1/offset2都是200,所以我加设了两组别的。
这个题很有意思的。我正想,如何把它改成最大立方体来做。
作者: hino    时间: 2007-5-17 22:23
下周一公布答案。有兴趣的可以试试。
作者: hino    时间: 2007-5-21 12:42
这么好一道题,没人来做,真是可惜了。可能是因为我没说明用哪个模块来做。大家一头雾水吧。

下面我来讲一下如何做。
我们用的是PEO(Product Engineering Optimizer )模块里的东西。

如下图,我的原题只出到生成了一个封闭体Join.1后,建了一个点Point.1。

我们使用参数化的方法,让PEO模块自动测出最大的内接圆。
需要建立以下5个长度参数,x,y,z,d1,d2。建立参数时,选length类型。

然后建立关系式,先将Poinit.1的三个坐标值一一与上面建立的参数x,y,z对应起来。
然后,做一个球sphere.1。半径取默认的20mm好了。

现在建立d1与d2的关系式:
d1=distance(point.1,join.1)           //点与封闭体的距离
d2=distance(sphere.1,join.1)         //圆与封闭体的距离

然后修改上面sphere.1的半径值,改用参数式,令其等于d1。

很明显,此题的要求,是d1取得最大化(球的半径最大化),而d2接近0。

关系式已经建好。现在进PEO模块。建立一个最优化。

类型为Maximum Optimization,对象是d1,目标为使其最大化。
自由参数为x,y,z。不必设变化范围。不过设一下step length为0.01mm,意为,这三个参数变化时,每隔0.01mm变化。
其它的见下图。

算法不用改,用默认的好了。

然后,到第二页的约束页constaints。
加一个约束:
什么约束?因为CATIA中两个东西相交时,距离为0mm。所以我们为了保证圆在封闭体内部,要保证d2>0mm。不过我设的是 d2>0.001mm。这个精度已经足够。

好,OK,我们开始。CATIA算了一会儿,就逼近目标值。得到 r=d1=243.768mm

这是330/200时的结果,其它情况,更改一下offset1/offset2即可。

由上面的算法可见,这个封诸体不一定是六面体,任何不怎么奇怪的封闭体都可以用这种方法算出。

我出这道题是给大家一个启示:CATIA不光是用来建模/装配/制图的。希望大家把CATIA学得更好
作者: hino    时间: 2007-5-21 12:47
附一下最优化的设置界面。
作者: hino    时间: 2007-5-21 12:50
最后附一下我的CATIA文件。




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3