dog-gone dog-bone.

Here's the place for discussion related to CAM/CNC and the development of the Path module.
User avatar
freman
Posts: 711
Joined: Tue Nov 27, 2018 10:30 pm

dog-gone dog-bone.

Postby freman » Mon Jun 03, 2019 7:19 am

I've moved this here to avoid cluttering sliptonic's 'standard test shape' thread.

I used the base shapes which sliptonic kindly fixed for me, and reduced the dimensions to run quick tests on plywood, then added paths.

Herbert also supplied a version but it seemed to break any time I made a change ( probably related to my not having the tool he used ).

I am trying to clean up using dog-bone but it really is not doing the job. I applied it to a couple of pockets and I still have residuals.

I also cannot get the central holes pocketed. It does not seem to like cylindrcal surfaces and even the shoulder is proving difficult.

What do I need to do to remove the residuals and cut then central holes?

TIA.

Code: Select all

OS: Linux (LXDE/LXDE)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.16854 (Git)
Build type: Release
Branch: master
Hash: fe0fd5512ba9a8a9c729cdc47af35bbe965050ac
Python version: 2.7.15
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedKingdom (en_GB)
Actually, I don't even see why I need the cut to stop at the edge when there is nothing around it. Maybe there is a better way to construct or cut this shape. Or is that asking too much from FreeCAD at this stage?
Attachments
diamond-circ-sqr-2mm-paths.FCStd
(465.57 KiB) Downloaded 13 times
RatonLaveur
Posts: 348
Joined: Wed Mar 27, 2019 10:45 am

Re: dog-gone dog-bone.

Postby RatonLaveur » Mon Jun 03, 2019 8:58 am

Hi freman, looking at your model, seems like at least the center features are easy to tackle.

- Pocket based on Faces: select the inner wall of the cylindrical features. click apply. See attached file.
- Cleaning up the round and square features by selecting the vertical wall face and selecting "profile based on faces" and then applying OUTSIDE and PERIMETER seems to work quite well.
- Using ZigZagOffset for cleaning up the different faces is not efficient but works.

Essentially: don't use spiral. Favor a mix of profiling and ZigZagOffset (the added offset cleans up the feature). Play with the step-over to fit your comparatively big end-mill in tighter tool-paths.

I don't really have time to optimize your whole model, but I think i've given you enough pointers to succeed.

Good luck, and show us the result :)
Attachments
Centerfeatures added.png
Centerfeatures added.png (84.27 KiB) Viewed 329 times
Left_zigZagOffseDogbone_Right_SpiralDogBoneFail.png
Left_zigZagOffseDogbone_Right_SpiralDogBoneFail.png (63.11 KiB) Viewed 329 times
Result.png
Result.png (29.69 KiB) Viewed 329 times
With added contour cleanup.png
With added contour cleanup.png (53.25 KiB) Viewed 329 times
diamond-circ-sqr-2mm-paths_MOD_Raton.FCStd
(471.07 KiB) Downloaded 11 times
User avatar
freman
Posts: 711
Joined: Tue Nov 27, 2018 10:30 pm

Re: dog-gone dog-bone.

Postby freman » Mon Jun 03, 2019 9:31 am

Thanks for the help.
- Pocket based on Faces: select the inner wall of the cylindrical features. click apply. See attached file.
So I select the "create pocket path from faces" icon; I click on circular inner face of the top hole; I click Apply button but get no path.

Code: Select all

