Inspireである接触条件のみを一括変更する


Inspireでは定義された接触条件を変更する際は、一括変更する場合を除き、
ひとつずつGUI上で選択するか、接触テーブルから変更する必要があります。
ですが、PythonAPI を使用することで一括変更ができます。
ドキュメントは以下のようにしてアクセスできます。

*Pythonウィンドウは左上のビュー>Pythonウィンドウ、もしくはF4キーから開くことができます。

v2023以降

v2023以降では、接触アルゴリズムがOptiStructとSimSolidと同じになったため、ソルバーを指定する必要があります。
例:滑り接触のみを接触無視に変更する場合

OptiStruct

from hwx import inspire
model = inspire.getModel()

model.updateContacts(solver = 'OptiStruct')
for contact in model.contacts:
	print(contact.name + " type:", contact.contactType, end="")
	if contact.contactType == "sliding":
		contact.contactType = "none"
		print("-> "+contact.contactType)
	else:
		print("")

SimSolid

from hwx import inspire
from hwx.inspire import SimSolidAnalysis, usingUnits

model = inspire.getModel()
model.updateContacts(solver = 'SimSolid', searchDistance = '1mm',  penetrationTolerance = '1mm', resolution='Medium')
for contact in model.contacts:
	print(contact.name + " type:", contact.contactType, end="")
	if contact.contactType == "sliding":
		contact.contactType = "none"
		print("-> "+contact.contactType)
	else:
		print("")

デフォルトではMKS単位系での指定になりますが、UsingUnitsを指定することで上記のように単位系を入れ込んだ値を指定できます。

OptiStruct、SimSolidとともに以下の接触タイプを定義できます。
contact.contactTypeで接触の種類を指定します。
none: 接触無視
bonded: 固着
sliding: 滑り
separating: 分離
ただしOptiStructソルバーにおいて、分離と滑りは混在できません。
これは、非線形静解析をすることで分離、線形静解析を行うことで滑りとしているからです。
(SimSolidソルバーは滑りと分離を混在できます。)

v2022.3.1まで

例:滑り接触のみを接触無視に変更する場合

from hwx import inspire
model = inspire.getModel()

model.updateContacts()
for contact in model.contacts:
	print(contact.name + " type:", contact.contactType, end="")
	if contact.contactType == "sliding":
		contact.contactType = "none"
		print("-> "+contact.contactType)
	else:
		print("")

contact.contactTypeで接触の種類を指定します。
none: 接触無視
bonded: 固着
sliding: 滑り
OptiStructソルバーにおいて、分離と滑りは混在できません。
これは、非線形静解析をすることで分離、線形静解析を行うことで滑りとしているからです。
分離条件を変更する場合はいったん滑り接触に変換していただく必要があります。
変更する際はどれか一つを変更することで、Inspireが自動的にすべてを変更します。
(SimSolidソルバーは滑りと分離を混在できます。)