Path toolbench crashing but am I even doing the right thing

Here's the place for discussion related to CAM/CNC and the development of the Path module.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
charlieb
Posts: 4
Joined: Thu Nov 12, 2020 4:19 pm

Path toolbench crashing but am I even doing the right thing

Post by charlieb »

OS: Arch Linux (GNOME/gnome)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22670 (Git) AppImage
Build type: Release
Branch: master
Hash: 12155f4aab09047c5697db0c1b3cf93b02edda03
Python version: 3.8.6
Qt version: 5.12.9
Coin version: 4.0.0
OCC version: 7.4.0
Locale: English/United States (en_US)

I'm trying get my little 3018 cnc to cut out a hex grid (remove the hexes leave the mesh behind) as in the attached. When I try to generate a pocket toolpath FreeCAD crashes but is a pocket even the right thing to do in this case?

The crash output is as follows:

Code: Select all


charlieb@i5 bin]$ ./FreeCAD_0.19-22670-Linux-Conda_glibc2.12-x86_64.AppImage              
FreeCAD 0.19, Libs: 0.19R22670 (Git)                                                                                                                                                                                 
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2020                                                                                                                                                 
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.                                                                                                                                 
FreeCAD wouldn't be possible without FreeCAD community.                                                                                                                                                              
  #####                 ####  ###   ####                                                                                                                                                                             
  #                    #      # #   #   #                                                                                                                                                                            
  #     ##  #### ####  #     #   #  #   #                                                                                                                                                                              ####  # # #  # #  #  #     #####  #   # 
  #     #   #### ####  #    #     # #   #                                                                 
  #     #   #    #     #    #     # #   #  ##  ##  ##                                      
  #     #   #### ####   ### #     # ####   ##  ##  ##                                                                                                                                                                
                                                                                                                                                                                                                     
