スクリプト
完成したCADFEKO自動化スクリプトを表示します。
モデル形状を作成します。
--[[ Script exchange is a value added initiative through which customers can upload or download scripts that help simplify their processes and reduce the effort of repetitive work. THE SCRIPT exCHANGE IS PROVIDED ON AN "AS-IS" BASIS. USE OF THE SCRIPTS AND RELIANCE ON ANY RESULTS DERIVED THEREFROM IS SOLELY AND STRICTLY AT THE USER'S DISCRETION. ALTAIR MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, exPRESS OR IMPLIED, AND exPRESSLY DISCLAIMS THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ALTAIR DOES NOT WARRANT THE OPERATION, ACCURACY, CORRECTNESS OR COMPLETENESS OF THE SCRIPTS OR ANY RESULTS DERIVED THEREFROM. --]] -- =========================================================================== -- -- PATCH ANTENNA ON PLANAR MULTILAYER SUBSTRATE -- =========================================================================== -- --[[ This script creates a patch antenna on a planar multilayer substrate NOTE: This example is only to be used as an example to demonstrate how to automate tasks that are often required in CADFEKO. An electromagnetic solution is only performed to obtain results to demonstrate how to automate tasks often required in POSTFEKO.]]-- app = cf.GetApplication() my_project = app:NewProject() -- Create a rectangle corner1 = cf.Point(-0.25, -0.25, 0) my_rectangle = my_project.Geometry:AddRectangle(corner1, 0.5, 0.5) -- Create dielectrics my_diel = my_project.Media:AddDielectric() my_diel.Label = "substrate" my_diel.DielectricModelling.RelativePermittivity = 1.5 my_diel2_properties = cf.Dielectric.GetDefaultProperties() inspect(my_diel2_properties) my_diel2_properties.DielectricModelling.ConductivityType = cf.Enums.MediumDielectricConductivityTypeEnum.Conductivity my_diel2_properties.DielectricModelling.Conductivity = "1e-2" my_diel2_properties.DielectricModelling.RelativePermittivity = "2.5" my_diel2_properties.Label = "substrate2" my_diel2 = my_project.Media:AddDielectric(my_diel2_properties) -- Create a planar multilayer substrate my_project.GroundPlane.DefinitionMethod = cf.Enums.GroundPlaneDefinitionMethodEnum.MultilayerSubstrate my_project.GroundPlane.Layers:Add(2,"None","0.351",my_diel2) my_project.GroundPlane.Layers:Modify(3,"PEC","0.2",my_diel) -- Create the feed pin startPoint = cf.Point(0,0,0) endPoint = cf.Point(0,0,-0.551) my_line = my_project.Geometry:AddLine(startPoint,endPoint) my_line.Label = "my_line_Line1" -- Union the line and rectangle my_Union = my_project.Geometry:Union()
ワイヤポートの作成、電圧源の追加、周波数の設定を進めてモデルをメッシングし、要求を追加します。
-- Create a wire port my_port = my_project.Ports:AddWirePort(my_Union.Wires[1]) my_port.Location = cf.Enums.WirePortLocationEnum.End -- Add a voltage source as part of configuration this_config = my_project.SolutionConfigurations[1] my_voltage_source = this_config.Sources:AddVoltageSource(my_port) -- Set the frequency this_config.Frequency.Start = "3e8" -- Create the mesh my_project.Mesher.Settings.WireRadius = "0.001" my_project.Mesher:Mesh() -- Add a far field request my_farfield = this_config.FarFields:Add3DPattern() properties = my_farfield:GetProperties() inspect(properties) properties.Theta.End = "89" properties.Theta.Increment = "1" my_farfield:SetProperties(properties) -- Add all currents request my_currents = this_config.Currents:Add() -- Zoom to extents in the 3D view app.Views[1]:ZoomToExtents()
Solverを起動します。
-- Enable the parallel Solver my_project.Launcher.Settings.FEKO.Parallel.Enabled = true -- Save the *.cfx file app:SaveAs([[patch_antenna_scripted_model.cfx]]) -- Run the Solver my_project.Launcher:RunFEKO()