iCAx开思网

标题: 【教程】冰大珍珠项链-我的解法 [打印本页]

作者: djYang    时间: 2006-1-13 10:06
标题: 【教程】冰大珍珠项链-我的解法
冰大的这个题出了很久了。
原题在这:
https://www.icax.org/viewthread. ... page%3D1&page=1

不记得以前是不是出过教程了,看到138兄弟的做法,其中提到最后BMX作优化的问题,就将我的做法和大家交流一下。
138兄弟的贴:
https://www.icax.org/viewthread. ... page%3D5&page=1

其实前面的步骤和138兄弟的大同小异。
作者: djYang    时间: 2006-1-13 10:09
1、复合曲线,注意一下曲线起点的方向,并rename为path
作者: djYang    时间: 2006-1-13 10:12
2、在起点作一点。
作者: djYang    时间: 2006-1-13 10:17
3、草绘。其中线1用来做第一个小球的半径参照,线2用来做球1与球2的中心距参照。
作者: wzcd    时间: 2006-1-13 10:18
谢谢   版主继续啊
作者: djYang    时间: 2006-1-13 10:19
4、草绘2。用来做小球的旋转
作者: djYang    时间: 2006-1-13 10:20
5、草绘3。用来做球2的中心点
作者: djYang    时间: 2006-1-13 10:21
6、利用草绘2旋转,得到球1
作者: djYang    时间: 2006-1-13 10:24
7、利用草绘3的曲线与path得到pnt1。这个就是球2的中心了
作者: djYang    时间: 2006-1-13 10:26
8、为了后面好数小球,对小球打上序号标。
     这个在论坛上有过很多讨论(数字阵列法),这里就不具体说了。可以看part
作者: djYang    时间: 2006-1-13 10:28
9、组
作者: djYang    时间: 2006-1-13 10:35
10、阵列。选取下面的几个尺寸。
作者: wzcd    时间: 2006-1-13 10:38
版主什么时候贴part啊
作者: djYang    时间: 2006-1-13 10:38
11、加入如下关系。这里阵列后好重新再生一下模型。第一次生成的模型会不正确。

[ 本帖最后由 djYang 于 2006-1-13 10:40 编辑 ]
作者: xiamen_guo    时间: 2006-1-13 10:40
收到新斑竹的厚礼
用到关系式,可以将关系式写出来并做一下解释吗
作者: djYang    时间: 2006-1-13 10:42
重新再生模型后,得到这么个结果
作者: djYang    时间: 2006-1-13 10:46
12、再草绘一圆弧。注意参照的选取。这个圆弧主要做后面的优化用。
作者: djYang    时间: 2006-1-13 10:48
13、求交点。
作者: djYang    时间: 2006-1-13 10:51
14、为了后面优化的时候,所有特征能正确。在加入一下关系:
       d5,d6是第一个草绘2直线的尺寸,是为了保证后面d5改变后,d6能正确,
       另一个尺寸是 最后一个圆弧的半径。将它等于d5的2倍

      可以这样想像:如果球51的中心正好落在 pnt102上,则它肯定与球1相切。

[ 本帖最后由 djYang 于 2006-1-13 10:54 编辑 ]
作者: djYang    时间: 2006-1-13 10:59
15、为了达到这个目的,我们测量pnt102与球51的中心的距离。
        后面只要改变D5值,是这个距离最小,目的就可达到了。
作者: djYang    时间: 2006-1-13 11:02
16、下面就是优化了。先做一个灵敏度分析。
作者: djYang    时间: 2006-1-13 11:05
17、可以看到,第一个球的半径大概在6.95左右。
        下面作优化,大概设置如下
作者: djYang    时间: 2006-1-13 11:08
18、为了提高结果的精度,可以按下列设置一下。
作者: djYang    时间: 2006-1-13 11:09
19、好了,点compute,坐下来喝点茶,结果就慢慢出来了
作者: djYang    时间: 2006-1-13 11:10
20、confirm
作者: djYang    时间: 2006-1-13 11:11
结果大概如下,
作者: djYang    时间: 2006-1-13 11:13
part:
作者: asdhjkl    时间: 2006-1-13 11:15

好详细的教程

先收藏
再研究
作者: 13828748407    时间: 2006-1-13 11:20
多谢DjYang兄指点……
作者: djYang    时间: 2006-1-13 11:21
好了,就写到这了。
可能前面的步骤(那个组里的)还能简单一些。我试过了其他的方法,有时会造成一些意想不到的错误。

