View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002348 | PartDesign | Bug | public | 2015-11-29 22:30 | 2016-01-21 15:54 |
| Reporter | Almisuifre | Assigned To | jmaustpc | ||
| Priority | high | Severity | major | Reproducibility | always |
| Status | closed | Resolution | no change required | ||
| Platform | Linux | OS | Ubuntu | OS Version | 12.04.5 LTS |
| Product Version | 0.15 | ||||
| Summary | 0002348: Boolean operation performed partially | ||||
| Description | In the example provided. Applying a difference between two shapes that are semicircular. It means much the image is missing holes. | ||||
| Steps To Reproduce | 1 / Make form 2 / Apply the revolution of 180 ° 3 / Create a new sketch with a form 4 / Repeat the form of 180 ° with the polar array tool 5 / Do Boolean operation | ||||
| Additional Information | >>> App.newDocument("Sans nom") >>> App.setActiveDocument("Sans_nom") >>> App.ActiveDocument=App.getDocument("Sans_nom") >>> Gui.ActiveDocument=Gui.getDocument("Sans_nom") >>> App.activeDocument().addObject('Sketcher::SketchObject','Sketch') >>> App.activeDocument().Sketch.Placement = App.Placement(App.Vector(0.000000,0.000000,0.000000),App.Rotation(-0.707107,0.000000,0.000000,-0.707107)) >>> Gui.activeDocument().activeView().setCamera('#Inventor V2.1 ascii \n OrthographicCamera {\n viewportMapping ADJUST_CAMERA\n position 0 -87 0 \n orientation -1 0 0 4.712389\n nearDistance -112.88701\n farDistance 287.28702\n aspectRatio 1\n focalDistance 87\n height 143.52005\n\n}') >>> Gui.activeDocument().setEdit('Sketch') >>> geoList = [] >>> geoList.append(Part.ArcOfCircle(Part.Circle(App.Vector(27.974504,26.898743,0),App.Vector(0,0,1),9.439571),1.570796,-1.570796)) >>> geoList.append(Part.ArcOfCircle(Part.Circle(App.Vector(57.641731,26.898743,0),App.Vector(0,0,1),9.439571),-1.570796,1.570796)) >>> geoList.append(Part.Line(App.Vector(27.974504,17.459171,0),App.Vector(57.641731,17.459171,0))) >>> geoList.append(Part.Line(App.Vector(27.974504,36.338314,0),App.Vector(57.641731,36.338314,0))) >>> App.ActiveDocument.Sketch.addGeometry(geoList,False) >>> conList = [] >>> conList.append(Sketcher.Constraint('Tangent',0,1,3,1)) >>> conList.append(Sketcher.Constraint('Tangent',0,2,2,1)) >>> conList.append(Sketcher.Constraint('Tangent',2,2,1,1)) >>> conList.append(Sketcher.Constraint('Tangent',3,2,1,2)) >>> conList.append(Sketcher.Constraint('Horizontal',2)) >>> conList.append(Sketcher.Constraint('Equal',0,1)) >>> App.ActiveDocument.Sketch.addConstraint(conList) >>> >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('PointOnObject',0,3,-1)) >>> App.ActiveDocument.Sketch.movePoint(0,0,App.Vector(8.324779,3.010845,0),0) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch.movePoint(3,0,App.Vector(32.556896,0.577930,0),1) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('Radius',0,9.916572)) >>> App.ActiveDocument.Sketch.setDatum(7,App.Units.Quantity('5.000000 mm')) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('DistanceX',0,3,1,3,40.010269)) >>> App.ActiveDocument.Sketch.setDatum(8,App.Units.Quantity('20.000000 mm')) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch.addConstraint(Sketcher.Constraint('DistanceX',0,3,64.643451)) >>> App.ActiveDocument.Sketch.setDatum(9,App.Units.Quantity('30.000000 mm')) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.recompute() >>> Gui.getDocument('Sans_nom').resetEdit() >>> App.getDocument('Sans_nom').recompute() >>> App.activeDocument().addObject("PartDesign::Revolution","Revolution") >>> App.activeDocument().Revolution.Sketch = App.activeDocument().Sketch >>> App.activeDocument().Revolution.ReferenceAxis = (App.activeDocument().Sketch,['V_Axis']) >>> App.activeDocument().Revolution.Angle = 360.0 >>> App.activeDocument().Revolution.Reversed = 1 >>> App.ActiveDocument.recompute() >>> Gui.activeDocument().hide("Sketch") >>> Gui.activeDocument().setEdit('Revolution') >>> App.ActiveDocument.Revolution.Angle = 180.000000 >>> App.ActiveDocument.Revolution.ReferenceAxis = (App.ActiveDocument.Sketch,['V_Axis']) >>> App.ActiveDocument.Revolution.Midplane = 0 >>> App.ActiveDocument.Revolution.Reversed = 1 >>> App.ActiveDocument.recompute() >>> Gui.activeDocument().hide("Sketch") >>> Gui.activeDocument().resetEdit() >>> App.activeDocument().addObject('Sketcher::SketchObject','Sketch001') >>> App.activeDocument().Sketch001.Support = (App.ActiveDocument.Revolution,["Face4"]) >>> App.activeDocument().recompute() >>> Gui.activeDocument().setEdit('Sketch001') >>> geoList = [] >>> geoList.append(Part.ArcOfCircle(Part.Circle(App.Vector(34.643707,5.376991,0),App.Vector(0,0,1),1.268705),1.570796,-1.570796)) >>> geoList.append(Part.ArcOfCircle(Part.Circle(App.Vector(42.678844,5.376991,0),App.Vector(0,0,1),1.268705),-1.570796,1.570796)) >>> geoList.append(Part.Line(App.Vector(34.643707,4.108286,0),App.Vector(42.678844,4.108286,0))) >>> geoList.append(Part.Line(App.Vector(34.643707,6.645697,0),App.Vector(42.678844,6.645697,0))) >>> App.ActiveDocument.Sketch001.addGeometry(geoList,False) >>> conList = [] >>> conList.append(Sketcher.Constraint('Tangent',0,1,3,1)) >>> conList.append(Sketcher.Constraint('Tangent',0,2,2,1)) >>> conList.append(Sketcher.Constraint('Tangent',2,2,1,1)) >>> conList.append(Sketcher.Constraint('Tangent',3,2,1,2)) >>> conList.append(Sketcher.Constraint('Horizontal',2)) >>> conList.append(Sketcher.Constraint('Equal',0,1)) >>> App.ActiveDocument.Sketch001.addConstraint(conList) >>> >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch001.addConstraint(Sketcher.Constraint('PointOnObject',0,3,-1)) >>> App.ActiveDocument.Sketch001.movePoint(1,0,App.Vector(45.556278,0.615919,0),0) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch001.addConstraint(Sketcher.Constraint('Radius',1,2.963252)) >>> App.ActiveDocument.Sketch001.setDatum(7,App.Units.Quantity('3.000000 mm')) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch001.movePoint(1,3,App.Vector(46.933941,0.000000,0),0) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch001.movePoint(0,3,App.Vector(33.109829,-0.239180,0),0) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch001.addConstraint(Sketcher.Constraint('DistanceX',0,3,33.109829)) >>> App.ActiveDocument.Sketch001.setDatum(8,App.Units.Quantity('33.000000 mm')) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.Sketch001.addConstraint(Sketcher.Constraint('DistanceX',0,3,1,3,13.933941)) >>> App.ActiveDocument.Sketch001.setDatum(9,App.Units.Quantity('14.000000 mm')) >>> App.ActiveDocument.recompute() >>> App.ActiveDocument.recompute() >>> Gui.getDocument('Sans_nom').resetEdit() >>> App.getDocument('Sans_nom').recompute() >>> App.activeDocument().addObject("PartDesign::Pocket","Pocket") >>> App.activeDocument().Pocket.Sketch = App.activeDocument().Sketch001 >>> App.activeDocument().Pocket.Length = 5.0 >>> App.ActiveDocument.recompute() >>> Gui.activeDocument().hide("Sketch001") >>> Gui.activeDocument().hide("Revolution") >>> Gui.activeDocument().setEdit('Pocket') >>> Gui.ActiveDocument.Pocket.ShapeColor=Gui.ActiveDocument.Revolution.ShapeColor >>> Gui.ActiveDocument.Pocket.LineColor=Gui.ActiveDocument.Revolution.LineColor >>> Gui.ActiveDocument.Pocket.PointColor=Gui.ActiveDocument.Revolution.PointColor >>> App.ActiveDocument.Pocket.Length = 5.000000 >>> App.ActiveDocument.Pocket.Type = 0 >>> App.ActiveDocument.Pocket.UpToFace = None >>> App.ActiveDocument.recompute() >>> Gui.activeDocument().resetEdit() >>> App.activeDocument().addObject("PartDesign::PolarPattern","PolarPattern") >>> App.ActiveDocument.recompute() >>> App.activeDocument().PolarPattern.Originals = [App.activeDocument().Pocket,] >>> App.activeDocument().PolarPattern.Axis = (App.activeDocument().Sketch001, ["N_Axis"]) >>> App.activeDocument().PolarPattern.Angle = 360 >>> App.activeDocument().PolarPattern.Occurrences = 2 >>> Gui.activeDocument().Pocket.Visibility=False >>> Gui.activeDocument().setEdit('PolarPattern') >>> Gui.ActiveDocument.PolarPattern.ShapeColor=Gui.ActiveDocument.Pocket.ShapeColor >>> Gui.ActiveDocument.PolarPattern.DisplayMode=Gui.ActiveDocument.Pocket.DisplayMode >>> Gui.activeDocument().resetEdit() >>> App.getDocument("Sans_nom").removeObject("Pocket") >>> App.ActiveDocument.Sketch001.Placement = App.Placement(App.Vector(0.000000,0.000000,0.000000),App.Rotation(0.000000,0.000000,0.000000,1.000000)) >>> Gui.ActiveDocument.setEdit('Sketch001') >>> Gui.getDocument('Sans_nom').resetEdit() >>> App.getDocument('Sans_nom').recompute() >>> App.getDocument("Sans_nom").Sketch001.Placement=App.Placement(App.Vector(0,0,5), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0)) >>> App.getDocument("Sans_nom").Sketch001.Placement=App.Placement(App.Vector(0,0,5), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0)) >>> App.activeDocument().addObject("PartDesign::Pad","Pad") >>> App.activeDocument().Pad.Sketch = App.activeDocument().Sketch001 >>> App.activeDocument().Pad.Length = 10.0 >>> App.ActiveDocument.recompute() >>> Gui.activeDocument().hide("Sketch001") >>> Gui.activeDocument().setEdit('Pad',0) >>> App.ActiveDocument.Pad.Length = 5.000000 >>> App.ActiveDocument.Pad.Reversed = 0 >>> App.ActiveDocument.Pad.Midplane = 0 >>> App.ActiveDocument.Pad.Length2 = 100.000000 >>> App.ActiveDocument.Pad.Type = 0 >>> App.ActiveDocument.Pad.UpToFace = None >>> App.ActiveDocument.recompute() >>> Gui.activeDocument().resetEdit() >>> App.getDocument("Sans_nom").Sketch001.Placement=App.Placement(App.Vector(0,0,0), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0)) >>> App.getDocument("Sans_nom").Sketch001.Placement=App.Placement(App.Vector(0,0,0), App.Rotation(App.Vector(0,0,1),0), App.Vector(0,0,0)) >>> Gui.activateWorkbench("DraftWorkbench") >>> import Draft >>> Draft.makeArray(FreeCAD.ActiveDocument.Pad,FreeCAD.Vector(1,0,0),FreeCAD.Vector(0,1,0),2,2) >>> FreeCAD.ActiveDocument.recompute() >>> FreeCAD.getDocument("Sans_nom").getObject("Array").ArrayType = "polar" >>> FreeCAD.getDocument("Sans_nom").getObject("Array").Angle = 1.00 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").Angle = 18.00 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").Angle = 180.00 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 2 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 3 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 4 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 5 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").Angle = -180.00 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 1 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 10 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 2 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 20 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 1 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 16 >>> Gui.activateWorkbench("PartDesignWorkbench") >>> App.activeDocument().addObject("Part::Cut","Cut") >>> App.activeDocument().Cut.Base = App.activeDocument().Array >>> App.activeDocument().Cut.Tool = App.activeDocument().Revolution >>> Gui.activeDocument().Array.Visibility=False >>> Gui.activeDocument().Revolution.Visibility=False >>> Gui.ActiveDocument.Cut.ShapeColor=Gui.ActiveDocument.Array.ShapeColor >>> Gui.ActiveDocument.Cut.DisplayMode=Gui.ActiveDocument.Array.DisplayMode >>> App.ActiveDocument.recompute() >>> Draft.makeArray(FreeCAD.ActiveDocument.Array,FreeCAD.Vector(1,0,0),FreeCAD.Vector(0,1,0),2,2) >>> FreeCAD.ActiveDocument.recompute() >>> Gui.getDocument("Sans_nom").getObject("Array").Visibility=True >>> Gui.getDocument("Sans_nom").getObject("Revolution").Visibility=True >>> App.activeDocument().addObject("Part::Cut","Cut") >>> App.activeDocument().Cut.Base = App.activeDocument().Array >>> App.activeDocument().Cut.Tool = App.activeDocument().Revolution >>> Gui.activeDocument().hide("Array") >>> Gui.activeDocument().hide("Revolution") >>> Gui.ActiveDocument.Cut.ShapeColor=Gui.ActiveDocument.Array.ShapeColor >>> Gui.ActiveDocument.Cut.DisplayMode=Gui.ActiveDocument.Array.DisplayMode >>> App.getDocument("Sans_nom").removeObject("Cut") >>> App.activeDocument().addObject("Part::Cut","Cut") >>> App.activeDocument().Cut.Base = App.activeDocument().Revolution >>> App.activeDocument().Cut.Tool = App.activeDocument().Array >>> Gui.activeDocument().hide("Revolution") >>> Gui.activeDocument().hide("Array") >>> Gui.ActiveDocument.Cut.ShapeColor=Gui.ActiveDocument.Revolution.ShapeColor >>> Gui.ActiveDocument.Cut.DisplayMode=Gui.ActiveDocument.Revolution.DisplayMode >>> App.getDocument("Sans_nom").removeObject("Cut") >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 1 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 14 >>> App.activeDocument().addObject("Part::Cut","Cut") >>> App.activeDocument().Cut.Base = App.activeDocument().Revolution >>> App.activeDocument().Cut.Tool = App.activeDocument().Array >>> Gui.activeDocument().hide("Revolution") >>> Gui.activeDocument().hide("Array") >>> Gui.ActiveDocument.Cut.ShapeColor=Gui.ActiveDocument.Revolution.ShapeColor >>> Gui.ActiveDocument.Cut.DisplayMode=Gui.ActiveDocument.Revolution.DisplayMode >>> Gui.activeDocument().setEdit('Pad',0) >>> App.ActiveDocument.Pad.Length = 6.000000 >>> App.ActiveDocument.Pad.Reversed = 0 >>> App.ActiveDocument.Pad.Midplane = 0 >>> App.ActiveDocument.Pad.Length2 = 100.000000 >>> App.ActiveDocument.Pad.Type = 0 >>> App.ActiveDocument.Pad.UpToFace = None >>> App.ActiveDocument.recompute() >>> Gui.activeDocument().resetEdit() >>> App.getDocument("Sans_nom").removeObject("Cut") >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 13 >>> FreeCAD.getDocument("Sans_nom").getObject("Array").NumberPolar = 12 >>> App.activeDocument().addObject("Part::Cut","Cut") >>> App.activeDocument().Cut.Base = App.activeDocument().Revolution >>> App.activeDocument().Cut.Tool = App.activeDocument().Array >>> Gui.activeDocument().hide("Revolution") >>> Gui.activeDocument().hide("Array") >>> Gui.ActiveDocument.Cut.ShapeColor=Gui.ActiveDocument.Revolution.ShapeColor >>> Gui.ActiveDocument.Cut.DisplayMode=Gui.ActiveDocument.Revolution.DisplayMode >>> Gui.SendMsgToActiveView("SaveAs") >>> App.getDocument("Sans_nom").saveAs("/home/alexandre/Bureau/FreeCAD/Bug-Boolean/Bug-Boolean.fcstd") >>> Not able to delete a constraint on point with the given index: 3 Not able to delete a constraint on point with the given index: 1 Traceback (most recent call last): File "<string>", line 1, in <module> <type 'exceptions.IOError'>: The project '/home/alexandre/Documents/Associations/FabLab19/Imprimante 3D/Mecanique/Montage-Assemblage/End-stop-Z.fcstd' is already open! Drag curve: Not able to move point with the id and type: (4, 0) Draft workbench activated Traceback (most recent call last): File "/usr/lib/freecad/Mod/Draft/Draft.py", line 4746, in execute sh = self.polarArray(obj.Base.Shape,obj.Center,obj.Angle.Value,obj.NumberPolar,obj.Axis,av,fuse) File "/usr/lib/freecad/Mod/Draft/Draft.py", line 4787, in polarArray fraction = float(angle)/(num-1) <type 'exceptions.ZeroDivisionError'>: float division by zero Draft workbench deactivated | ||||
| Tags | No tags attached. | ||||
| FreeCAD Information | |||||
|
|
|
|
|
The image : http://www.pasteall.org/pic/96000 |
|
|
Thank you for taking the time to create this ticket. Please in the future always discuss your issue on the Help forum before you create a bug ticket so as to decrease the quantity of tickets and improve their quality. Something has gone wrong for you but it works perfectly for me when I force a recompute in my version of FreeCAD below. You have not posted your "Help menu...About FreeCAD" data so all I can do is guess. I suspect your FreeCAD version is obsolete or has some other problems. Please feel free to post this in the Help forum. I suspect all you have to do is install FreeCAD from the "Daily" PPA (not the "stable" PPA) and your problems will go away. I will close this ticket but we can reopen it later if we need to. OS: Ubuntu 12.04.5 LTS Word size of OS: 64-bit Word size of FreeCAD: 64-bit Version: 0.16.6205 (Git) Build type: Debug Branch: master Hash: 89cb2479232ea949b368e849d90fd6ce563154c1 Python version: 2.7.3 Qt version: 4.8.2 Coin version: 3.1.3 OCC version: 6.8.0.oce-0.18-dev |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2015-11-29 22:30 | Almisuifre | New Issue | |
| 2015-11-29 22:30 | Almisuifre | File Added: Bug-Boolean.fcstd | |
| 2015-11-29 22:31 | Almisuifre | Note Added: 0006566 | |
| 2016-01-21 15:53 | jmaustpc | Note Added: 0006744 | |
| 2016-01-21 15:54 | jmaustpc | Status | new => closed |
| 2016-01-21 15:54 | jmaustpc | Assigned To | => jmaustpc |
| 2016-01-21 15:54 | jmaustpc | Resolution | open => no change required |
FreeCAD