这么好一道题,没人来做,真是可惜了。可能是因为我没说明用哪个模块来做。大家一头雾水吧。
下面我来讲一下如何做。
我们用的是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学得更好 |