CST 宏帮助.docx
《CST 宏帮助.docx》由会员分享,可在线阅读,更多相关《CST 宏帮助.docx(18页珍藏版)》请在冰豆网上搜索。
CST宏帮助
变量定义
DimsAsString(字符串)
DimdAsDouble(双精度)
DimiAsInteger(整数)
DimjAsLong(长数据)
也可以用字符来代替数据类型,分别对应如下:
DimsAsString
Dims$
DimdAsDouble
Dimd#
DimiAsInteger
DimI%
DimjAsLong
Dimj&
语言
StoreParameter(“width”,20)%%更改参数
MsgBoxCStr(d1)%%数据类型转换。
这里函数CStr()用于将给定的参数转换为字符串数据类型(ConvertintoString)。
另一个相当常见的转换函数是CDbl()。
Evaluate(),将数据转换为双精度类型
Setword=CreateObject("Word.Application"),Setppt=CreateObject("PowerPoint.Application")脚本访问相应外部对象(Word和PPT或者其他)。
以下代码段显示了如何从使用VBA的外部程序启动和控制CSTMICROWAVESTUDIO:
SubMain()
DimstudioAsObject
Setstudio=CreateObject("CSTStudio.Application")
DimmwsAsObject
Setmws=studio.NewMWS
DimbrickAsObject
Setbrick=mws.brick
brick.Name"brick"
brick.Xrange0,1
brick.Yrange0,1
brick.Zrange0,1
brick.Create
mws.SaveAs"C:
\temp\test.cst",False
mws.Quit
Setstudio=Nothing
EndSub
通过使用With-EndWith块可以简化对象方法的访问,如下面的示例所示:
SubMain()
DimstudioAsObject
Setstudio=CreateObject("CSTStudio.Application")
Withstudio.NewMWS
With.Brick
.Name"brick"
.Xrange0,1
.Yrange0,1
.Zrange0,1
.Create
EndWith
.SaveAs"C:
\temp\test.cst",False
.Quit
EndWith
Setstudio=Nothing
EndSub
文件操作
从VBA脚本访问文件相当简单。
打开用于读取或写入的文件后,可以为其分配编号的流,然后可以使用该流来访问该文件。
这在下面的例子中显示:
DimslineasString
Open"mydata.txt"ForInputAs#1
WhileNotEOF
(1)
LineInput#1,sline
Debug.Printsline
Wend
Close#1
Open"mydata.txt"ForOutputAs#2
Print#2,"TestOutput"
Close#2
Open"mydata.txt"ForAppendAs#3
Print#3,"TestOutput2"
Close#3
HowtousetheVBAObjects
从外部程序中调用CST
以下示例代码可以在外部应用程序(如电子表格或字处理器)的VBA解释器中输入。
它创建一个CSTSTUDIOSUITE应用程序对象,打开一个项目并创建一个砖块:
SubMain()
DimstudioAsObject
'Starts CSTSTUDIOSUITE
Setstudio=CreateObject("CSTStudio.Application")
DimprojAsObject
Setproj=studio.NewMWS
DimbrickAsObject
Setbrick=proj.brick
brick.Reset
brick.Name"BrickOne"
brick.Xrange"0","1"
brick.Yrange"0","2"
brick.Zrange"0","4"
brick.Create
proj.SaveAs"C:
\temp\test.cst",False
proj.Quit
Setstudio=Nothing
EndSub
打开内置VBA解释器中的项目
此示例从内置VBA解释器打开项目:
OpenFile("c:
\Examples\thebrick.cst")
WithBrick
.Reset
.Name"BrickOne"
.Layer"default"
.Xrange"0","1"
.Yrange"0","2"
.Zrange"0","4"
.Create
EndWith
FarfieldArrayObject
基于单个天线元素定义远场图的天线阵列模式。
.
Methods
Reset
将所有内部设置重置为其初始值。
UseArray( bool bFlag )
激活远场计算的数组模式。
Arraytype( enum type )
设置阵列模式的类型。
type可以具有以下值之一:
”rectangular”
可以使用方法XSet,YSet和ZSet通过设置相应的天线编号以及空间和相移信息来定义矩形阵列图案(线性:
1D,平面:
2D,立方体:
3D)。
然后通过SetList计算结果列表。
如果晶胞或周期性边界有效,阵列设置自动使用晶胞几何和定相。
”edit”
此模式通过使用方法天线将单个天线元素添加到列表中来编辑当前天线。
XSet( int number, double spaceshift, double phaseshift )
YSet( int number, double spaceshift, double phaseshift )
ZSet( int number, double spaceshift, double phaseshift )
在x,y或z方向分别定义线性阵列模式。
因此,可以创建线性,平面或立方体天线阵列结构。
number
单个天线单元在x,y或z方向上的数量
spaceshift
在x,y或z方向上的两个单个天线元件之间的恒定空间移位
phaseshift
在x,y或z方向上的两个单个天线元件之间的恒定相移
SetList
根据指定的阵列配置计算单个天线元件的完整列表,并将这些设置传输到farfield绘图仪。
DeleteList
删除定义阵列模式的单个天线元素的当前列表。
Antenna( double x, double y, double z, double amplitude, double phase )
定义单个天线元件的属性。
此方法仅适用于由Arraytype设置的编辑模式。
x
空间中单个天线元件的x位
y
空间中单个天线元件的y位置
z
空间中单个天线元件的z位置
amplitude
单个天线元件的振幅值
phase
单个天线元件的相位值
AddAntennaItem( filename sfile, double x, double y, double z, double alpha, double beta, double gamma, double A, double phase)
从sfile加载天线farfield并将其添加到组合列表。
AddAntennaItemA( filename sfile, double x, double y, double z, double z1, double z2, double z3, double x1, double x2, double x3, double A, double phase)
该命令类似于AddAntennaItem,但方向由天线框架z轴和x轴在全局坐标中指定。
下表总结了天线参数:
x,y,z
天线在空间中的位置
alpha,beta,gamma
欧拉角中天线的方向
z1,z2,z3
天线框架在全局坐标系中的z轴
x1,x2,x3
天线框架在全局坐标系中的x轴
A
天线发射的幅度
Phase
天线发射的相位
ClearAntennaItems
清除天线组合列表。
SetNormalizeAntennas( bool bflag )
在执行组合命令之前,激活所有天线的归一化到1W(峰值)激励功率。
用户指定的幅度应用于缩放的远场。
SetCombineFrequency( double frequency )
设置组合天线的频率。
组合列表中的所有天线必须具有相同的频率,否则天线的一致组合是不可能的。
SetCombineReferenceAxes( double z1, double z2, double z3, double x1, double x2, double x3 )
设置组合天线的theta参考轴(z1,z2,z3)和phi参考轴(x1,x2,x3)。
SetCombineReferenceOrigin( double p1, double p2, double p3 )
设置组合天线的相位参考原点(p1,p2,p3)。
ExecuteCombine( filename sfile, double stepInDegree )
将组合列表中的所有天线合并到单个天线。
新的天线数据通过stepInDegree采样并写入sfile。
不对组合字段应用进一步的缩放。
Queries(查询)
GetCombinePowerRatio double
返回实际发射功率与来自组合列表的所有天线的集成输入功率的比率。
与单位的强偏差表示天线的不可忽略的相互作用。
DefaultSettings
UseArray(False)
Arraytype("rectangular")
XSet(1,0.0,0.0)
YSet(1,0.0,0.0)
ZSet(1,0.0,0.0)
SetCombineFrequency(-1.0)
SetCombineReferenceAxes(0,0,1,1,0,0)
SetCombineReferenceOrigin(0,0,0)
SetNormalizeAntennas(True)
Example
Thefirstexampledefinesalinearantennaarray:
WithFarfieldArray
.Reset
.UseArray(True)
.Arraytype("rectangular")
.ZSet(2,2.5,90)
.SetList
.Arraytype("edit")
.Antenna(0,0,0,1.0,0.0)
EndWith
Thesecondexamplecombinestwoantennaswithdifferentorientationandposition:
WithFarfieldArray
ResultPath=GetProjectPath("Result") 'Assumethatthefarfieldfilesareintheresultfolder
.ClearAntennaItems()
.SetCombineFrequency(100.0)
.AddAntennaItem(ResultPath+"farfield_1.ffp",0.0,-1.0,0.0,0, 0,30.0,1.0,90.0)
.AddAntennaItem(ResultPath+"farfield_2.ffp",0.0, 1.0,0.0,0,-30, 0.0,1.0, 0.0)
.ExecuteCombine(ResultPath+"combined_ff.ffp",5.0) 'Storethecombinedantennaintheresultfolder
MsgBox"ActualPower/PowerSum="&.GetCombinePowerRatio()
EndWith
Thethirdexamplecombinesantennastoafinite-sizearrayofunitcellswithseventimessevenelements:
WithFarfieldArray
.SetCombineFrequency(100.0)
.SetNormalizeAntennas(False)
.SetUnitCellArray("farfield_1.ffp",7,7)
.ExecuteCombine("combined_ff.ffp",5.0)
EndWith
Theforthexamplesetsthefarfieldorigin:
NewOriginX=-100
NewOriginY=300
NewOriginZ=400
Frequency=30.0
MonitorName="farfield(f=30)"
WithFarfieldArray
ResultPath=GetProjectPath("Result")
.ClearAntennaItems()
.SetCombineFrequency(Frequency)
.AddAntennaItemA(ResultPath+MonitorName+"2D_1.ffp",0,0,0,0,0,1,1,0,0,1,0)
.SetCombineReferenceOrigin(NewOriginX,NewOriginY,NewOriginZ)
.ExecuteCombine(ResultPath+"MovedOrigin.ffp",1.0)
EndWith
'Addtoresulttree
WithResultTree
.Name"Farfields\MovedOrigin"
.FileResultPath+"MovedOrigin.ffp"
.Type"Farfield"
.Add
EndWith
CATIAObject
ImportCATIAV4andCATIAV5files.
Methods
Reset
将导入选项重置为默认。
FileName( filename filename )
设置导入文件名。
CatiaVersion( int version )
设置文件catia版本。
版本4和5是有效的选项。
Version( double version )
设置导入过滤器的版本,因为导入过程可能会随版本而略有变化。
此设置可用于向后兼容性原因,并应确保导入的更高版本可以准确再现早期版本的行为。
导入的最新版本为10.0。
Id( int id )
CAD文件可以多次导入具有不同导入选项设置的同一项目。
为了提高结构重建的性能,在导入过程中存储中间sat文件,这允许在重建期间快速重新读取数据,以防原始CAD文件未被修改。
中间sat文件的命名约定对于每个单独的导入步骤必须是唯一的。
因此,如果同一文件被多次导入或者同名文件导入到项目中,则需要增加Id设置。
然后将该ID合并到文件名中,以确保每次导入的唯一文件名
Healing( bool switch )
如果设置为True,则在导入期间,未对齐的顶点或边缘将被修复。
ScaleToUnit( bool switch )
如果设置为True,导入的模型将缩放到当前设置单位。
如果未设置,则导入功能使用源单位。
在这种情况下,不发生缩放。
ImportToActiveCoordinateSystem( bool switch )
相对于活动坐标系导入CAD数据。
Curves( bool switch )
标识是否应将曲线作为曲线或实体导入。
ImportAttributes( bool switch )
标识是否应从导入文件中读取实体名称,材料名称和材料颜色等属性。
仅与CATIA5导入文件组合使用。
ImportCurveAttributes( bool switch )
标识是否应从导入文件中读取诸如曲线名称的属性。
仅与CATIA5导入文件组合使用。
Read
开始导入文件。
DefaultSettings
FileName("")
Version(4)
Healing(True)
ImportToActiveCoordinateSystem(False)
ImportCurves(True)
ImportAttributes(True)
Example
WithCATIA
.Reset
.FileName(".\example.model")
.Healing(True)
.ImportToActiveCoordinateSystem(False)
.ImportCurves(True)
.ImportAttributes(True)
.Read
EndWith
AsymptoticSolverObject
此对象控制渐近高频解算器。
使用“start”命令运行解算器。
.
AsymptoticSolverGeneral
SetSolverType( enum{"SBR","SBR_RAYTUBES"} type )
此选择指定求解程序是使用独立光线(SBR)还是使用射线管(SBR_RAYTUBES)。
独立射线通常对于复杂几何形状更加强劲,但是对于大的和相对平滑的物体,射线管解算器的性能在较高频率下更好。
SetSolverMode( enum{"MONOSTATIC_SCATTERING","BISTATIC_SCATTERING","FIELD_SOURCES","RANGE_PROFILES"} type )
此选择指定求解程序是以单站或双站,场源或范围轮廓模式运行。
对于单站计算,观察角度与激发角度相同。
因此,对于这种模式,只需要规定观测角扫描。
对于双站计算,激发角和观察角不需要相同。
因此,当解算器用于双基模式时,需要定义附加的激励角扫描。
对于场源计算,不需要入射平面波,因此观察角扫描的定义是足够的。
范围轮廓模式使用与单静态模式类似的观察角定义,但仅支持单点或单角扫描。
在单个观察点定义的情况下,计算一维范围轮廓,而对于二维扫面定义,将产生正弦图(范围对角度)。
SetAccuracyLevel( enum{"LOW","MEDIUM","HIGH","CUSTOM"} type )
此设置允许您从预定义的精度配置中选择,如低,中或高。
低精度意味着模拟设置将针对快速模拟进行优化,而高精度意味着为获得非常精确的结果。
通常,中精度默认值提供了精度和模拟速度之间的良好折衷。
除了这些默认配置,您还可以选择自定义,它允许通过使用详细的求解器控制选项指定更详细的求解器选项。
ResetPolarizations
重置当前激励极化列表。
AddHorizontalPolarization( double value )
此方法允许您向激励列表中添加新的水平极化平面波。
以V/m为平面波电场矢量的振幅大小。
AddVerticalPolarization( double value )
此方法允许您向激励列表中添加新的垂直极化平面波。
以V/m为平面波电场矢量的振幅大小。
AddLHCPolarization( double value )
此方法允许您向激励列表中添加新的左旋圆极化平面波。
以V/m为平面波电场矢量的振幅大小。
AddRHCPolarization( double value )
此方法允许您向激励列表中添加新的右旋圆极化平面波。
以V/m为平面波电场矢量的振幅大小。
AddCustomPolarization( double ethetare, double ethetaim, double ephire, double ephiim)
此方法允许您将新的自定义极化添加到激励列表。
以V/m为平面波电场矢量的振幅大小。
SetSolverMaximumNumberOfReflections( int value )
此参数指定将被用于光线跟踪计算的光线反射的最大数量。
StorePOResults( bool flag)
此选项控制除了包括所有多重反射和衍射效应的总远场之外是否计算一阶PO远场。
比较两组结果可用于检查高阶效应对解的影响。
此选项仅适用于单站和双站模式
SetSolverRangeProfilesCenterFrequency( double value )
此方法允许您指定频率是范围和正弦图计算的中心频率。
请注意,此设置仅对范围配置的计算模式有效。
SetSolverRangeProfilesAutomatic( bool flag )
此方法允许您指定是否自动确定范围扩展或带宽设置,或者采用相应方法设置的值是否被taken。
请注意,此设置仅范围配置的计算模式有效。
SetSolverRangeProfilesNumberOfSamples( int value )
此方法允许您指定范围或正弦图计算的光谱采样数。
该值需要大于2的幂或者等于16。
请注意,此设置仅对范围配置的计算模式有效。
SetSolverRangeProfilesWindowFunction( enum{"RECTANGULAR","HANNING","HAMMI