Helix machining for circular holes

Here's the place for discussion related to CAM/CNC and the development of the Path module.
User avatar
sgrogan
Posts: 2993
Joined: Wed Oct 22, 2014 5:02 pm

Re: Helix machining for circular holes

Postby sgrogan » Wed Jan 11, 2017 10:34 pm

agryson wrote: sliptonic wrote:
In addition to the colors you listed, I'd also suggest:
Safety and rapid moves (red)

When it comes to colors, we should try to bear in mind that there are also cross-workbench suggestions that are provided in the existing artwork guidelines, though that will be more relevant in phase 2.

If there was ever a case to re-work the guidelines this would be it. Maybe even adding an exclamation point. At work these moves are jokingly referred to as "may be ejected with deadly force" the warning that appears on the door of the CNC.
agryson wrote:@cox: I'll whip up a version soon with the wraparound spiral you suggested

I predict this will be the winner. :)
User avatar
bill
Posts: 155
Joined: Fri Jan 09, 2015 9:25 pm

Re: Helix machining for circular holes

Postby bill » Thu Jan 12, 2017 4:27 am

sgrogan wrote: agryson wrote:
@cox: I'll whip up a version soon with the wraparound spiral you suggested

I predict this will be the winner. :)

Simpler and more concise. :ugeek:
Without even seeing the final SVG, I vote it (@cox) as my choice, also; good eye @sgrogan!
User avatar
agryson
Posts: 442
Joined: Wed Nov 23, 2016 8:30 am
Location: Paris, France
Contact:

Re: Helix machining for circular holes

Postby agryson » Thu Jan 12, 2017 10:37 am

Here we go, a version of @cox's wraparound helix in 16,24,32 and 64px:
Path-Helix_16.png
Path-Helix_16.png (856 Bytes) Viewed 276 times
Path-Helix_24.png
Path-Helix_24.png (1.43 KiB) Viewed 276 times
Path-Helix_32.png
Path-Helix_32.png (1.96 KiB) Viewed 276 times
Path-Helix_64.png
Path-Helix_64.png (4.54 KiB) Viewed 276 times


Votes currently stand at:
Simple Spiral: 2
Helix (mcdonalds): 1
Wraparound Helix: 3

So it seems unless new votes are cast that Wraparound has it! :-D

Notes: I did not change the tool shape itself since it's already used in the facing operation and the tool icons are being looked at.
User avatar
agryson
Posts: 442
Joined: Wed Nov 23, 2016 8:30 am
Location: Paris, France
Contact:

Re: Helix machining for circular holes

Postby agryson » Thu Jan 12, 2017 10:41 am

sgrogan wrote:If there was ever a case to re-work the guidelines this would be it.
Oh, reworking the guidelines is my eventual aim, I hope to work on expanding these universal guidelines to take into account the various new use cases across workbenches.
e.g. Red = Constraints, Exports, Warnings (instead of just constraints for example)

This way, the colors would work across workbenches, reducing the learning curve when switching from one bench to another.
User avatar
sgrogan
Posts: 2993
Joined: Wed Oct 22, 2014 5:02 pm

Re: Helix machining for circular holes

Postby sgrogan » Thu Jan 12, 2017 9:38 pm

agryson wrote:So it seems unless new votes are cast that Wraparound has it! :-D

I love it when a plan comes together. Great job!
EDIT: Now that we have the icon, how to test the feature on Win?
sliptonic
Posts: 596
Joined: Tue Oct 25, 2011 10:46 pm

Re: Helix machining for circular holes

Postby sliptonic » Sat Jan 14, 2017 1:33 am

sgrogan wrote:
lorenz wrote:I was able to drop the requirement of scipy, see my commit 1edc151c5.

Maybe a windows user could test this before I submit another pull request?

Win x64 build https://github.com/sgrogan/FreeCAD/releases/tag/0.17_path
I'm not familiar enough with Path to test but if there are no other win testers I can follow a procedure.
Thanks again lorenz, attention to details like this make FreeCAD truly cross-platform!



Thanks sgrogan,
I've attached a file.
open the file and switch to the path workbench
Select the wall of one of the circular holes
click the helix cut icon.

It should open the dialog, add the hole coordinates, and generate a green path.

snapshot-4.png
snapshot-4.png (98.16 KiB) Viewed 187 times
Attachments
arraydrilling.fcstd
(34.76 KiB) Downloaded 4 times
User avatar
sgrogan
Posts: 2993
Joined: Wed Oct 22, 2014 5:02 pm

Re: Helix machining for circular holes

Postby sgrogan » Sat Jan 14, 2017 3:21 am

Default is the Start WB
sliptonic wrote:open the file

Code: Select all

Extension is not a python addable version: 'App::OriginGroupExtension'
Can't find Origin for "Body"
Extension is not a python addable version: 'Gui::ViewProviderOriginGroupExtension'

sliptonic wrote:switch to the path workbench
Select the wall of one of the circular holes
click the helix cut icon.

Code: Select all

Path workbench activated
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false
DeprecationWarning: For future usage 'Curve' will return 'Line' which is infinite instead of the limited 'LineSegment'.
If you need a line segment then use this:
Part.LineSegment(edge.Curve,edge.FirstParameter,edge.LastParameter)
To suppress the warning set BaseApp/Preferences/Mod/Part/General/LineOld to false

path.PNG
path.PNG (90.35 KiB) Viewed 183 times

sliptonic wrote:It should open the dialog, add the hole coordinates, and generate a green path.

Click OK, no new warnings.
sliptonic
Posts: 596
Joined: Tue Oct 25, 2011 10:46 pm

Re: Helix machining for circular holes

Postby sliptonic » Sat Jan 14, 2017 3:40 pm

Looks correct to me. Will wait for a PR from @lorenz
lorenz
Posts: 30
Joined: Wed Mar 16, 2016 9:35 pm

Re: Helix machining for circular holes

Postby lorenz » Sat Jan 14, 2017 4:09 pm

Thank you all for testing this!

Meanwhile I have also reworked the task panel a bit, it now also uses a QToolBox based layout to make it more consistent with the other Path operations.

I will submit a PR shortly, based on my commit f2faa5080.

Kind regards,
Lorenz
lorenz
Posts: 30
Joined: Wed Mar 16, 2016 9:35 pm

Re: Helix machining for circular holes

Postby lorenz » Sat Jan 14, 2017 4:32 pm