HFSS中的變量問題
在HFSS的VBS腳本中,這樣定義變量時:
oDesign.ChangeProperty Array("NAME:AllTabs", Array("NAME:LocalVariableTab", Array("NAME:PropServers",_
"LocalVariables"), Array("NAME:NewProps", Array("NAME:lambda", "PropType:=",_
"VariableProp", "UserDef:=", true, "Value:=", "32mm"), Array("NAME:dip_rad", "PropType:=",_
"VariableProp", "UserDef:=", true, "Value:=", "lambda/200"), Array("NAME:res_length", "PropType:=",_
"VariableProp", "UserDef:=", true, "Value:=", "0.475*lambda"), Array("NAME:gap_src", "PropType:=",_
"VariableProp", "UserDef:=", true, "Value:=", "0.38mm"), Array("NAME:dip_length", "PropType:=",_
"VariableProp", "UserDef:=", true, "Value:=", "(res_length-gap_src)/2"), Array("NAME:radiaton_rad", "PropType:=",_
"VariableProp", "UserDef:=", true, "Value:=", "dip_rad+lambda/4"), Array("NAME:radiation_height", "PropType:=",_
"VariableProp", "UserDef:=", true, "Value:=", "gap_src/2+dip_length+lambda/4"))))
程序運行沒有錯誤,這樣相當(dāng)于在菜單操作中的預(yù)先定義變量的方法。
但是當(dāng)獨立定義變量如下時:
Dim lambda
Dim dip_rad
Dim res_length
Dim gap_src
Dim dip_length
Dim radiation_rad
Dim radiation_height
lambda="32mm"
dip_rad=lambda/200(注:這樣是錯誤的,類型不同不能進行預(yù)算)
.......
問題如下:
這樣定義變量,會導(dǎo)致后面無法進行運算。如果這樣定義:lambda=32,這樣就默認(rèn)波長等于32m了,而不是32mm,后面的表達式是能夠運算了,但是如果變量不加單位,HFSS就默認(rèn)為m,加上單位就是字符串類型了,后面的表達式(lambda/200等)就無法運算。
為什么我設(shè)置了Units為"mm"時,不加單位依然默認(rèn)為m呢。
誰能說說如何解決這個問題。
能不能不加單位,而把變量直接定義?
你如果非得用dim來定義的話確實是這樣的
因為vbs里面的語法不允許啊
最簡單的解決辦法就是都是用默認(rèn)的單位
然后所有變量都用純數(shù)
比如你的波長就是 32e-3
你還可以拓展一下,比如定義mm 為10e-3
波長就是 32*mm
多謝!我還想問一下,就按我上面定義變量的方式(不是用Dim),能在后面的程序中對該變量進行操作嗎?比如我在優(yōu)化時,肯定要改變它的值的,我那樣定義在后面改變時可以嗎?
可以啊
只不過第一種方法
你一定要把變量轉(zhuǎn)化成合理字符串以后才行