PathOpGui.INFO: Title: 'Pocket Shape'
Pocketing Select Mode
PathOpGui.ERROR: Please select faces from a single solid
TIMING - DrawProjectSplit GO spent: 0.429 millisecs in HLRBRep_Algo & co
TIMING - DrawProjectSplit GO spent: 0.077 millisecs in hlrToShape and BuildCurves
TechDraw::GeometryObject::addGeomFromCompound edgeCompound is NULL
TIMING - DrawProjectSplit GO spent: 0.450 millisecs in HLRBRep_Algo & co
TIMING - DrawProjectSplit GO spent: 0.079 millisecs in hlrToShape and BuildCurves
TechDraw::GeometryObject::addGeomFromCompound edgeCompound is NULL
TIMING - DrawProjectSplit GO spent: 12.856 millisecs in HLRBRep_Algo & co
TIMING - DrawProjectSplit GO spent: 0.241 millisecs in hlrToShape and BuildCurves
TechDraw::GeometryObject::addGeomFromCompound edgeCompound is NULL
seems like at least the center features are easy to tackle.
Yes, I expected it to be that simple too and that was exactly what I tried to do intuitively. It seems obvious. However, I've spent the last two days banging my head against the wall.
Why is it whatever seems obvious and simple never works?
RatonLaveur
Posts: 348
Joined: Wed Mar 27, 2019 10:45 am

Re: dog-gone dog-bone.

Postby RatonLaveur » Mon Jun 03, 2019 10:04 am

Make your model partially transparent. This will help.

Did you specify that the profile had to be Outside/Inside? with the compensation ON, usually the profile is made, but it's hidden inside the material.
User avatar
freman
Posts: 711
Joined: Tue Nov 27, 2018 10:30 pm

Re: dog-gone dog-bone.

Postby freman » Mon Jun 03, 2019 10:05 am

OK , let's get this as simple as possible.

If I try to make the most simple object ( attached ) and put a pocket in the hole I get this:

Code: Select all

TechDraw::GeometryObject::addGeomFromCompound edgeCompound is NULL
PathOpGui.INFO: Title: 'Pocket Shape'
Pocketing Select Mode
Traceback (most recent call last):
  File "/svn/freecad-build/Mod/Path/PathScripts/PathOpGui.py", line 170, in updateData
    self.panel.updateData(obj, prop)
  File "/svn/freecad-build/Mod/Path/PathScripts/PathOpGui.py", line 961, in updateData
    page.pageUpdateData(obj, prop)
  File "/svn/freecad-build/Mod/Path/PathScripts/PathOpGui.py", line 242, in pageUpdateData
    self.updateData(obj, prop)
  File "/svn/freecad-build/Mod/Path/PathScripts/PathPocketShapeGui.py", line 325, in updateData
    self.setExtensions(obj.Proxy.getExtensions(obj))
  File "/svn/freecad-build/Mod/Path/PathScripts/PathPocketShapeGui.py", line 302, in setExtensions
    baseItem.appendRow(self.createItemForBaseModel(base[0], sub, edges, extensions))
  File "/svn/freecad-build/Mod/Path/PathScripts/PathPocketShapeGui.py", line 244, in createItemForBaseModel
    ext0 = _Extension(self.obj, base, sub, label)
  File "/svn/freecad-build/Mod/Path/PathScripts/PathPocketShapeGui.py", line 70, in __init__
    self.switch = self.createExtensionSoSwitch(self.ext)
  File "/svn/freecad-build/Mod/Path/PathScripts/PathPocketShapeGui.py", line 82, in createExtensionSoSwitch
    wire =  ext.getWire()
  File "/svn/freecad-build/Mod/Path/PathScripts/PathPocketShape.py", line 196, in getWire
    direction = self.getDirection(sub)
  File "/svn/freecad-build/Mod/Path/PathScripts/PathPocketShape.py", line 178, in getDirection
    normal = tangent.cross(FreeCAD.Vector(0, 0, 1)).normalize()
<class 'Base.FreeCADError'>: Cannot normalize null vector
Attachments
dumbshitblock.FCStd
(15.28 KiB) Downloaded 13 times
User avatar
freman
Posts: 711
Joined: Tue Nov 27, 2018 10:30 pm

Re: dog-gone dog-bone.

Postby freman » Mon Jun 03, 2019 10:16 am