可能你按照我的方法作的时候,就算你做的步骤一模一样,也会发生错误,主要是在优化的时候。
我也会,主要表现在 软件退出、优化错误等。
但有的时候有可以一步成功。当时做的时候记得就成功了。昨天看到138兄弟的贴,我重做了一下,就发生了好几次错误。最后,关掉了杀毒软件,重启系统和软件,就成功了。

我想,这都是软件的问题。因为我做的方法一样啊。建议大家对这些问题不必太在意,因为我们最要是为了学习方法。
作者: 13828748407    时间: 2006-1-13 11:24
原帖由 djYang 于 2006-1-13 11:21 发表
好了,就写到这了。
可能前面的步骤(那个组里的)还能简单一些。我试过了其他的方法,有时会造成一些意想不到的错误。

可能你按照我的方法作的时候,就算你做的步骤一模一样,也会发生错误,主要是在优化的时 ...


偶试了无数次bmx,从没有成功过……

下了djYang兄的part,再研究研究。

多谢!
作者: nickha888    时间: 2006-1-13 11:25
ding
作者: 19760202    时间: 2006-1-13 11:29
跟上大大脚步
严重谢谢
作者: murphy521    时间: 2006-1-13 11:29
再次鼓掌!好。不过俺的优化还不能用 晕晕!!
作者: ____    时间: 2006-1-13 11:34
djyang教程做的真不错,基本过程的确是这样。不过,要指出的一点的是,优化失败并不是因为软件的问题。
其实是因为你的阵列关系问题,优化的过程是一个变量迭代的过程,因为曲线是封闭的,所以优化的时候就会发生最后一个点超过了终点(也是起点)比如这时的比例值是0.1,而倒数第二点却还没超过,比如0.95,这样增量就会变成了负值。(-0.85),这就是失败的原因。。。所以阵列关系中要想法避开这点
作者: djYang    时间: 2006-1-13 11:38
原帖由 IceFai 于 2006-1-13 11:34 发表
djyang教程做的真不错,基本过程的确是这样。不过,要指出的一点的是,优化失败并不是因为软件的问题。
其实是因为你的阵列关系问题,优化的过程是一个变量迭代的过程,因为曲线是封闭的,所以优化的时候就会发生 ...


哈哈,冰大出来啦!
我也想过可能是曲线封闭的问题。在优化的时候,不知怎样避开这样的问题。
作者: smilefriend    时间: 2006-1-13 11:40
冰大点评总让人有茅塞顿开之感,谢谢版大,谢谢冰大
作者: ____    时间: 2006-1-13 11:42
既然讨论开了,大家不妨想想这个扩充题,
在任意多边形(其实是任意形状)外接(接触但不相交)任意数目的两两相切的等直径小圆
作者: djYang    时间: 2006-1-13 11:46
愿听冰大继续讲课下去...........简直就是享受
作者: ____    时间: 2006-1-13 12:08
事实上这个优化也非常好的表达了可行性分析和最优化分析的运行不同点,大家不妨从“微观”上的迭代方法来思考一下两者的不同,或许就能得到失败的另一个原因
作者: murphy521    时间: 2006-1-13 12:45
怎一个“牛”字了得!?
作者: christ000    时间: 2006-1-13 13:01
原帖由 IceFai 于 2006-1-13 12:08 发表
事实上这个优化也非常好的表达了可行性分析和最优化分析的运行不同点,大家不妨从“微观”上的迭代方法来思考一下两者的不同,或许就能得到失败的另一个原因


开始讲座了,搬好板凳来听讲,呵呵
作者: liuzhanping9605    时间: 2006-1-13 13:06
我也来学几招

[ 本帖最后由 liuzhanping9605 于 2006-1-13 13:07 编辑 ]
作者: djYang    时间: 2006-1-13 13:44
原帖由 christ000 于 2006-1-13 13:01 发表


开始讲座了,搬好板凳来听讲,呵呵



中午回来!

请冰大继续深入地讲解。

也希望听到christ000兄的思路。
作者: ____    时间: 2006-1-13 13:46
原帖由 djYang 于 2006-1-13 13:44 发表



中午回来!

请冰大继续深入地讲解。

也希望听到christ000兄的思路。



哈哈,先作作我给的那个题阿
作者: djYang    时间: 2006-1-13 13:49
好的。
下去看一下,做完了再问!
作者: zjhzsgq    时间: 2006-1-13 13:59
支持版大!愿听冰大的讲解!快来拿板凳啊,上课了!
作者: songren    时间: 2006-1-13 14:17
谢谢楼主!
作者: hlh_0427    时间: 2006-1-14 21:44
虛心學習
作者: wogozo13    时间: 2006-1-15 08:01
狂顶
作者: ggm69787    时间: 2006-1-15 09:17
我要是能有你的一百半该有多好呀!
作者: 偶遇    时间: 2006-1-15 10:10
跟在版大后面学习。
作者: yexoyang    时间: 2006-1-15 10:29
跟着老大们的步子,有点吃力哟。
作者: christ000    时间: 2006-1-16 16:29
这个复杂了,应该还有可以简化的地方,贴上来再说。
最后的结果没有用软件优化(俺的机器就是算不出个正确的值,是俺手动的,呵呵,)

个人认为有两点
1.用OFFSET+倒圆处理拐点
2.用曲线缠绕把封闭曲线上的问题转化成有端点的空间曲线处理(这样就可以多留点余量来防止BMX出错,另外还有一个想法,就是阵列时点的位置不用memb_i而用memb_v驱动,好象也能处理BMX出错,以后再试啦)

冰大先看看思路把:)

[ 本帖最后由 christ000 于 2006-1-16 16:31 编辑 ]
作者: ____    时间: 2006-1-16 16:44
原帖由 christ000 于 2006-1-16 16:29 发表
这个复杂了,应该还有可以简化的地方,贴上来再说。
最后的结果没有用软件优化(俺的机器就是算不出个正确的值,是俺手动的,呵呵,)

个人认为有两点
1.用OFFSET+倒圆处理拐点
2.用曲线缠绕把封闭曲线上的 ...


冠军果然不愧是冠军阿!

这个题的关键是

1.小圆中心轨迹线,一般的人可能会想到曲线offset导圆角草绘的方法实现,但这样就会导致在多边形的时候草绘截面复杂。
如果使用实体拉伸然后向外offset,再使用目点链选取倒圆角就可以避免这种情况,而且当截面变更的时候不至于导致曲线失败。

2.阵列关系和优化。有几个小地方要注意,使用memb_i和memb_v会对计算造成不同的影响。优化的时候因为计算的复杂度,在没有得到结果时可以在已有的基础上进行多次优化(不断缩小范围),一般两次优化便可以得到正确结果
作者: dss1280    时间: 2006-1-16 16:59
高手啊!!!!!!
作者: christ000    时间: 2006-1-16 17:11
原帖由 IceFai 于 2006-1-16 16:44 发表


冠军果然不愧是冠军阿!

这个题的关键是

1.小圆中心轨迹线,一般的人可能会想到曲线offset导圆角草绘的方法实现,但这样就会导致在多边形的时候草绘截面复杂。
如果使用实体拉伸然后向外offset,再使用 ...



我做的时候里倒圆角没有使用目的链,因为有凹角情况存在时,那里是不应该被倒掉的,否则当圆心落在这段圆角上时,会出现错误的情况(见图)。

另外这个递增递减也很难搞啊:)
作者: acumen    时间: 2006-1-16 17:17
向高手学习!!!
作者: murphy521    时间: 2006-1-16 17:17
高,不愧是“”“”“
作者: ____    时间: 2006-1-16 17:19
原帖由 christ000 于 2006-1-16 17:11 发表



我做的时候里倒圆角没有使用目的链,因为有凹角情况存在时,那里是不应该被倒掉的,否则当圆心落在这段圆角上时,会出现错误的情况(见图)。

另外这个递增递减也很难搞啊:)



凹角的确是这样。我使用的是凸多边形。

要实现完全参数化(形状,小圆数目随意变化),本题难度不小(我到目前为止还没想出),我能解决的到目前来说就是对于给定的外形和给定数目的小圆的条件下通过优化得到结果。
而完全参数化的解决方案到现在还困扰着我,所以最终没有把这个作为比赛题目,呵呵。


注意,我提供的模型如果你使用一般的优化方法可能得不到好结果,因为我给的是结果,所以你先要把offset值改掉,比如5.0
正确的步骤应该是:

