在ProE關系式中我們可以使用系統函數,ProE對數學函數有強大的支持能力,通過這些函數我們可以來進行一些特定的運算得到所期望的值,這裡就對一些比較常用的系統函數進行一個概括總結。
1、數學函數
在ProE中,我們可以使用靈活的數學函數,常用的函數列表如下:
sin()、cos()、tan()函數:
這三個都是數學上的三角函數,分别使用角度的度數值來求得角度對應的正弦、餘弦和正切值,比如:
A=sin(30),A=0.5
B=cos(30),B=0.866
C=tan(30),C=0.577
asin()、acos()、atan()函數:這三個是上面三個三角函數的反函數,通過給定的實數值求得對應的角度值,如:
A=asin(0.5),A=30
B=acos(0.5),B=60
C=atan(0.5),C=26.6
log():求得10為底的對數值,如:A=log(1),A=0
A=log(10),A=1
A=log(5),A=0.6989
ln():求得以自然數e為底的對數值,e是自然數,值是2.718...,如:A=ln(1),A=0
A=ln(5),A=1.609
exp():求得以自然數e為底的開方數,如:A=exp(2),A=e^2=7.387
abs():求得給定參數的絕對值,如:A=abs(-1.6),A=1.6
B=abs(3.5),B=3.5
max()、min():求得給定的兩個參數之中的最大最小值,如:A=max(3.8,2.5),A=3.8
B=min(3.8,2.5),B=2.5
mod():求第一個參數除以第二個參數得到的餘數,如:
A=mod(20,6),A=2
B=mod(20.7,6.1),B=2.4
sqrt():開平方,如:A=sqrt(100),A=10;
B=sqrt(2),B=1.414
pow():指數函數,如A=pow(10,2),A=100
B=pow(100,0.5),B=10
ceil():不小于其值的最小整數
floor():不超過其值的最大整數
ceil(10.2)值為11
floor(10.2)=11
也可以使用指定小數部分位數的ceil和floor函數,如:
ceil(10.255,2)=10.26
floor(10.255,1)=10.2
floor(10.255,2)=10.26
2、字符串函數:
string_length():字符串長度求值
用法:String_length(Parameter name or string),括弧内參數名或字符串,字符串要用" "括起,空格亦算一個字符。例:strlen1=string_length("material"),則strlen1=8
rel_model_name():提取當前零件的文件名稱用法:rel_model_name()注意括号内為空的,返回目前模型名稱。
rel_model_type():提取當前零件的文件類型用法:rel_model_type()
如:當前模型為裝配圖
parttype=rel_model_type(),parttype="ASSEMBLY"。
itos():将整數換成字符串用法:Itos(integer)整數,若為實數則舍去小數點。如:
S1=Itos(123),S1="123"
S2=itos(123.57),S2="123"
intl=123.5,S3=itos(intl),S3="123"
extract():提取字符用法:extract(string,position,length)
evalGraph():圖形X值對應的Y值提取函數用法:evalGraph(Graph_name,x_value),其中Graph_name是指控制圖形(Graph)的名字,要用雙引号括起,x_value是Graph中的定義域,函數返回Graph中x對應的y值。如:
sd5=evalGraph(“sec”,3)
下面都是使用參數來設計的具體例子:
下圖是點按照線長陣列,默認情況下,點的數量需要我們自己确定,下面的圖通過函數floor函數和分析參數實現點的數量随着曲線的變化自動匹配,修改線的形狀和長度後,點的個數會自動匹配:
下面是通過extract字符提取函數實現文字的陣列:
下面舉個例子說明Mod函數的使用:
利用可變截面掃描的函數和關系式,可以通過實現常見的周期性變化,比如正弦變化、餘弦變化,但對于一般性的形狀是無法實現的。
如何在Pro/E可變掃描中循環利用已有的圖形(Graph)以實現更一般化的周期性形狀變化?
要實現循環利用圖形,那麼在可變掃描過程中,必須有方法在某個值後歸零然後重新計算圖形對應的值,mod()函數是非常恰當的實現方式,比如,我們的圖形X定義域為0~10,要在可變掃描過程中循環利用5次,我們很容易推導出如下的關系式(為了方便,我做了一個标準的類似公式一樣的通式):
sd#=EvalGraph("Graph",mod(N*X_value*trajpar,X_value))*K
上面的關系式說明:
N:表示循環周期的次數
X_value:表示圖形的X定義域
K:縮放倍數
也可以用以下的關系式控制,道理類似:
sd#=EvalGraph("Graph",N*trajpar-floor(N*trajpar))*K----用此關系式來控制時,圖形的定義域為0~1。
上面的關系式說明:
N:表示循環周期的次數
K:縮放倍數
第一種方式要直觀、也容易理解:
在整個可變掃描過程中,trajpar是從0到1變化,所以N*X_value*trajpar的變化就是0到N*X_value,mod(N*X_value*trajpar,X_value)就是這0到N*X_value的變化要對X_value進行求餘,換句話說,當變化到X_value的倍數的時候我們的mod()函數值就會歸0,從而實現圖形的循環利用,floor()函數的原理也是類似的。
注意點,循環利用的圖形必須要符合以下兩點:
1、圖形Graph的起點和終點Y值必須相等;
2、圖形 Graph必須是單一段(多段相切線條組合成的形狀,可采用轉換成樣條的方式來轉化成單根線條);
如下圖示意:
需要視頻教程以及學習禮包的同學注意啦!請私信或者評論回複“領取資料”即可獲取以上教程!
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!