| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "FreeCAD FEM calculix constraint fixed" |
| | __author__ = "Bernd Hahnebach" |
| | __url__ = "https://www.freecad.org" |
| |
|
| |
|
| | def get_analysis_types(): |
| | return "all" |
| |
|
| |
|
| | def get_sets_name(): |
| | return "constraints_fixed_node_sets" |
| |
|
| |
|
| | def get_constraint_title(): |
| | return "Fixed Constraints" |
| |
|
| |
|
| | def get_before_write_meshdata_constraint(): |
| | return "" |
| |
|
| |
|
| | def get_after_write_meshdata_constraint(): |
| | return "" |
| |
|
| |
|
| | def get_before_write_constraint(): |
| | return "" |
| |
|
| |
|
| | def get_after_write_constraint(): |
| | return "" |
| |
|
| |
|
| | def write_meshdata_constraint(f, femobj, fix_obj, ccxwriter): |
| | if ccxwriter.femmesh.Volumes and ( |
| | len(ccxwriter.member.geos_shellthickness) > 0 or len(ccxwriter.member.geos_beamsection) > 0 |
| | ): |
| | if len(femobj["NodesSolid"]) > 0: |
| | f.write(f"*NSET,NSET={fix_obj.Name}Solid\n") |
| | for n in femobj["NodesSolid"]: |
| | f.write(f"{n},\n") |
| | if len(femobj["NodesFaceEdge"]) > 0: |
| | f.write(f"*NSET,NSET={fix_obj.Name}FaceEdge\n") |
| | for n in femobj["NodesFaceEdge"]: |
| | f.write(f"{n},\n") |
| | else: |
| | f.write("*NSET,NSET=" + fix_obj.Name + "\n") |
| | for n in femobj["Nodes"]: |
| | f.write(f"{n},\n") |
| |
|
| |
|
| | def write_constraint(f, femobj, fix_obj, ccxwriter): |
| |
|
| | |
| |
|
| | if ccxwriter.femmesh.Volumes and ( |
| | len(ccxwriter.member.geos_shellthickness) > 0 or len(ccxwriter.member.geos_beamsection) > 0 |
| | ): |
| | if len(femobj["NodesSolid"]) > 0: |
| | f.write("*BOUNDARY\n") |
| | f.write(fix_obj.Name + "Solid" + ",1\n") |
| | f.write(fix_obj.Name + "Solid" + ",2\n") |
| | f.write(fix_obj.Name + "Solid" + ",3\n") |
| | f.write("\n") |
| | if len(femobj["NodesFaceEdge"]) > 0: |
| | f.write("*BOUNDARY\n") |
| | f.write(fix_obj.Name + "FaceEdge" + ",1\n") |
| | f.write(fix_obj.Name + "FaceEdge" + ",2\n") |
| | f.write(fix_obj.Name + "FaceEdge" + ",3\n") |
| | f.write(fix_obj.Name + "FaceEdge" + ",4\n") |
| | f.write(fix_obj.Name + "FaceEdge" + ",5\n") |
| | f.write(fix_obj.Name + "FaceEdge" + ",6\n") |
| | f.write("\n") |
| | else: |
| | f.write("*BOUNDARY\n") |
| | f.write(fix_obj.Name + ",1\n") |
| | f.write(fix_obj.Name + ",2\n") |
| | f.write(fix_obj.Name + ",3\n") |
| | if ccxwriter.member.geos_beamsection or ccxwriter.member.geos_shellthickness: |
| | f.write(fix_obj.Name + ",4\n") |
| | f.write(fix_obj.Name + ",5\n") |
| | f.write(fix_obj.Name + ",6\n") |
| | f.write("\n") |
| |
|