RatonLaveur wrote:
Mon Jun 03, 2019 10:04 am
Make your model partially transparent. This will help.

Did you specify that the profile had to be Outside/Inside? with the compensation ON, usually the profile is made, but it's hidden inside the material.
I'm looking at this in iso view , I can see right down the hole. Those error messages seem pretty clear, it is not just me not seeing it.

I must have done this a hundred times, I am not getting a path created.
User avatar
freman
Posts: 711
Joined: Tue Nov 27, 2018 10:30 pm

Re: dog-gone dog-bone.

Postby freman » Mon Jun 03, 2019 12:10 pm

OK I finally got a tool path ... temporarily. By some fluke I got it display a tool path for the hole in the simple block but if I got to edit the operation subsequently it disappears.

I found out that it had lost the Base Geometry. I managed to reset that by selecting the face and clicking Add button. Fine.

Next time it edit it ( trying to modify step depth ) I never see the Apply button activated, no matter what I change. This time I notice that the Tool element is an empty list , so I can not even select one.

Sometimes if I fiddle with editing Job , it comes back , sometimes not.

Actually , the path is pretty lame too, two semi-circles linked by a diameteric path. Trouble it does not complete the circle and leaves loads of cruft which will need another path to clean up.

In short this seems very unstable and buggy as hell on this machine. :(
RatonLaveur
Posts: 348
Joined: Wed Mar 27, 2019 10:45 am

Re: dog-gone dog-bone.

Postby RatonLaveur » Mon Jun 03, 2019 12:54 pm

Hello freman,

I only suggested transparency of the model to assess whether some paths were hidden inside the model.

I'm sorry this is getting so frustrating for you. I cannot seem have any major issue myself with your models. It looks to me like a version issue somehow, and this is leaving my area of knowledge.

OS: Windows 7
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.16093 (Git)
Build type: Release
Branch: releases/FreeCAD-0-18
Hash: 690774c0effe4fd7b8d2b5e2fb2b8c8d145e21ce
Python version: 2.7.14
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.2.0
Locale: French/Switzerland (fr_CH)

Have you tried with another build? Perhaps operate only 0.18 stable?
User avatar
freman
Posts: 711
Joined: Tue Nov 27, 2018 10:30 pm

Re: dog-gone dog-bone.

Postby freman » Mon Jun 03, 2019 1:27 pm

Yes, thanks. I also have 0.18 asm3 AppImage build from February. I'm currently flicking from one to the other juggling between bugs.

I have got the holes in now but it seem erratic. 0.19 keep messing with my windows manager colours making terminals and taskbar unreadable so I need to log out and login again. Very annoying.

Sometimes I get further in 0.18 until I do some op on these paths and it just hangs. I have to kill the process and start again. It all feels like alpha development. There's some impressive ground work been done but it looks far to quirky to be used. Maybe once you find your way around the bugs and avoid triggering them ... ?

I found zigzagoffset produced a clean hole.

My main problem is cleaning up the cruft left around the edges. Maybe there is a better way and I'm still finding my feet.

I don't see why the path is scared to go outside when there is nothing there. It's treating void like it is part of the work piece, not to be touched. Maybe that the definition of a pocket in which case I need another sort of path not scared to cut some air. Does something like that exist?
herbk
Posts: 1567
Joined: Mon Nov 03, 2014 3:45 pm
Location: Windsbach, Bavarya (Germany)

Re: dog-gone dog-bone.

Postby herbk » Mon Jun 03, 2019 1:58 pm

Hi freman,

OK, let's look at it from an other point of view...

You have some problems which can not be reproduced from others, so in my mind it's a local problem at your machine. Maybe a mix of (python) libs which are "not fitting"...
Maybe a mix of installed FC add ons, - did you have installed the mods from Russel? I'm in mind they don't work with Py 2.x.

For me your postet messages pointing at something in this direction...
Gruß Herbert