1.敏感度分析,缺定范围在5.0到6.0之间、
2.第一次最小距离最优化分析,得到值大概在5.4到5.6之间。
3.第二次最小距离最优化分析,变量范围设为5.4到5.5,这次应该会得到理想的结果。如果不行,则再缩小范围优化
作者: ____    时间: 2006-1-16 17:37
最优化分析和可行性分析的运行过程最大的区别:

最优化分析实际是找的局部优化点,举个例子:下面做边是变量,右边是值。
假设变量范围为5.0到6.0,那么系统将会大致按下面的步骤进行计算
划分为10个区间,得到值,如下:

5.0,5.1,5.2,5.3,。。。。。6.0,然后计算各变量的值
5.0=>2,
5.1=>1.8
,5.2=>1.0,
5.3=>0.4,
5.4=>0.2,
5.5=>0.3
当系统计算到5.5的时候它就会发现最小值在5.3到5.5之间,这样第一次迭代停止,进行第二次迭代
5.32=>0.38
5.34=>0.35
.
5.40=>0.15
5.42=>0.1
5.44=>0.15
这样系统又会在第二次迭代的时候发现最小值在5.40到5.44之间。第二次迭代结束。
同样的道理,系统一直迭代计算知道目标值比规定的最小范围还小便停止。但如果在迭代的子区间发现域点值比父域点的最大值还要大的话就会报错。
这也是本题中大家的关系不注意的话可能会遇到的情况
大家不妨用同样的思考方法想想可行性分析的运行过程。或许你会明白更多。

偷偷的告诉你,这其实也是在proe中实现循环的一个另类方法。。。一般人我还不告诉他
作者: JohnLian    时间: 2006-1-16 18:32
这不是跟牛顿那个求解高阶方程的方法一样
作者: ywh14    时间: 2006-1-16 20:09
想不明白,也看不明白。。我晕了。。。。
作者: 烟波浪子    时间: 2006-1-16 20:12
这样的题目是有些难度.赞
作者: snowing    时间: 2006-1-17 09:14
原帖由 IceFai 于 2006-1-16 17:19 发表



凹角的确是这样。我使用的是凸多边形。

要实现完全参数化(形状,小圆数目随意变化),本题难度不小(我到目前为止还没想出),我能解决的到目前来说就是对于给定的外形和给定数目的小圆的条件下通过优化 ...



冰大,我来个全参的,形状和数目都可以任意变,零件不会出错,不过优化分析要手动,距离分析是面组到点的距离。
作者: christ000    时间: 2006-1-17 09:21
原帖由 snowing 于 2006-1-17 09:14 发表



冰大,我来个全参的,形状和数目都可以任意变,零件不会出错,不过优化分析要手动,距离分析是面组到点的距离。


我拜~~~~~~
作者: 19760202    时间: 2006-1-17 10:13
大大们崇拜哦!!!
作者: ____    时间: 2006-1-17 10:23
原帖由 snowing 于 2006-1-17 09:14 发表



冰大,我来个全参的,形状和数目都可以任意变,零件不会出错,不过优化分析要手动,距离分析是面组到点的距离。


不错!不过还剩最后也是最关键的一步了,如何去掉手工分析甚至不要分析达到目的才能实现真正的自动化和参数化。
作者: byd    时间: 2006-1-17 12:04
高手就是高手啊,我只有看的份了
作者: piaoping    时间: 2006-1-17 17:12
讲的不错呀,我顶
作者: blue_boy    时间: 2006-11-8 11:10
Thank you so much! you are too great!
作者: zhp023    时间: 2006-11-9 15:36
顶。好帖不能沉
作者: 兵中之魂    时间: 2007-1-15 11:25
真牛啊!!佩服!!!
作者: ghoust258    时间: 2007-1-15 11:47
太深了!
作者: wsf_3141    时间: 2007-3-24 20:49
老大们:
        帮忙看看什么问题!谢谢!
作者: wsf_3141    时间: 2007-3-24 20:56
贴上附件
作者: jxll    时间: 2007-3-24 23:42
初入门谁能教我分析命令具体用法请发jxdfc@tom.com
作者: 来了    时间: 2007-4-15 15:48
hao hao
作者: panguangxin2006    时间: 2007-4-16 17:08
一个字,"晕"
作者: robinson_by    时间: 2007-7-13 16:19
学习
作者: xiongbibo    时间: 2008-5-16 18:26
看了半天看不明白,很少用优化,只用它调整过重心
作者: 雪游    时间: 2010-6-8 11:46
神啊················




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