# Copyright (c) 2026 JSOL CORPORATION # # 本スクリプトはMITライセンスのもとで公開しています。 # ライセンス全文は以下を参照してください。 # https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/ # Horizontal(X) Width of the Rectangular HW = 20 # Vertical(Y) Width of the Rectangular VW = 10 # Height(Z) of a Rectangular Prism H = 10 def createRectangleRegion(geomDoc, sketch): """スケッチに1点と縦横幅を決めて長方形を作成し領域を作成する。縦幅、横幅には距離拘束を付与する""" sketch.OpenSketch() leftBottomX = 10 leftBottomY = 10 rightTopX = leftBottomX + HW reghtTopY = leftBottomY + VW bottomLine = sketch.CreateLineByLengthAngle(leftBottomX, leftBottomY, HW, 0) startVertex = bottomLine.GetStartVertex() refStartVertex = geomDoc.CreateReferenceFromItem(startVertex) # fixture: 固定拘束 sketch.CreateMonoConstraint(u"fixture", refStartVertex) refBottomLine = geomDoc.CreateReferenceFromItem(bottomLine) leftLine = sketch.CreateLineByLengthAngle(leftBottomX, leftBottomY, VW, 90) refLeftLine = geomDoc.CreateReferenceFromItem(leftLine) topLine = sketch.CreateLineByLengthAngle(leftBottomX, reghtTopY, HW, 0) refTopLine = geomDoc.CreateReferenceFromItem(topLine) rightLine = sketch.CreateLineByLengthAngle(rightTopX, leftBottomY, VW, 90) refRightLine = geomDoc.CreateReferenceFromItem(rightLine) # horizontality: 水平拘束 # verticality: 鉛直拘束 # distance: 距離拘束 sketch.CreateMonoConstraint(u"horizontality", refBottomLine) sketch.CreateMonoConstraint(u"horizontality", refTopLine) sketch.CreateMonoConstraint(u"verticality", refLeftLine) sketch.CreateMonoConstraint(u"verticality", refRightLine) VWDistanceConstraint = sketch.CreateBiConstraint("distance", refBottomLine, refTopLine) VWDistanceConstraint.SetName(u"VW") HWDistanceConstraint = sketch.CreateBiConstraint("distance", refLeftLine, refRightLine) HWDistanceConstraint.SetName(u"HW") selection = geomDoc.GetSelection() selection.Clear() selection.Add(bottomLine) selection.Add(leftLine) selection.Add(topLine) selection.Add(rightLine) sketch.CreateRegions() selection.Clear() sketch.CloseSketch() def createRectangularPrismPart(geomDoc): """パートとして、XY面に長方形領域を作成し、押し出しで直方体を作成する""" assembly = geomDoc.GetAssembly() rectPart = assembly.CreatePart() rectPart.SetName(u"RectangularPrism") rectPart.SetProperty(u"Color", u"navy") rectPart.OpenPart() refPlane = rectPart.GetPlaneXY() # XY平面上にスケッチを作成 sketchOnXYPlane = rectPart.CreateSketch(refPlane) createRectangleRegion(geomDoc, sketchOnXYPlane) extrude = rectPart.CreateExtrudeSolid(sketchOnXYPlane, H/2) # 押し出しタイプを[両側]に指定 extrude.SetTypeByName(u"BothSides") rectPart.ClosePart() app = designer.GetApplication() geomApp = app.CreateGeometryEditor() geomDoc = geomApp.GetDocument() createRectangularPrismPart(geomDoc)