Reading failed from embedded file: PartShape7.bin (0 bytes, 2 bytes compressed)                                                                                                                                      
Reading failed from embedded file: PartShape8.bin (0 bytes, 2 bytes compressed)                                                                                                                                      
^N[^[[5~Path workbench activated                                                                                                                                                                                     
Pocketing Select Mode                                                                                                                                                                                                
PathOpGui.ERROR: Edges are not supported                                                                                                                                                                             
Free Select                                                                                                                                                                                                          
Program received signal SIGSEGV, Segmentation fault.                                                                                                                                                                 
#0  /usr/lib/libc.so.6(+0x3d6a0) [0x7fa06e14a6a0]                                                         
#1  0x7fa047facc44 in BRepMesh_IncrementalMesh::Perform(opencascade::handle<IMeshTools_Context> const&) from /tmp/.mount_FreeCAFXQepe/usr/lib/./libTKMesh.so.7+0x144
#2  0x7fa047facd5e in BRepMesh_IncrementalMesh::Perform() from /tmp/.mount_FreeCAFXQepe/usr/lib/./libTKMesh.so.7+0x4e                                              
#3  0x7fa047faceaf in BRepMesh_IncrementalMesh::BRepMesh_IncrementalMesh(TopoDS_Shape const&, double, bool, double, bool) from /tmp/.mount_FreeCAFXQepe/usr/lib/./libTKMesh.so.7+0xcf
#4  0x7fa04c41189d in Part::TopoShape::getFaces(std::vector<Base::Vector3<double>, std::allocator<Base::Vector3<double> > >&, std::vector<Data::ComplexGeoData::Facet, std::allocator<Data::ComplexGeoData::Facet> >&
, float, unsigned short) const from /tmp/.mount_FreeCAFXQepe/usr/lib/Part.so+0x7d                                                                                                                                    
#5  0x7fa04c2daac7 in Part::TopoShapePy::tessellate(_object*) from /tmp/.mount_FreeCAFXQepe/usr/lib/Part.so+0xf7
#6  0x7fa04c2db27e in Part::TopoShapePy::staticCallback_tessellate(_object*, _object*) from /tmp/.mount_FreeCAFXQepe/usr/lib/Part.so+0x1e
#7  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(PyCFunction_Call+0xf7) [0x7fa07035e2e7]
#8  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyObject_MakeTpCall+0x250) [0x7fa070314890]                                                                                                         
#9  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x4ea2) [0x7fa0703a2e62]                                                                                                    
#10  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x7ef) [0x7fa07031152f]                                                                                                    
#11  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x1e3) [0x7fa070351393]                                                                                                      
#12  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x84b) [0x7fa07039e80b]                                                                                                    
#13  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x2e2) [0x7fa070311022]                                                                                                    
#14  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x1e3) [0x7fa070351393]                                                                                                      
#15  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x84b) [0x7fa07039e80b]                                                                                                    
#16  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x10b) [0x7fa0703512bb]                                                                                                      
#17  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(PyVectorcall_Call+0x71) [0x7fa070314031]
#18  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x2078) [0x7fa0703a0038]                                                                                                   
#19  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x66e) [0x7fa0703113ae]                                                                                                    
#20  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x1e3) [0x7fa070351393]                                                                                                      
#21  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(+0x1858c9) [0x7fa0703518c9]
#22  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(PyVectorcall_Call+0x71) [0x7fa070314031] 
#23  0x7fa06ff80c5b in App::FeaturePythonImp::execute() from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADApp.so+0xfb                                                                                           
#24  0x7f9fbff342c1 in App::FeaturePythonT<Path::Feature>::execute() from /tmp/.mount_FreeCAFXQepe/usr/lib/Path.so+0x11                                                                                              
#25  0x7fa06fefaea2 in App::DocumentObject::recompute() from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADApp.so+0xf2                                                                                           
#26  0x7fa06fe8d06c in App::Document::_recomputeFeature(App::DocumentObject*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADApp.so+0x31c                                                                    
#27  0x7fa06fee68bc in App::Document::recompute(std::vector<App::DocumentObject*, std::allocator<App::DocumentObject*> > const&, bool, bool*, int) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADApp.so+0x60c                                                                                                         
#28  0x7fa06ff4e5b2 in App::DocumentPy::recompute(_object*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADApp.so+0x382                                                                                      
#29  0x7fa06ff4ea54 in App::DocumentPy::staticCallback_recompute(_object*, _object*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADApp.so+0x24                                                              
#30  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(PyCFunction_Call+0xf7) [0x7fa07035e2e7]
#31  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyObject_MakeTpCall+0x250) [0x7fa070314890]                                                                                                        
#32  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x4ea2) [0x7fa0703a2e62]                                                                                                   
#33  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x10b) [0x7fa0703512bb]                                                                                                      
#34  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x84b) [0x7fa07039e80b]                                                                                                    
#35  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x2e2) [0x7fa070311022]                                                                                                    
#36  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x1e3) [0x7fa070351393]                                                                                                      
#37  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(+0x18593b) [0x7fa07035193b]              
#38  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libpython3.8.so.1.0(PyVectorcall_Call+0x71) [0x7fa070314031] 
#39  0x7fa070c636fa in Gui::TaskView::TaskDialogPython::accept() from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADGui.so+0x21a                                                                                 
#40  0x7fa070c584e9 in Gui::TaskView::TaskView::accept() from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADGui.so+0x59                                                                                          
#41  0x7fa06e65a0d2 in QMetaObject::activate(QObject*, int, int, void**) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Core.so.5+0x780                                                                          
#42  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5(+0x274d73) [0x7fa06ef6ed73]               
#43  0x7fa06e65a0d2 in QMetaObject::activate(QObject*, int, int, void**) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Core.so.5+0x780                                                                          
#44  0x7fa06ef07360 in QAbstractButton::clicked(bool) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5+0x32                                                                                           
#45  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5(+0x20da19) [0x7fa06ef07a19]
#46  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5(+0x20e2ae) [0x7fa06ef082ae]
#47  0x7fa06ef0834a in QAbstractButton::mouseReleaseEvent(QMouseEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5+0x88                                                                         
#48  0x7fa06ee99c23 in QWidget::event(QEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5+0x135                                                                                                 
#49  0x7fa06ee6e83a in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5+0xde                                                                    
#50  0x7fa06ee730a9 in QApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5+0x79d                                                                                 
#51  0x7fa0709850c9 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADGui.so+0x89                                                                             
#52  0x7fa06e643a9c in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Core.so.5+0x88                                                                        
#53  0x7fa06ee72553 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5+0x283                                        
#54  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5(+0x1af580) [0x7fa06eea9580]               
#55  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5(+0x1b03d2) [0x7fa06eeaa3d2]
#56  0x7fa06ee6e83a in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5+0xde                                                                    
#57  0x7fa06ee74405 in QApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Widgets.so.5+0x1af9                                                                                
#58  0x7fa0709850c9 in Gui::GUIApplication::notify(QObject*, QEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADGui.so+0x89                                                                             
#59  0x7fa06e643a9c in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Core.so.5+0x88                                                                        
#60  0x7fa06e9ea724 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Gui.so.5+0x684                                       
#61  0x7fa06e9eb2f7 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Gui.so.5+0x175                         
#62  0x7fa06e9d8020 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Gui.so.5+0x64                                        
#63  /tmp/.mount_FreeCAFXQepe/usr/plugins/platforms/../../lib/libQt5XcbQpa.so.5(+0x5b1ea) [0x7fa06a4a21ea]                                                                                                           
#64  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_dispatch+0x2cb) [0x7fa06b600dab]                                                                                                      
#65  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/./libglib-2.0.so.0(+0x54ff1) [0x7fa06b600ff1]                
#66  /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/./libglib-2.0.so.0(g_main_context_iteration+0x2e) [0x7fa06b60107e]                                                     
#67  0x7fa06e672d23 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Core.so.5+0x63
#68  0x7fa06e6404d7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Core.so.5+0x187                                    
#69  0x7fa06e64434f in QCoreApplication::exec() from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libQt5Core.so.5+0x105                                                                                                   
#70  0x7fa0708fb4f2 in Gui::Application::runApplication() from /tmp/.mount_FreeCAFXQepe/usr/bin/../lib/libFreeCADGui.so+0x15a2                                                                                       
#71  /tmp/.mount_FreeCAFXQepe/usr/bin/freecad(+0x37cd) [0x55e59649e7cd]                                                                                                                                              
#72  /usr/lib/libc.so.6(__libc_start_main+0xf2) [0x7fa06e135152]                                                                                                                                                     
#73  /tmp/.mount_FreeCAFXQepe/usr/bin/freecad(+0x4521) [0x55e59649f521]

Attachments
hexes.FCStd
(148.72 KiB) Downloaded 17 times
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Path toolbench crashing but am I even doing the right thing

Post by GeneFC »

Welcome to the forum.

To improve readability I edited your post to place the lengthy error message string into code tags. Please do the same for any future posts.

I was able to create the desired patterns using either the Adaptive or the Pocket operations. However, neither is particulary easy for so many shapes.

For Adaptive you need to select the top edges of each hex opening. For Pocket you need to select the sidewall faces for each hex. Very tedious.

One way to simplify the operation would be to add a thin bottom layer to your object. Then the pocketing could be done more easily by selecting the bottom face of each hex. Still a bunch of selections, but a lot less than before.

Gene
charlieb
Posts: 4
Joined: Thu Nov 12, 2020 4:19 pm

Re: Path toolbench crashing but am I even doing the right thing

Post by charlieb »

Thank you Gene. I was wondering if turning them into pockets instead of holes would make a difference. Thanks for confirming.

Should I report the crash anywhere do you think?

Thanks,
Charlie
chrisb
Veteran
Posts: 53920
Joined: Tue Mar 17, 2015 9:14 am

Re: Path toolbench crashing but am I even doing the right thing

Post by chrisb »

Some hints on the model itself: The model gets simpler and thus clearer if you use the cube pimitive in PartDesign.
Before uploading a model containing paths, remove the simulation artefacts, it makes the file smaller and doesn't obstruct anything.

If profiling would be sufficient, you can use a Profile operation, select the top face and check "Process holes" instead of perimeter. Furthermore there is a Path array function which you can use. For that to be parametric I introduced two names for constraints in the Sketch.
The attached file contains both variants.
Snip macro screenshot-821568.png
Snip macro screenshot-821568.png (118.37 KiB) Viewed 599 times
Attachments
hexes_cb.FCStd
(233.51 KiB) Downloaded 13 times
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
charlieb
Posts: 4
Joined: Thu Nov 12, 2020 4:19 pm

Re: Path toolbench crashing but am I even doing the right thing

Post by charlieb »

That looks like exactly what I was trying to achieve!
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Path toolbench crashing but am I even doing the right thing

Post by GeneFC »

charlieb wrote: Thu Nov 12, 2020 6:56 pm Should I report the crash anywhere do you think?
Nah, you probably screwed up. :lol:

If it becomes repeatable that is quite another story. Then the procedure is to discuss here and perhaps file a bug report if the discussion concludes there is a bug.

Gene
Russ4262
Posts: 941
Joined: Sat Jun 30, 2018 3:22 pm
Location: Oklahoma
Contact:

Re: Path toolbench crashing but am I even doing the right thing

Post by Russ4262 »

Welcome to the forum, Charlieb!

Here is the Profile operation variant suggested by Chrisb above - second image. The problem with this strategy is that the small hexes might bind or otherwise cause problems once released from their individual holes. It is likely better to treat them as pockets so the material is cleared completely, layer by layer.

To use the Pocket operation, simply select all six sides of one hole, such that the selected faces form a connected loop. The downside is that you will have to make a Pocket operation for each hex, unless you employ the Path Array tool as Chrisb mentions. Using the combination Pocket and Path Array will require only two Pocket operations and two accompanying Path Array ops. The first image is the first combo of Pocket and Path Array.

Russell
Attachments
Snip macro screenshot-1a7f2b.png
Snip macro screenshot-1a7f2b.png (137.52 KiB) Viewed 552 times
Snip macro screenshot-1e1c24.png
Snip macro screenshot-1e1c24.png (163.4 KiB) Viewed 552 times
charlieb
Posts: 4
Joined: Thu Nov 12, 2020 4:19 pm

Re: Path toolbench crashing but am I even doing the right thing

Post by charlieb »

I think this counts as a qualified success. It needs some cleanup and clearly I need to level or map my bed but that's not a CAD problem. I picked the profile and multiply path method because I used the painter's tape and glue method to hold the work piece down so I don't have to worry too much about the cutouts flying everywhere.
IMG_20201112_184730940.jpg
IMG_20201112_184730940.jpg (235.11 KiB) Viewed 497 times
Thanks for your help everyone, I learned something!
Russ4262
Posts: 941
Joined: Sat Jun 30, 2018 3:22 pm
Location: Oklahoma
Contact:

Re: Path toolbench crashing but am I even doing the right thing

Post by Russ4262 »

Congrats!

Glad you are having some success with FreeCAD and your CNC machine. I think you will find FreeCAD is capable of quite a bit for traditional 3-axis CNC users.

Russell
Post Reply