![]() | Adding Structures |
The script below shows how you can create a box using the discovery API, then apply Thin Seam, This Surface, and Thin Gap definitions to the geometry.
# Python Script, API Version = V251 ClearAll() # Sketch Rectangle plane = Plane.PlaneXY result = ViewHelper.SetSketchPlane(plane) point1 = Point2D.Create(MM(0),MM(0)) point2 = Point2D.Create(MM(-200),MM(0)) point3 = Point2D.Create(MM(-200),MM(200)) result = SketchRectangle.Create(point1, point2, point3) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[0].GetChildren[ICurvePoint]()[0]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumPoint]()[0]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[3].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumPoint]()[0]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[2].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[3].GetChildren[ICurvePoint]()[0]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[0].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[0]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[1].GetChildren[ICurvePoint]()[0]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[0]) result = Constraint.CreateCoincident(baseSel, targetSel) # EndBlock # Solidify Sketch mode = InteractionMode.Solid result = ViewHelper.SetViewMode(mode, None) # EndBlock # Extrude Edges root = GetRootPart() edges = root.Bodies[0].Edges print(edges) options = ExtrudeEdgeOptions() faceSelection = FaceSelection.Create(GetRootPart().Bodies[0].Faces[0]) for edge in edges: edgeSel = EdgeSelection.Create(edge) ExtrudeEdges.Execute(edgeSel, faceSelection, MM(200), options) # Split Faces options = SplitFaceOptions() selection = FaceSelection.Create(GetRootPart().Bodies[0].Faces[4]) point = FaceSelection.Create(GetRootPart().Bodies[0].Faces[4]).Items[0].EvalProportion(0, 0).Point result = SplitFace.ByParametric(selection, point, FaceSplitType.UV, options) # EndBlock # Split Faces options = SplitFaceOptions() selection = FaceSelection.Create(GetRootPart().Bodies[0].Faces[4]) startPoint = EdgeSelection.Create(GetRootPart().Bodies[0].Edges[10]).Items[0].EvalProportion(0).Point endPoint = EdgeSelection.Create(GetRootPart().Bodies[0].Edges[5]).Items[0].EvalProportion(0).Point result = SplitFace.ByTwoPoints(selection, startPoint, endPoint, options) # EndBlock # Import EMA API import clr apipath = "ema3d.Api.V25.dll" clr.AddReferenceToFileAndPath(apipath) # EMA API Imports import ema3d.Api.V25.Core as Core # get document and body doc = Window.ActiveWindow.Document root = GetRootPart() bodies = root.Bodies # get domain domain = Core.Domain.Domain.GetInstance(doc) Core.Domain.Domain.ResetDomainBounds(domain) # Set Thin Seam Definition thindef = Core.Definitions.ThinSeamDefinition.Create(doc) thindef.Inductance = 125 thindef.Capacitance = 150 thindef.Resistance = 130 thindef.Name = "Thin Seam Definition" line = bodies[0].Edges[0] thindef.AssignSingle(line) print(Core.Definitions.ThinSeamDefinition.GetDefinitions(doc)) print(Core.Definitions.ThinSeamDefinition.GetNames(doc)) # Set Thin Surface Definition thindef = Core.Definitions.ThinSurfaceDefinition.Create(doc) thindef.Sigma = 100 thindef.Epsilon = 150 thindef.Mu = 130 thindef.SigmaM = 100 thindef.Thickness = 100 thindef.Name = "Thin Surface Definition" face = bodies[0].Faces[0] thindef.AssignSingle(face) print(Core.Definitions.ThinSurfaceDefinition.GetDefinitions(doc)) print(Core.Definitions.ThinSurfaceDefinition.GetNames(doc)) # Set Thin Gap thindef = Core.Definitions.ThinGapDefinition.Create(doc) thindef.Width = 10 thindef.Conductivity = 100 thindef.Permittivity = 100 thindef.Name = "Thin Gap Definition" thinEdge = root.Bodies[0].Edges[12] thindef.AssignSingle(thinEdge) print(Core.Definitions.ThinGapDefinition.GetDefinitions(doc)) print(Core.Definitions.ThinGapDefinition.GetNames(doc))
# Sketch Rectangle point1 = Point2D.Create(MM(0),MM(0)) point2 = Point2D.Create(MM(-20),MM(0)) point3 = Point2D.Create(MM(-20),MM(-20)) result = SketchRectangle.Create(point1, point2, point3) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[0].GetChildren[ICurvePoint]()[0]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumPoint]()[0]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[3].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumPoint]()[0]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[2].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[3].GetChildren[ICurvePoint]()[0]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[0].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[0]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[1].GetChildren[ICurvePoint]()[0]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[0]) result = Constraint.CreateCoincident(baseSel, targetSel) # EndBlock # Sketch Rectangle point1 = Point2D.Create(MM(-20),MM(-20)) point2 = Point2D.Create(MM(0),MM(-20)) point3 = Point2D.Create(MM(0),MM(-40)) result = SketchRectangle.Create(point1, point2, point3) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[4].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[5].GetChildren[ICurvePoint]()[0]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[5].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[6].GetChildren[ICurvePoint]()[0]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[4].GetChildren[ICurvePoint]()[0]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[1].GetChildren[ICurvePoint]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[7].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[1].GetChildren[ICurvePoint]()[1]) result = Constraint.CreateCoincident(baseSel, targetSel) baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[6].GetChildren[ICurvePoint]()[1]) targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[1], 0.04) result = Constraint.CreateCoincident(baseSel, targetSel) # EndBlock # Solidify Sketch mode = InteractionMode.Solid result = ViewHelper.SetViewMode(mode, None) # EndBlock #EMA API import clr apipath = "ema3d.Api.V25.dll" clr.AddReferenceToFileAndPath(apipath) import ema3d.Api.V25.Core as Core import ema3d.Api.V25.Core.Domain.Domain as Domain from ema3d.Api.V25.Core.Definitions import LineBarrier, BarrierShape # get document doc = Window.ActiveWindow.Document # create domain domain = Domain.GetInstance(doc) Domain.ResetDomainBounds(domain) # create line barrier with Line shape type surfaces = GetRootPart().Bodies[0].Faces lines = [GetRootPart().Bodies[0].Edges[4]] line_barrier = LineBarrier.Create( doc, BarrierShape.Line, [], lines, surfaces ) # Refresh Stage to show EMA Tree Solution.Stages.SetStage("EMA3D")