| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "FreeCAD FEM calculix constraint transform" |
| | __author__ = "Bernd Hahnebach" |
| | __url__ = "https://www.freecad.org" |
| |
|
| |
|
| | import FreeCAD |
| |
|
| | from femtools import geomtools |
| |
|
| |
|
| | def get_analysis_types(): |
| | return "all" |
| |
|
| |
|
| | def get_sets_name(): |
| | return "constraints_transform_node_sets" |
| |
|
| |
|
| | def get_constraint_title(): |
| | return "Transform 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, trans_obj, ccxwriter): |
| | if trans_obj.TransformType == "Rectangular": |
| | f.write(f"*NSET,NSET=Rect{trans_obj.Name}\n") |
| | elif trans_obj.TransformType == "Cylindrical": |
| | f.write(f"*NSET,NSET=Cylin{trans_obj.Name}\n") |
| | for n in femobj["Nodes"]: |
| | f.write(f"{n},\n") |
| |
|
| |
|
| | def write_constraint(f, femobj, trans_obj, ccxwriter): |
| |
|
| | |
| |
|
| | trans_name = "" |
| | trans_type = "" |
| | if trans_obj.TransformType == "Rectangular": |
| | trans_name = "Rect" |
| | trans_type = "R" |
| | x = trans_obj.Rotation * FreeCAD.Vector(1, 0, 0) |
| | y = trans_obj.Rotation * FreeCAD.Vector(0, 1, 0) |
| | coords = list(x) + list(y) |
| | elif trans_obj.TransformType == "Cylindrical": |
| | trans_name = "Cylin" |
| | trans_type = "C" |
| | base = trans_obj.BasePoint |
| | axis = trans_obj.Axis |
| | coords = list(base) + list(base + axis) |
| | f.write( |
| | "*TRANSFORM, NSET={}{}, TYPE={}\n".format( |
| | trans_name, |
| | trans_obj.Name, |
| | trans_type, |
| | ) |
| | ) |
| | f.write( |
| | "{:.13G},{:.13G},{:.13G},{:.13G},{:.13G},{:.13G}\n".format( |
| | coords[0], |
| | coords[1], |
| | coords[2], |
| | coords[3], |
| | coords[4], |
| | coords[5], |
| | ) |
| | ) |
| |
|