FEM: constraint contact ccx writer, use name to identify constr data in writer file
This commit is contained in:
@@ -591,22 +591,20 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f.write("\n***********************************************************\n")
|
||||
f.write("** Surfaces for contact constraint\n")
|
||||
f.write("** written by {} function\n".format(sys._getframe().f_code.co_name))
|
||||
obj = 0
|
||||
for femobj in self.contact_objects:
|
||||
# femobj --> dict, FreeCAD document object is femobj["Object"]
|
||||
contact_obj = femobj["Object"]
|
||||
f.write("** " + contact_obj.Label + "\n")
|
||||
cnt = 0
|
||||
obj = obj + 1
|
||||
for o, elem_tup in contact_obj.References:
|
||||
for elem in elem_tup:
|
||||
ref_shape = o.Shape.getElement(elem)
|
||||
cnt = cnt + 1
|
||||
if ref_shape.ShapeType == "Face":
|
||||
if cnt == 1:
|
||||
name = "DEP" + str(obj)
|
||||
name = "DEP" + contact_obj.Name
|
||||
else:
|
||||
name = "IND" + str(obj)
|
||||
name = "IND" + contact_obj.Name
|
||||
f.write("*SURFACE, NAME=" + name + "\n")
|
||||
|
||||
v = self.mesh_object.FemMesh.getccxVolumesByFace(ref_shape)
|
||||
@@ -1044,17 +1042,18 @@ class FemInputWriterCcx(writerbase.FemInputWriter):
|
||||
f.write("\n***********************************************************\n")
|
||||
f.write("** Contact Constraints\n")
|
||||
f.write("** written by {} function\n".format(sys._getframe().f_code.co_name))
|
||||
obj = 0
|
||||
for femobj in self.contact_objects:
|
||||
# femobj --> dict, FreeCAD document object is femobj["Object"]
|
||||
obj = obj + 1
|
||||
contact_obj = femobj["Object"]
|
||||
f.write("** " + contact_obj.Label + "\n")
|
||||
f.write("*CONTACT PAIR, INTERACTION=INT{},TYPE=SURFACE TO SURFACE\n".format(obj))
|
||||
ind_surf = "IND" + str(obj)
|
||||
dep_surf = "DEP" + str(obj)
|
||||
f.write(
|
||||
"*CONTACT PAIR, INTERACTION=INT{},TYPE=SURFACE TO SURFACE\n"
|
||||
.format(contact_obj.Name)
|
||||
)
|
||||
ind_surf = "IND" + contact_obj.Name
|
||||
dep_surf = "DEP" + contact_obj.Name
|
||||
f.write(dep_surf + "," + ind_surf + "\n")
|
||||
f.write("*SURFACE INTERACTION, NAME=INT{}\n".format(obj))
|
||||
f.write("*SURFACE INTERACTION, NAME=INT{}\n".format(contact_obj.Name))
|
||||
f.write("*SURFACE BEHAVIOR,PRESSURE-OVERCLOSURE=LINEAR\n")
|
||||
slope = contact_obj.Slope
|
||||
f.write(str(slope) + " \n")
|
||||
|
||||
Reference in New Issue
Block a user