HFSS中的變量問題
在HFSS的VBS腳本中,這樣定義變量時(shí):
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"))))
程序運(yùn)行沒有錯(cuò)誤,這樣相當(dāng)于在菜單操作中的預(yù)先定義變量的方法。
但是當(dāng)獨(dú)立定義變量如下時(shí):
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(注:這樣是錯(cuò)誤的,類型不同不能進(jìn)行預(yù)算)
.......
問題如下:
這樣定義變量,會(huì)導(dǎo)致后面無法進(jìn)行運(yùn)算。如果這樣定義:lambda=32,這樣就默認(rèn)波長(zhǎng)等于32m了,而不是32mm,后面的表達(dá)式是能夠運(yùn)算了,但是如果變量不加單位,HFSS就默認(rèn)為m,加上單位就是字符串類型了,后面的表達(dá)式(lambda/200等)就無法運(yùn)算。
為什么我設(shè)置了Units為"mm"時(shí),不加單位依然默認(rèn)為m呢。
誰能說說如何解決這個(gè)問題。
能不能不加單位,而把變量直接定義?
你如果非得用dim來定義的話確實(shí)是這樣的
因?yàn)関bs里面的語法不允許啊
最簡(jiǎn)單的解決辦法就是都是用默認(rèn)的單位
然后所有變量都用純數(shù)
比如你的波長(zhǎng)就是 32e-3
你還可以拓展一下,比如定義mm 為10e-3
波長(zhǎng)就是 32*mm
多謝!我還想問一下,就按我上面定義變量的方式(不是用Dim),能在后面的程序中對(duì)該變量進(jìn)行操作嗎?比如我在優(yōu)化時(shí),肯定要改變它的值的,我那樣定義在后面改變時(shí)可以嗎?
可以啊
只不過第一種方法
你一定要把變量轉(zhuǎn)化成合理字符串以后才行