This is a small script that will find intersection volumes between the selected shapes, for example, given two cubes and a sphere, this is the result:
It gives some transparency to the original shapes and also displays intersection volume at the report view.
The code is:
# JMG 2015 object_list = [] for obj in FreeCAD.Gui.Selection.getSelectionEx(): obj = obj.Object object_list.append( obj ) for n in range( len(object_list) ): object_A = object_list[n] for i in range( len(object_list) ): if i <= n: pass else: object_B = object_list[i] common = object_A.Shape.common( object_B.Shape ) if common.Volume > 0.0: FreeCAD.Console.PrintMessage( '-Intersection- ' + object_A.Name + ' with ' + object_B.Name + '\n') FreeCAD.Console.PrintMessage( 'Common volume: ' + str( common.Volume ) + '\n' + '\n' ) intersection_object = FreeCAD.ActiveDocument.addObject( 'Part::Feature', 'Intersection_Volume' ) intersection_object.Shape = common intersection_object.ViewObject.ShapeColor = ( 1.0,0.0,0.0,1.0 ) object_A.ViewObject.Transparency = 80 object_B.ViewObject.Transparency = 80
Thanks for sharing.
ReplyDelete