diff --git a/src/Mod/Fem/femexamples/contact_shell_shell.py b/src/Mod/Fem/femexamples/contact_shell_shell.py index ca82eaed4a..fba391c07e 100644 --- a/src/Mod/Fem/femexamples/contact_shell_shell.py +++ b/src/Mod/Fem/femexamples/contact_shell_shell.py @@ -30,6 +30,7 @@ import FreeCAD import ObjectsFem import Fem import Part +import BOPTools.SplitFeatures mesh_name = "Mesh" # needs to be Mesh to work with unit tests @@ -55,11 +56,14 @@ def setup(doc=None, solvertype="ccxtools"): tube_length = 500 sh_lower_circle = Part.Wire(Part.makeCircle(tube_radius)) sh_lower_tube = sh_lower_circle.extrude(FreeCAD.Vector(0, 0, tube_length)) + sh_lower_tube.reverse() lower_tube = doc.addObject("Part::Feature", "Lower_tube") lower_tube.Shape = sh_lower_tube + sh_upper_circle = Part.Wire(Part.makeCircle(tube_radius)) sh_upper_tube = sh_upper_circle.extrude(FreeCAD.Vector(0, 0, tube_length)) + sh_upper_tube.reverse() upper_tube = doc.addObject("Part::Feature", "Upper_tube") upper_tube.Shape = sh_upper_tube upper_tube.Placement = FreeCAD.Placement( @@ -77,6 +81,14 @@ def setup(doc=None, solvertype="ccxtools"): force_point.ViewObject.PointSize = 10.0 force_point.ViewObject.PointColor = (1.0, 0.0, 0.0) + + BooleanFrag = BOPTools.SplitFeatures.makeBooleanFragments(name= 'BooleanFragments') + BooleanFrag.Objects = [upper_tube, force_point] + + compound = doc.addObject("Part::Compound", "Compound") + compound.Links = [BooleanFrag, lower_tube,] + + # line for load direction sh_load_line = Part.makeLine(v_force_pt, FreeCAD.Vector(0, 150, 475)) load_line = doc.addObject("Part::Feature", "Load_direction_line") @@ -113,6 +125,7 @@ def setup(doc=None, solvertype="ccxtools"): solver_object.ThermoMechSteadyState = False solver_object.MatrixSolverType = "default" solver_object.IterationsControlParameterTimeUse = False + solver_object.SplitInputWriter = False # shell thickness analysis.addObject(ObjectsFem.makeElementGeometry2D(doc, 0.5, 'ShellThickness'))