Crash with thickness tool

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
Posts: 3
Joined: Tue Mar 27, 2018 5:04 pm

Crash with thickness tool

Postby guillaumec » Tue Mar 27, 2018 5:16 pm

Hello all,

Thanks a lot for this very nice software.

I am trying to use freecad for 3d printing shell parts, that I model first as volumes before applying a thickness operation on it.
Alas, I get a lot of errors and crashes with this, even with simple shapes. I attach an example of a shape that doesn't work.

If I try to apply the thickness operation on the top face of this solid, it doesn't do anything, and if I try to make the thickness inward, the program crashes.

It sometimes seems to work fine, but I cannot see what would make a given shape work or not.

Best regards,

OS: Ubuntu 17.10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13463 (Git)
Build type: None
Branch: master
Hash: a4714ce778ea3ccbae12230b835ccb835c4305d4
Python version: 2.7.14
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: English/UnitedStates (en_US)
Screenshot from 2018-03-28 01-11-22.png
Screenshot from 2018-03-28 01-11-22.png (8.46 KiB) Viewed 853 times
(30.61 KiB) Downloaded 29 times
Posts: 20707
Joined: Tue Mar 17, 2015 9:14 am

Re: Crash with thickness tool

Postby chrisb » Tue Mar 27, 2018 5:44 pm

That's strange: Part->Thickness applied to the body works, while PartDesign->Thickness does not.
User avatar
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Crash with thickness tool

Postby NormandC » Wed Mar 28, 2018 1:56 am

Hello Guillaume,

Welcome to the forum.

Same issue with OCCT 7.2.0, and like for chrisb, it works with Part Thickness.

I do not get a hard crash, but FreeCAD hangs; I haven't waited more than a couple of minutes before closing FreeCAD myself.

EDIT: PartDesign Thickness works if I select the bottom face (Face7)...

OS: Ubuntu 16.04.4 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13464 (Git)
Build type: Unknown
Branch: master
Hash: d4f835ab39beff5d434f23ed7533b0dcc326c8e0
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.2.0
Locale: French/Canada (fr_CA)
User avatar
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Crash with thickness tool

Postby NormandC » Wed Mar 28, 2018 2:10 am

With this alternate method of constructing the shape, the PD Thickness succeeds with the top face selected, but only if thickness is set inward; the Intersection Join Type (which allows for sharp edges inside instead of filleted edges produced with Arc) does not work either.
(86.59 KiB) Downloaded 28 times
Posts: 3
Joined: Tue Mar 27, 2018 5:04 pm

Re: Crash with thickness tool

Postby guillaumec » Thu Mar 29, 2018 3:53 pm

Yes, I also find out that depending on how a shape is created, the thickness tool would work or not. If I had some idea of what cause the problem I could avoid dangerous constructions, but for now I end up trying anything until I get something that works, and it's a bit frustrating.
Posts: 350
Joined: Wed Sep 03, 2014 12:15 pm

Re: Crash with thickness tool

Postby herrdeh » Fri Jan 11, 2019 11:01 am

I've been suffering from crashes when applying thickness quite often. Need to deal with rounded plastic parts often, this seems to be difficult for Parts WB > thickness.

Just now I had a crash:

Code: Select all

