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.
charlieb
Posts: 4
Joined: Thu Nov 12, 2020 4:19 pm

Path toolbench crashing but am I even doing the right thing

Postby charlieb » Thu Nov 12, 2020 6:09 pm

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 12 times
GeneFC
Posts: 1809
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

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

Postby GeneFC » Thu Nov 12, 2020 6:48 pm

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

Postby charlieb » Thu Nov 12, 2020 6:56 pm

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
Posts: 30875
Joined: Tue Mar 17, 2015 9:14 am

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

Postby chrisb » Thu Nov 12, 2020 7:23 pm

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 275 times
Attachments
hexes_cb.FCStd
(233.51 KiB) Downloaded 10 times
You need at least FreeCAD 0.19.23300 to edit my current sketches.
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

Postby charlieb » Thu Nov 12, 2020 7:44 pm

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

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

Postby GeneFC » Thu Nov 12, 2020 9:32 pm

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: 598
Joined: Sat Jun 30, 2018 3:22 pm

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

Postby Russ4262 » Thu Nov 12, 2020 9:41 pm

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 228 times
Snip macro screenshot-1e1c24.png
Snip macro screenshot-1e1c24.png (163.4 KiB) Viewed 228 times
charlieb
Posts: 4
Joined: Thu Nov 12, 2020 4:19 pm

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

Postby charlieb » Fri Nov 13, 2020 1:17 am

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 173 times
Thanks for your help everyone, I learned something!
Russ4262
Posts: 598
Joined: Sat Jun 30, 2018 3:22 pm

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

Postby Russ4262 » Fri Nov 13, 2020 1:42 am

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