View Issue Details

IDProjectCategoryView StatusLast Update
0003626FreeCADBugpublic2021-03-28 15:34
Reporteregil Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version0.18 
Target Version0.19Fixed in Version0.19 
Summary0003626: OpenSCAD causes Multifusion failed with some empty translates
DescriptionHaving more than one translates that ends up in an "if (false)" seems to create a "MultiFusion failed" exception. The issue was found in a rather complex Openscad design, but I believe I have been able to find a simple way to reproduce.
Steps To ReproduceReproduce by opening the OpenSCAD workbench and add the following:

translate([1,0,0]) if (0) cube();
translate([2,0,0]) if (0) cube();
translate([3,0,0]) if (1) cube();

Press "Add". Instead of a single cube, as expected, nothing appears and the console says:
      Exception: MultiFusion failed

In the real world, the if statements were complex, but the issue is the same with these trivial cases. The absolutely smallest construct I can find that triggers the same issue is:

translate([1,0,0]) if (0);
translate([2,0,0]) if (0);
cube();

With only one empty translate, it is OK. The issue is the same also when importing OpenSCAD files.
Additional InformationOS: Ubuntu 16.04.5 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.14908 (Git)
Build type: Release
Branch: master
Hash: ebec4cd5e25aff48f4d72714a60a007d59509f2e
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
TagsOpenSCAD
FreeCAD Information

Activities

Kunda1

2018-10-09 12:18

administrator   ~0011989

Last edited: 2018-10-09 12:19

Please open a thread on the forum before posting bugs per our guidelines. Please do that now and make sure to link this ticket to the thread and vice-versa.

egil

2018-10-09 18:07

reporter   ~0011990

I've now started a thread that is linked back to this bug on the forum.

(My impression from the guidelines was only to start a thread if one is not sure it is a bug, or if it is a feature request. Pretty convinced this one is a genuine bug, and that it is narrowed down pretty well.)

keithsloan52

2018-10-15 16:02

developer   ~0012032

I have taken a quick look at this problem. I first created a couple of test scad files based on the reported bug. These do indeed produce the error Exception (Mon Oct 15 16:48:31 2018): MultiFusion failed with

FreeCAD 0.17
OS: Mac OS X
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13519 (Git)
Build type: Release
Branch: (HEAD detached at 1a8b868)
Hash: 1a8b868018f45ea486c0023fdbfeb06febc1fb89
Python version: 2.7.14
Qt version: 5.10.1
Coin version: 4.0.0a
OCC version: 7.2.0
Locale: English/UnitedKingdom (en_GB)

But they do not fail with FreeCAD 0.16
i.e.
OS: Mac OS X
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6706 (Git)
Build type: Release
Branch: tag: 0.16.6706
Hash: f86a4e411ff7848dea98d7242f43b7774bee8fa0
Python version: 2.7.11
Qt version: 4.8.7
Coin version: 3.1.3
OCC version: 6.8.0.oce-0.17

I don't think there is any related difference between importCSG.py in FreeCAD 0.16 and FreeCAD 0.17 so this points to a regression in FreeCAD 0.17 in the Part::MultiFuse function. i.e. the error is being generated when importCSG.py tries to execute myfuse = doc.addObject('Part::MultiFuse',name)
testTrans1.scad (102 bytes)   
translate([1,0,0]) if (0) cube();
translate([2,0,0]) if (0) cube();
translate([3,0,0]) if (1) cube();
testTrans1.scad (102 bytes)   
testTrans2.scad (62 bytes)   
translate([1,0,0]) if (0);
translate([2,0,0]) if (0);
cube();
testTrans2.scad (62 bytes)   

Kunda1

2018-10-15 16:06

administrator   ~0012033

Thanks @keithsloan52 confirmed and setting 0.18 target.

Kunda1

2019-09-05 20:44

administrator   ~0013542

bumping to 0.19

chennes

2021-02-07 21:14

administrator   ~0015300

I just tested this and the problem seems resolved: the behavior is correct in
OS: Windows 10 Version 2004
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.23971 (Git)
Build type: Debug
Branch: master
Hash: a3fb41502b079a86175e6a414d82956a48bab4e2
Python version: 3.8.6+
Qt version: 5.15.1
Coin version: 4.0.1
OCC version: 7.5.0
Locale: English/United States (en_US)

Kunda1

2021-02-07 21:37

administrator   ~0015302

@egil please retest

egil

2021-02-08 09:35

reporter   ~0015308

Now works entirely fine for me on version 0.19 release 2021/02/01 13:28:00.

Thanks, much appreciated!

egil

2021-02-08 09:38

reporter   ~0015309

For completeness:

OS: Ubuntu 18.04.5 LTS (ubuntu:GNOME/ubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.
Build type: Release
Branch: unknown
Hash: 5e07d708db9c17b86ab26b5955e7c819803e77b3
Python version: 3.6.9
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)

Kunda1

2021-03-28 15:34

administrator   ~0015565

Issue seems resolved in v0.19. Closing

Issue History

Date Modified Username Field Change
2018-10-09 10:56 egil New Issue
2018-10-09 10:56 egil Tag Attached: OpenSCAD
2018-10-09 12:18 Kunda1 Status new => feedback
2018-10-09 12:18 Kunda1 Note Added: 0011989
2018-10-09 12:18 Kunda1 Note View State: 0011989: private
2018-10-09 12:19 Kunda1 Note Edited: 0011989
2018-10-09 12:19 Kunda1 Note View State: 0011989: public
2018-10-09 18:07 egil Note Added: 0011990
2018-10-09 18:07 egil Status feedback => new
2018-10-15 16:02 keithsloan52 File Added: testTrans1.scad
2018-10-15 16:02 keithsloan52 File Added: testTrans2.scad
2018-10-15 16:02 keithsloan52 Note Added: 0012032
2018-10-15 16:06 Kunda1 Status new => confirmed
2018-10-15 16:06 Kunda1 Target Version => 0.18
2018-10-15 16:06 Kunda1 Note Added: 0012033
2019-09-05 20:44 Kunda1 Note Added: 0013542
2019-09-05 20:44 Kunda1 Target Version 0.18 => 0.19
2021-02-06 06:50 abdullah Target Version => 0.20
2021-02-07 21:14 chennes Note Added: 0015300
2021-02-07 21:37 Kunda1 Note Added: 0015302
2021-02-08 09:35 egil Note Added: 0015308
2021-02-08 09:38 egil Note Added: 0015309
2021-03-28 15:34 Kunda1 Status confirmed => closed
2021-03-28 15:34 Kunda1 Resolution open => fixed
2021-03-28 15:34 Kunda1 Fixed in Version => 0.19
2021-03-28 15:34 Kunda1 Note Added: 0015565
2021-03-28 15:34 Kunda1 Target Version 0.20 => 0.19