Program received signal SIGSEGV, Segmentation fault.
#0  /lib/x86_64-linux-gnu/ [0x7fdb523ddf20]
#1  0x7fdb1039b3c4 in Geom2d_Curve::Value(double) const from /usr/lib/x86_64-linux-gnu/
#2  /usr/lib/x86_64-linux-gnu/ [0x7fdaf87ebe47]
#3  /usr/lib/x86_64-linux-gnu/ [0x7fdaf87f6272]
#4  0x7fdaf87ff10f in BRepOffset_Tool::ExtentFace(TopoDS_Face const&, NCollection_DataMap<TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher>&, NCollection_DataMap<TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher>&, TopAbs_State, double, TopoDS_Face&) from /usr/lib/x86_64-linux-gnu/
#5  0x7fdaf87a224a in BRepOffset_MakeOffset::ToContext(NCollection_DataMap<TopoDS_Shape, BRepOffset_Offset, TopTools_ShapeMapHasher>&) from /usr/lib/x86_64-linux-gnu/
#6  0x7fdaf87a385f in BRepOffset_MakeOffset::BuildOffsetByArc() from /usr/lib/x86_64-linux-gnu/
#7  0x7fdaf87b3905 in BRepOffset_MakeOffset::MakeOffsetShape() from /usr/lib/x86_64-linux-gnu/
#8  0x7fdaf87b402c in BRepOffset_MakeOffset::MakeThickSolid() from /usr/lib/x86_64-linux-gnu/
#9  0x7fdaf8744677 in BRepOffsetAPI_MakeThickSolid::MakeThickSolidByJoin(TopoDS_Shape const&, NCollection_List<TopoDS_Shape> const&, double, double, BRepOffset_Mode, bool, bool, GeomAbs_JoinType, bool) from /usr/lib/x86_64-linux-gnu/
#10  0x7fdb2fce3679 in Part::TopoShape::makeThickSolid(NCollection_List<TopoDS_Shape> const&, double, double, bool, bool, short, short) const from /usr/lib/freecad-daily/lib/
#11  0x7fdb2faf791a in Part::Thickness::execute() from /usr/lib/freecad-daily/lib/
#12  0x7fdb549a0fb5 in App::DocumentObject::recompute() from /usr/lib/freecad-daily/lib/
#13  0x7fdb2fb0054b in Part::Feature::recompute() from /usr/lib/freecad-daily/lib/
#14  0x7fdb549552a4 in App::Document::_recomputeFeature(App::DocumentObject*) from /usr/lib/freecad-daily/lib/
#15  0x7fdb5495cb0b in App::Document::recompute() from /usr/lib/freecad-daily/lib/
#16  0x7fdb549d59b2 in App::DocumentPy::recompute(_object*) from /usr/lib/freecad-daily/lib/
#17  0x7fdb549d5b17 in App::DocumentPy::staticCallback_recompute(_object*, _object*) from /usr/lib/freecad-daily/lib/
#18  /usr/lib/x86_64-linux-gnu/ [0x7fdb53fc71d0]
#19  /usr/lib/x86_64-linux-gnu/ [0x7fdb540f7278]
#20  /usr/lib/x86_64-linux-gnu/ [0x7fdb53fbf029]
#21  /usr/lib/x86_64-linux-gnu/ [0x7fdb54062546]
#22  0x7fdb54545896 in Base::InterpreterSingleton::runString[abi:cxx11](char const*) from /usr/lib/freecad-daily/lib/
#23  0x7fdb55140e83 in Gui::Command::doCommand(Gui::Command::DoCmd_Type, char const*, ...) from /usr/lib/freecad-daily/lib/
#24  0x7fdb55141ab6 in Gui::Command::updateActive() from /usr/lib/freecad-daily/lib/
#25  0x7fdaf5ee4f08 in CmdPartThickness::activated(int) from /usr/lib/freecad-daily/lib/
#26  0x7fdb551462bb in Gui::Command::invoke(int) from /usr/lib/freecad-daily/lib/
#27  0x7fdb52ecff70 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) from /usr/lib/x86_64-linux-gnu/
#28  0x7fdb533e1dc2 in QAction::triggered(bool) from /usr/lib/x86_64-linux-gnu/
#29  0x7fdb533e3113 in QAction::activate(QAction::ActionEvent) from /usr/lib/x86_64-linux-gnu/
#30  /usr/lib/x86_64-linux-gnu/ [0x7fdb537c3fa3]
#31  0x7fdb537c40f4 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) from /usr/lib/x86_64-linux-gnu/
#32  0x7fdb5388a0aa in QToolButton::mouseReleaseEvent(QMouseEvent*) from /usr/lib/x86_64-linux-gnu/
#33  0x7fdb5343e930 in QWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/
#34  0x7fdb533e803c in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/
#35  0x7fdb533ef136 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/
#36  0x7fdb551197a8 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-daily/lib/
#37  0x7fdb52ebb8ad in QCoreApplication::notifyInternal(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/
#38  0x7fdb533ee73d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) from /usr/lib/x86_64-linux-gnu/
#39  /usr/lib/x86_64-linux-gnu/ [0x7fdb5346c452]
#40  0x7fdb5346bce3 in QApplication::x11ProcessEvent(_XEvent*) from /usr/lib/x86_64-linux-gnu/
#41  /usr/lib/x86_64-linux-gnu/ [0x7fdb53495592]
#42  /usr/lib/x86_64-linux-gnu/ [0x7fdb4bc82387]
#43  /usr/lib/x86_64-linux-gnu/ [0x7fdb4bc825c0]
#44  /usr/lib/x86_64-linux-gnu/ [0x7fdb4bc8264c]
#45  0x7fdb52eec20e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/
#46  /usr/lib/x86_64-linux-gnu/ [0x7fdb53495666]
#47  0x7fdb52eba12f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/
#48  0x7fdb52eba495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/
#49  0x7fdb52ec0459 in QCoreApplication::exec() from /usr/lib/x86_64-linux-gnu/
#50  0x7fdb550a5c5a in Gui::Application::runApplication() from /usr/lib/freecad-daily/lib/
#51  freecad-daily(main+0x6db) [0x56119b4ec41b]
#52  /lib/x86_64-linux-gnu/ [0x7fdb523c0b97]
#53  freecad-daily(_start+0x2a) [0x56119b4ed5ca]
Does it make sense to file a bug report - or is it likely to get the standard answer "geometry kernel" ?


OS: Ubuntu 18.04.1 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.15481 (Git)
Build type: Release
Branch: master
Hash: 763b5c362fe4b98dca858f86f5d1353075224651
Python version: 2.7.15rc1
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: German/Germany (de_DE)
(456.34 KiB) Downloaded 6 times
User avatar
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Crash with thickness tool

Postby NormandC » Sun Jan 13, 2019 11:19 pm

If you look at the log, as you guessed the error clearly comes from the OCC kernel. is part of OCC.

The problem is, this should not make FreeCAD crash. But I don't know if it's possible for FreeCAD to catch the segmentation fault and prevent the crash. This problem is specific to Linux, on Windows it does not lead to a crash.