• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > CST > CST使用问答 > Need CST macro that updates the structure when changing the parameter

Need CST macro that updates the structure when changing the parameter

录入:edatop.com     点击:
I have write a macro that makes an universal antenna.

everything works but when I change a parameter in the parameter list I get a error:

Expecting an existing scalar var. (I=0)

Can anyone help me?

ps I'm sorry for my bad englisch I'm from germany:)


Here is the code I use:

' rotation2

Sub Main ()

GoTo Back

Exists:
Component.Delete "component1"
I=0
GoTo Back

Back:

' StoreParameter("t",1 )
' StoreParameter("b", 2)
' StoreParameter("lam", 20)'lambda
' StoreParameter("a", 5)'Winkel a
' StoreParameter("r3",7)'Innenradius Stufe3
' StoreParameter("r2",5)'Innenradius Stufe2
' StoreParameter("r1",3)'Innenradius Stufe1
' StoreParameter("l3",5)'Laenge Stufe3
' StoreParameter("l2",5)'Laenge Stufe2
' StoreParameter("l1",5)'Laenge Stufe1
' StoreParameter("d",2)'Wanddicke
' StoreParameter("l",100)'Laenge des gesammten Rillenhorns

a1=((90-a)*pi/180)

With Rotate
.Reset
.Name "solid1"
.Component "component1"
.Material "Vacuum"
.Mode "Pointlist"
.StartAngle "0.0"
.Angle "360"
.Height "0.0"
.RadiusRatio "1.0"
.NSteps "0"
.SplitClosedEdges "True"
.SegmentedProfile "False"
.SimplifySolid "True"
.UseAdvancedSegmentedRotation "True"
.Origin "0.0", "0", "0.0"
.Rvector "1.0", "0.0", "0.0"
.Zvector "1.0", "0.0", "0.0"


.Point 0,lam/2+r3

Do

'xx=I*b+I*t
.LineTo I*b+I*t,lam/2+r3

xx=(I+1)*b+I*t
.LineTo xx,lam/2+r3

xx=(I+1)*b+I*t
yy=(((I+1)*b+I*t)/Tan(a1))+r3
.LineTo xx,yy

xx=(I+1)*b+(I+1)*t
yy=(((I+1)*b+(I+1)*t)/Tan(a1))+r3
.LineTo xx,yy

I=I+1

Loop Until ((I+1)*b+(I+1)*t-(b/2)-t)/Tan(a1)> lam/4

cx=I*b+I*t
Cy=(((I*b)+(I*t))/Tan(a1))+r3

lange=cx+l1+l2+l3
I=0

Do

xx=I*b+I*t
yy=(lam/4)+((I*b+I*t)/Tan(a1))
.LineTo xx+cx,yy+Cy

xx=(I+1)*b+I*t
yy=(lam/4)+((I*b+I*t)/Tan(a1))
.LineTo xx+cx,yy+Cy

xx=(I+1)*b+I*t
yy=((I+1)*b+I*t)/Tan(a1)
.LineTo xx+cx,yy+Cy

xx=(I+1)*b+(I+1)*t
yy=((I+1)*b+(I+1)*t)/Tan(a1)
.LineTo xx+cx,yy+Cy

I=I+1

Loop Until (I*t)+(I*b)+lange >l

.LineTo cx+I*(b+t),((cx+I*(b+t))/Tan(a1))+ (lam/4)+d+r3
.LineTo 0,((cx+I*(b+t))/Tan(a1))+ (lam/4)+d+r3
.LineTo 0,lam/2+r3

On Error GoTo Exists
.Create
End With

With Rotate
.Reset
.Name "solid2"
.Component "component1"
.Material "Vacuum"
.Mode "Pointlist"
.StartAngle "0.0"
.Angle "360"
.Height "0.0"
.RadiusRatio "1.0"
.NSteps "0"
.SplitClosedEdges "True"
.SegmentedProfile "False"
.SimplifySolid "True"
.UseAdvancedSegmentedRotation "True"
.Origin "0.0", "0", "0.0"
.Rvector "1.0", "0.0", "0.0"
.Zvector "1.0", "0.0", "0.0"

.Point 0,r3
.LineTo -l3,r3
.LineTo -l3,r2
.LineTo -(l2+l3),r2
.LineTo -(l2+l3),r1
.LineTo -(l1+l2+l3),r1
.LineTo -(l1+l2+l3),((cx+I*(b+t))/Tan(a1))+ (lam/4)+d+r3
.LineTo 0,((cx+I*(b+t))/Tan(a1))+ (lam/4)+d+r3
.LineTo 0,r3

.Create

End With

End Sub

申明网友回复良莠不齐,仅供参考。如需专业解答,请学习易迪拓培训专家讲授的CST视频培训教程

上一篇:How to design a helical antenna in CST MWS with minimum back lobe radiation pattern?
下一篇:CST MWS - emission vs frequency 3D model

CST培训课程推荐详情>>

  网站地图