CATIA UDF之陣列復制Loop

前面已經給大家詳細的講述了UDF的創建方法,通過UDF可以大大減少我們重復建模的次數和時間,但是如何將UDF進行批量的復制則需要我們用到另外一種命令Loop來實現。例如下面這個實例,在螺旋線上均勻分布了35個球體,而且從上至下球體的大小逐漸增大;顯然通過UDF可以實現不同位置的單個球,但是要一次實現所有的球陣列復制出來,就需要我們結合Loop的命令實現,本文將詳細介紹Loop的創建過程。

CATIA UDF之陣列復制Loop的圖1

Step 1 : 首先創建需要用到的參數:Number(控制球體的個數),Ratio(球體在曲線的位置),R(球體的半徑)

創建輸入幾何圖形: 螺旋線

創建輸出的UDF幾何圖形:點(點在曲線上),球面(點和半徑),封閉曲面實體化

并將比例Ratio和球徑R分別用公式將參數一一關聯起來

CATIA UDF之陣列復制Loop的圖2

Step 2 : 創建UDF模板,點擊特征樹上的 點、球面、球體以及參數Ratio和R作為內部組件,直到右側僅出現輸入組件螺旋線說明創建成功

CATIA UDF之陣列復制Loop的圖3

同時注意切換到參數對話框,將Ratio和R務必激活為Yes狀態,創建完成后可以修改UDF屬性名稱,特征樹知識模板組下面會出現剛才創建的UDF特征,其控制參數也在下面

CATIA UDF之陣列復制Loop的圖4

Step 3 : 創建Loop語句 :

切換到知識工程顧問模塊下面,如下所示,打開Loop命令

CATIA UDF之陣列復制Loop的圖5

如下圖所示,將對應的參數加入列表

CATIA UDF之陣列復制Loop的圖6

1.      Input列表:將UDF特征模板和Number參數加入進來,注意所有Loop語句中出現的變量參數需要加入至列表中

2.      Input Name : 可以自定義修改Input列表中的出現的參數名稱,且名稱必須與下面語句引用的完全一致,否則出錯。

3.      Context : 為復制后的UDF特征存放的幾何集名稱,即陣列后的實體全部在該幾何集特征樹下。

4,From  To : From 后為變量的初始值或者起始值,To后為變量的終值,中間步進增量        為1,為了保證與Number進行實時更新,需要用f(x)將Number用公式關聯起來。

4.   Loop 循環語句編寫: (本文最關鍵的地方)

第一行: ball_$i$ isa Ball

ball_$i$ 是表示生成的UDF特征實體的屬性名稱,i是變量(在Loop中i是唯一約定的變量),例如本例中將會生成如ball_1、ball_2、ball_3…ball_35,注意Loop中的變量i必須要用$i$ 來引用,相當于將字符i變量化

Isa 為固定語句,不可修改,其后接UDF模板的名稱

Ball需與創建的UDF模板屬性名稱一致,如果Input name中對UDF名稱修改了,則應與Input name中保持一致。

第二行和末行: 中間控制參數的語句編寫都必須有{}

第三行: R=1mm*(1+0.1*$i$)

表達式含義為球體的半徑將在1mm基礎上以0.1遞增,注意因為R是帶單位的參數,所以在創建表達式過程中必須右邊也帶參數,所以需要將mm單位帶上

第四行:Ratio=1*$i$ / Number

表達式含義為球心在曲線的百分比位置以1/35、2/35…1。由于Ratio本身定義的就是實數類型,所以無需加上單位

創建完成后確認即可實現圖一的效果,且球的數量,大小都可以同步更新變化。

但是需注意,更改完參數后還需要再次打開Loop然后再關閉才可看到更新的變化。

 

來源:CATIA高級應用

作者:靜水流深

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP