FEM: Amplitude support for rigid body constraint (#22898)
* FEM: Update FemConstraintRigidBody.cpp * FEM: Update FemConstraintRigidBody.h * FEM: Update write_constraint_rigidbody_step.py * FEM: Update write_amplitude.py
This commit is contained in:
@@ -44,6 +44,7 @@ def write_amplitude(f, ccxwriter):
|
||||
ccxwriter.member.cons_heatflux,
|
||||
ccxwriter.member.cons_temperature,
|
||||
ccxwriter.member.cons_bodyheatsource,
|
||||
ccxwriter.member.cons_rigidbody,
|
||||
]
|
||||
|
||||
for constraint_list in constraint_lists:
|
||||
|
||||
@@ -65,12 +65,17 @@ def write_constraint(f, femobj, rb_obj, ccxwriter):
|
||||
ref_node_idx = node_count + 2 * rb_obj_idx + 1
|
||||
rot_node_idx = node_count + 2 * rb_obj_idx + 2
|
||||
|
||||
if rb_obj.EnableAmplitude:
|
||||
rb_amplitude = f", AMPLITUDE={rb_obj.Name}"
|
||||
else:
|
||||
rb_amplitude = ""
|
||||
|
||||
def write_mode(mode, node, dof, constraint, load):
|
||||
if mode == "Constraint":
|
||||
f.write("*BOUNDARY\n")
|
||||
f.write(f"*BOUNDARY{rb_amplitude}\n")
|
||||
f.write(f"{node},{dof},{dof},{constraint:.13G}\n")
|
||||
elif mode == "Load":
|
||||
f.write("*CLOAD\n")
|
||||
f.write(f"*CLOAD{rb_amplitude}\n")
|
||||
f.write(f"{node},{dof},{load:.13G}\n")
|
||||
|
||||
mode = [rb_obj.TranslationalModeX, rb_obj.TranslationalModeY, rb_obj.TranslationalModeZ]
|
||||
|
||||
Reference in New Issue
Block a user