解析の設定において部品をグループ化したり、条件の設定をするなどの際、部品、面、エッジなどの対象を選択することがあります。
IDや名前などで意図する対象を選択できますが、モデル空間の領域を指定して範囲内にある対象を選択する方法もあります。
範囲選択においては、指定された範囲に完全に属する対象が選択されます。
このスクリプトでは直方体の範囲を指定し、選択されたすべての部品で新しい部品グループを作成します。
直方体範囲の指定パラメータの意味は図を参照してください。
IDや名前などで意図する対象を選択できますが、モデル空間の領域を指定して範囲内にある対象を選択する方法もあります。
範囲選択においては、指定された範囲に完全に属する対象が選択されます。
このスクリプトでは直方体の範囲を指定し、選択されたすべての部品で新しい部品グループを作成します。
直方体範囲の指定パラメータの意味は図を参照してください。
前提条件
- モデルが1つ以上作成されていること
このスクリプト例では、プロジェクトツリー上でアクティブなモデルに対して実行している - 非ウィンドウモードではないこと。非ウィンドウモードでは領域を座標で指定する選択はできない
スクリプトにおける実行内容
- 選択したい直方体範囲の対頂の2点の座標を設定する
- 直方体範囲内の部品を選択する
- 選択されたすべての部品を1つの新しい部品グループにまとめる
# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/
def getPartsInBoxArea(model, diagonalPoint1, diagonalPoint2):
"""引数で指定された2点を結ぶ直線を対角線とし、各辺がx, yまたはz軸に平行な直方体の範囲内にある部品を選択する """
result = model.CreateSelection()
result.Clear()
result.Attach()
# The 3rd argumet of SelectPartByRange
# False: Select all parts in the range
# True: Select only visible parts in the range
result.SelectPartByRange(diagonalPoint1, diagonalPoint2, False)
return result
app = designer.GetApplication()
model = app.GetCurrentModel()
point1 = app.CreatePoint(-40, -40, 0)
point2 = app.CreatePoint(42, 42, 60)
selParts = getPartsInBoxArea(model, point1, point2)
model.GetGroupList().CreateGroupBySelected(selParts, "newGroup")




