Fem: Write reaction force from rigid body nodes - fixes #14558
This commit is contained in:
committed by
Chris Hennes
parent
75fe4f60f6
commit
c1b2e933d2
@@ -73,6 +73,11 @@ def write_constraint(f, femobj, rb_obj, ccxwriter):
|
||||
f.write("{},{},{},{}\n".format(ref_node_idx, *rb_obj.ReferenceNode))
|
||||
f.write("{},{},{},{}\n".format(rot_node_idx, *rb_obj.ReferenceNode))
|
||||
|
||||
f.write("*NSET,NSET={}_RefNode\n".format(rb_obj.Name))
|
||||
f.write("{},\n".format(ref_node_idx))
|
||||
f.write("*NSET,NSET={}_RotNode\n".format(rb_obj.Name))
|
||||
f.write("{},\n".format(rot_node_idx))
|
||||
|
||||
kw_line = "*RIGID BODY, NSET={}, REF NODE={}, ROT NODE={}".format(rb_obj.Name, ref_node_idx, rot_node_idx)
|
||||
|
||||
f.write(kw_line + "\n")
|
||||
|
||||
@@ -84,6 +84,25 @@ def write_step_output(f, ccxwriter):
|
||||
):
|
||||
f.write("*NODE PRINT, NSET={}, TOTALS=ONLY\n".format(femobj["Object"].Name))
|
||||
f.write("RF\n")
|
||||
if ccxwriter.member.cons_rigidbody:
|
||||
# reaction forces/moments for Constraint rigid body
|
||||
f.write("** reaction forces/moments for Constraint rigid body\n")
|
||||
for femobj in ccxwriter.member.cons_rigidbody:
|
||||
# femobj --> dict, FreeCAD document object is femobj["Object"]
|
||||
if (
|
||||
femobj["Object"].TranslationalModeX != "Free"
|
||||
or femobj["Object"].TranslationalModeY != "Free"
|
||||
or femobj["Object"].TranslationalModeZ != "Free"
|
||||
):
|
||||
f.write("*NODE PRINT, NSET={}_RefNode, TOTALS=ONLY\n".format(femobj["Object"].Name))
|
||||
f.write("RF\n")
|
||||
if (
|
||||
femobj["Object"].RotationalModeX != "Free"
|
||||
or femobj["Object"].RotationalModeY != "Free"
|
||||
or femobj["Object"].RotationalModeZ != "Free"
|
||||
):
|
||||
f.write("*NODE PRINT, NSET={}_RotNode, TOTALS=ONLY\n".format(femobj["Object"].Name))
|
||||
f.write("RF\n")
|
||||
if ccxwriter.member.cons_fixed or ccxwriter.member.cons_displacement:
|
||||
f.write("\n")
|
||||
f.write("*OUTPUT, FREQUENCY={}".format(ccxwriter.solver_obj.OutputFrequency))
|
||||
|
||||
Reference in New Issue
Block a user