Helical paths are the obvious exception to existing tools not doing simultaneous x,y,z movement, are there others I'm missing.
I think chip load is the key consideration here since feeds and speeds are the fundamental in the user specifying horizontal feed rates. Something which radically changes that without notice is not good.
inappropriate cutting speed on ramps.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: inappropriate cutting speed on ramps.
I can think of holding tags, slots, pockets, profiles etc with ramp or zigzag entry and anything 3D.
I think there was a discussion on this topic as well and think the conclusion was that any tool has a maximum angle for ramped entry into the material. For a face mill that only cuts around its perimeter, this is quite shallow but not zero. For an end mill with "plunging" capability this is 90deg/vertical (at least in theory). For every turn of the tool, it can only cut so much vertically. In reality, plunging with an end mill is a very unfavorable operation leading to heat and vibration. The various entries vastly improves this and a practical angle (much smaller than 90deg) for these entries and a given tool can be set also here.
In other words, it starts with an angle property for each tool, which can be used to calculate the vertical feed depending on horizontal feed (simple trigonometry), in turn calculated by the usual rpm, chipload etc.
Not sure if this is the only, divine truth, but that is how I interpreted the discussion.
electrical engineer
Ubuntu or Mint
Mendel 3d-printer/OctoPrint
LinuxCNC
Optimum BF20L mill
Ubuntu or Mint
Mendel 3d-printer/OctoPrint
LinuxCNC
Optimum BF20L mill
Re: inappropriate cutting speed on ramps.
As I pointed out in my reply, I was not actually using rampDressup, however this discussion links to another issue.
https://forum.freecadweb.org/viewtopic. ... 10#p366575
in the file you uploaded, line 575:
Code: Select all
commands.extend(PathGeom.cmdsForEdge(edge))
lastCmd = Path.Command('G0', {'X': 0.0, 'Y': 0.0, 'Z': 0.0})
outCommands = []