iCAx开思网

标题: 变变变一帖我的做法 [打印本页]

作者: w_hs    时间: 2013-1-26 15:26
标题: 变变变一帖我的做法
草图中有两个封闭轮廓,其中多边形轮廓的边数由草图中的阵列数决定,当多边形边数为9时圆形轮廓包围多边形轮廓,其余情况下多边形轮廓包围圆形轮廓。
为要正确成型拉伸时所用轮廓选用两个局部范围,见下图
[attach]1158603[/attach]
重建模型时的自动变化由方程式实现,其方程式设置及解释如下:
"边数@草图1"=iif("边数@草图1">8,3," 边数@草图1"+1)
         ‘上式使多边形边数在39之间循环变化,每次建模边数加1,当边数为9时重建模多边形回复到三角形。
"多边形外接圆半径@草图1"=iif("边数@草图1">8,40,100)
         ‘ 上式使多边形边数为9时多边形外接圆半径为40,其它情况下多边形外接圆半径为100
"多边形半圆心角@草图1" = 180/"边数@草图1"
         ‘上式计算多边形一边对应的半圆心角
"圆形轮廓半径@草图1" = 140-"多边形外接圆半径@草图1"
         ‘上式计算圆形轮廓半径,使多边形边数为9时其值为100,其它情况下其值为40

作者: zhg.x    时间: 2013-1-26 15:30
不老叔终于出教程了,顶!
作者: gt.adan    时间: 2013-1-26 15:41
本帖最后由 gt.adan 于 2013-1-26 21:21 编辑

不老叔假日還在寫教程,真是辛苦了~{:soso_e183:}
作者: zhg.x    时间: 2013-1-26 16:01
虽然自己没能独立思考出来,但不老叔休息日抽空做的教程一定要用实际行动支持,
不会做gif,贴个图:
[attach]1158604[/attach]
作者: zhangleizeng    时间: 2013-1-26 16:06
終於等到教程
作者: wyj123    时间: 2013-1-26 16:49
顶不老叔
作者: gt.adan    时间: 2013-1-26 21:36
本帖最后由 gt.adan 于 2013-1-26 21:38 编辑

看完了不老叔的教程,阿丹覺得很高興自己的方程和不老叔的教程是一樣的。
然而,阿丹在原題中有提到,這種「n=n+1」的語法,在2012中似乎是有問題的!
wutong490前輩指出,雖然亮紅,但還是可以執行。
阿丹再看了一次不老叔的原題,有做出來的幾位前輩朋友,似乎最高版本就是foxlicc前輩的2011版。
(不知wutong前輩最後做出循環變用的版次是?)
而不同版本的sw在判讀相同方程會有不一樣的結果,是從2012開始的。
不知這是改善?還是40樓cstar009前輩所說的bug?
目前手邊沒有sw可以試,只好等回家了…
作者: zhg.x    时间: 2013-1-28 08:39
刚刚学会录制屏幕,再做一次:
[attach]1158682[/attach]



作者: 大叶子    时间: 2013-1-28 08:42
这才是真像……。谢不老叔。
作者: wutong490    时间: 2013-1-28 10:19
本帖最后由 wutong490 于 2013-1-28 10:22 编辑

我在2012 SP4.0中没有办法输入 "边数@草图1"=iif("边数@草图1">8,3," 边数@草图1"+1)
所以我用的是其他的办法   晚上补上我做法
作者: wutong490    时间: 2013-1-28 11:41
[attach]1158695[/attach]
太详细的我就不写了
1. 先做曲线, -(3+t*4.2/pi)*cos(t), -(3+t*4.2/pi)*cos(t) ,0~2*pi、  每45度+1(实际比1大,用int()取整,保证角度的准确)。
2.“驱动角度@草图1”=“驱动角度@草图1”+45
其余的就不多说了。
(一开始我也没用方程曲线,画的点用样条线连接的,效果一样)


作者: gt.adan    时间: 2013-1-28 12:30
wutong490 发表于 2013-1-28 11:41
太详细的我就不写了
1. 先做曲线, -(3+t*4.2/pi)*cos(t), -(3+t*4.2/pi)*cos(t) ,0~2*pi、  每45度+1 ...

謝謝wutong前輩的教程,一樣精彩啊!{:soso_e179:}

作者: wutong490    时间: 2013-1-28 17:26
本帖最后由 wutong490 于 2013-1-28 17:34 编辑

有新的发现
在2012中  线性尺寸不允许在方程中循环使用(我暂时发现的,不对的话请指证),如"边数@草图1"=iif("边数@草图1">8,3," 边数@草图1"+1)
不直接引用自己,而是通过等边的属性引用一个和自己相等的数值。{:soso_e182:}
[attach]1158717[/attach]
[attach]1158718[/attach]


作者: gt.adan    时间: 2013-1-28 17:33
wutong490 发表于 2013-1-28 17:26
有新的发现
在2012中  线性尺寸不允许在方程中循环使用(我暂时发现的,不对的话请指证),如"边数@草图1" ...

沒錯!俺使用2012建模時也有發現這個喲~~
作者: gt.adan    时间: 2013-1-29 01:57
n=n+1 這個問題以俺的笨腦子是想不出來解決之道了…{:soso_e109:}
然而不老叔提供的方程和做法還是可以輸入的!
唯一要注意的是在方程式的對話框裡輸入,而不能在2012新增的功能:尺寸對話框輸入。
雖然會亮紅,但仍可順利建模,實現變變變~

[attach]1158720[/attach]
作者: wutong490    时间: 2013-1-29 08:25
确实可以输入 iif("边数@草图1">8,3,"边数@草图1"+1)  
我只是复制不老的东西了,结果里面暗藏玄机。有一个空格,结果SW不认识了……
还有这个iif是编程的语句,可是我在帮助里面搜索不到
作者: gt.adan    时间: 2013-1-29 09:49
wutong490 发表于 2013-1-29 08:25
确实可以输入 iif("边数@草图1">8,3,"边数@草图1"+1)  
我只是复制不老的东西了,结果里面暗藏玄机。有一个 ...

呵呵,wutong兄辛苦了~ 軟件的開發是這樣的了,不知這算不算臭蟲?要不要回報?{:soso_e113:}



作者: zhg.x    时间: 2013-1-29 10:01
wutong490 发表于 2013-1-29 08:25
确实可以输入 iif("边数@草图1">8,3,"边数@草图1"+1)  
我只是复制不老的东西了,结果里面暗藏玄机。有一个 ...


这个iif在SW帮助里有的(搜索表达式):
[attach]1158728[/attach]
作者: w_hs    时间: 2013-1-29 16:29
gt.adan 发表于 2013-1-26 21:36
看完了不老叔的教程,阿丹覺得很高興自己的方程和不老叔的教程是一樣的。
然而,阿丹在原題中有提到,這 ...

"n=n+1" 一类的问题,通常称之谓“递归调用”或“循环调用”,在任何一个计算机软件中,这都是一个不可避免的问题。譬如循环语句,从本质上来说就是一种“递归调用”。只要设计得当“递归调用”是一个很有效的方法,当然如果用的不当也会出现严重后的后果。
在SW的2012以上版本中,方程式内有“递归调用”会出现红字,并报告错误。实际上与其说是错误不如将其理解为“警告”,它告诉你方程式中出现了“递归调用”,希你引起注意。因为它仅仅是一种警告,所以这并不影响正常建模,在默认设置下特征树中没有错误标志,并且还特地为其提供了一种关闭这类错误警告的渠道。见下图

[attach]1158759[/attach]
作者: gt.adan    时间: 2013-1-29 16:50
w_hs 发表于 2013-1-29 16:29
"n=n+1" 一类的问题,通常称之谓“递归调用”或“循环调用”,在任何一个计算机软件中,这都是一个不可避 ...

不老叔午安!

謝謝您精闢的解說並且提供了因應的選項設置!{:soso_e179:}
原來那不是錯誤,而是一種警告呀~壑然開朗啦!
作者: konika    时间: 2013-1-30 12:08
厉害啊 .
作者: ryouss    时间: 2013-2-1 08:12
謝謝不老叔的教程,也謝謝所有參与者精彩的說明,學習了!
作者: xiamen_guo    时间: 2013-2-1 08:41
都玩神了都
作者: ryouss    时间: 2013-2-1 15:31
ryouss 发表于 2013-2-1 08:12
謝謝不老叔的教程,也謝謝所有參与者精彩的說明,學習了!

謝謝關懷!有事纏身,這一陣子有好多精彩篇,可惜無法參与.

作者: 棉裤老头    时间: 2013-2-1 16:18
不老兄就是厉害{:soso_e179:}
作者: zwf9900    时间: 2013-2-2 15:03
向各位学习了!
作者: 浪里打白条    时间: 2013-10-17 19:53
弱弱的问一句,怎么显示多边形的边数?
作者: hyhhd    时间: 2014-5-8 15:09
本帖最后由 hyhhd 于 2014-5-8 15:49 编辑

如果在VBA中建立自己的模块或类的属性、方法或事件,在建模中能调用吗?如果可以的话,直接调用属性、方法或激发事件,一切就简单了。等回去自己试试!其实,iif函数功能相对比较简单,只能做简单的判断操作,当然iff函数可以多层嵌套使用。用自己创建的方法可以加入更多的条件,以完成更加复杂的功能,比如,超过三个以上的轮廓的计算、比较和判断。除了算数、三角函数计算和iif函数也不知道sw还内建了其它哪些函数。如果能支持VB.NET(真正的面向对象编程了)就更强大了,不过当前还不可能,包括word2013、excel2013还是VBA(也就是VB6.0的函数和语法等)。递归:实际就是自己调用自己的函数,满足结束条件后将每一次递归的值经过设计的计算后返回最终值。如果将不老叔的题的条件稍微调整一下,如果多边形的边数是奇数,则多边形包圆,同时弹出提示窗体提示“多边形包圆 ”;如果多边形的边数是偶数,则为圆包多边形,同时也弹出提示窗体 提示“圆包多边形 ”。这样应该就会用到VBA了。
作者: hecai-sw    时间: 2014-5-10 15:39
厉害啊厉害
作者: mrdior    时间: 2014-6-17 10:34
顶啊,都是牛人
作者: mrdior    时间: 2014-6-17 23:21
看了好长时间,做出来的还有点不一样,接着再想啊
作者: 0006230    时间: 2015-1-14 21:37
求教,多边形的边数尺寸怎么显示出来呀???

作者: NM0716    时间: 2018-9-20 08:57
666,感谢,竟然能这样使用方程式
作者: NM0716    时间: 2018-9-20 09:55
灯具小翔 发表于 2013-1-28 08:39
刚刚学会录制屏幕,再做一次:

翔哥,请问下,草图里面多边形的边数不能赋予方程式,怎么弄啊

作者: kevin_pcac    时间: 2020-1-23 10:11
偷吃步,做不出三角形變化,只好跳過處理!
SW2016練習不知哪裡出錯???
[attach]1270322[/attach]





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