Supplemental From Shape (2D) machining order

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!
User avatar
mn00n
Posts: 28
Joined: Sun Nov 22, 2020 9:57 pm

Supplemental From Shape (2D) machining order

Post by mn00n »

I'm looking to laser cut a gasket (input as 2D DXF) by exporting gcode to an Arduino+Protoneer GRBL controller.

Is there a way to re-order the entity selection in PathShape so inner geometry is cut before the perimeter?
It's not entirely clear to me how the machining order is determined as it doesn't match the logical sequence of naming. The perimeter of the gasket is the last named PathShape but first to be cut, which is undesirable.

A secondary challenge is how to turn on (M3 S255) and off (M3 S0, or M5) the laser between each Shape.

Any tips gratefully received. (I've had great success resolving problems from prior posts...thank you in advance)


OS: Windows 10 Version 2009
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24276 (Git)
Build type: Release
Branch: releases/FreeCAD-0-19
Hash: a88db11e0a908f6e38f92bfc5187b13ebe470438
Python version: 3.8.6+
Qt version: 5.15.1
Coin version: 4.0.1
OCC version: 7.5.0
Locale: English/Canada (en_CA)
Attachments
Gasket_from_Shape.FCStd
(26.12 KiB) Downloaded 47 times
PathShape_Custom.jpg
PathShape_Custom.jpg (289 KiB) Viewed 2081 times
chrisb
Veteran
Posts: 54144
Joined: Tue Mar 17, 2015 9:14 am

Re: Supplemental From Shape (2D) machining order

Post by chrisb »

Did you try to set the StartPoint property?
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
bmsaus4ax
Posts: 258
Joined: Sat Nov 14, 2020 9:16 pm
Location: Bargara, Queensland, Australia UTC+10

Re: Supplemental From Shape (2D) machining order

Post by bmsaus4ax »

mn00n wrote: Fri May 07, 2021 9:05 pm I'm looking to laser cut a gasket (input as 2D DXF) by exporting gcode to an Arduino+Protoneer GRBL controller.

Is there a way to re-order the entity selection in PathShape so inner geometry is cut before the perimeter?
I
A secondary challenge is how to turn on (M3 S255) and off (M3 S0, or M5) the laser between each Shape.
One easy to implement solution is to create each shape path separately, i.e., select a shape, apply 'from shape' to that and create a separate Custom operation from that . Create the Custom operations in the order you wish to cut them. They will then post-process in the required order.

As to applying the M3 , M5, it is probably simplest to add them manually when you do the Inspect g-code prior to pasting the code into the Custom operation. Because of the separate operations it will still post between shapes. Are you adding feed commands at that time anyway?


OS: Ubuntu 20.04.2 LTS (ubuntu:GNOME/ubuntu)
Word size of FreeCAD: 64-bit
Version: 0.20.24825 (Git) AppImage
Build type: Release
Branch: master
Hash: ccc4151b3020969450325466e385850783795325
Python version: 3.9.2
Qt version: 5.12.9
Coin version: 4.0.0
OCC version: 7.5.1
Locale: English/Australia (en_AU)
User avatar
mn00n
Posts: 28
Joined: Sun Nov 22, 2020 9:57 pm

Re: Supplemental From Shape (2D) machining order

Post by mn00n »

Splitting the PathShapes into two separate Operations does the trick, allowing the perimeter to be ordered last. Good tip, thank you.

Looks like the jtech post-processor is intended for laser cutting, providing on-off control. Will give that a try.
User avatar
mn00n
Posts: 28
Joined: Sun Nov 22, 2020 9:57 pm

Re: Supplemental From Shape (2D) machining order

Post by mn00n »

I tried moving the start point and this influences the cutting order.
Are there guidelines for choosing an appropriate start point?
bmsaus4ax
Posts: 258
Joined: Sat Nov 14, 2020 9:16 pm
Location: Bargara, Queensland, Australia UTC+10

Re: Supplemental From Shape (2D) machining order

Post by bmsaus4ax »

mn00n wrote: Sat May 08, 2021 1:06 am I tried moving the start point and this influences the cutting order.
Are there guidelines for choosing an appropriate start point?
The first part you probably already do ?
Select your PathShape in the object tree
Select "Navigation styles" to CAD
Place the Cursor over the start point you prefer,(shown by the black arrow head in the image below; Pick a point on the most central shape; you will see the co-ordinates in the status bar at the bottom of the screen. Note the X, Y values and enter them in the Data Tab - Path - Start Point fields. They do not have to be totally accurate but should be close. You will see on the produced final path that it goes to the point you enter then adjusts to the actual path line before feeding along the path line.
Select 'Use Start Point' true

Then in the 'Sort Abscissa' and 'Nearest K' enter "0" (zero) , although 'Nearest K =1 ' also seems to work.
These parameters limit the range from which the path can choose the next object to process. In your case this will select from the centre outward, I cannot be sure it will do this for every case but should.

This still leaves you needing to insert the M3, M5 commands in a combined shape file.
Screenshot 1from 2021-05-08 12-40-06.png
Screenshot 1from 2021-05-08 12-40-06.png (186.51 KiB) Viewed 1963 times
Paula
Posts: 48
Joined: Tue Jan 26, 2021 10:06 pm

Re: Supplemental From Shape (2D) machining order

Post by Paula »

I've taken your design and employed a slightly different approach.

I went into the Part workbench and extruded each of your shapes one by one. I then used the Cut function to combine them into the final body.

Then in the Path workbench I created a new job using my grbl_laser post-processor which I've been tinkering around with for a while. I then created two profile operations: the first to cut the holes and the second to cut the outside of the part. I've attached my modified project, a sample output gcode (had to add a .txt extension to that to attach it) and the pre-processor.

A few things to note:

1) the tool I used is a bit of nonsense but is OK for a proof-of-concept
2) I set the operation to only generate one pass by setting the step down to be the same as the material thickness. You may need more in practice. To achieve this just make the step down the appropriate fraction of the material thickness.

I hope this proves of some use to you.
Attachments
Gasket_from_Shape_Modded.FCStd
Modified project file
(47.87 KiB) Downloaded 47 times
laser-test.nc.txt
Sample gcode output
(1.9 KiB) Downloaded 44 times
The body created in Part WB
The body created in Part WB
part.png (17.01 KiB) Viewed 1906 times
grbl_laser_post.py
The post-processor
(18.19 KiB) Downloaded 47 times
User avatar
mn00n
Posts: 28
Joined: Sun Nov 22, 2020 9:57 pm

Re: Supplemental From Shape (2D) machining order

Post by mn00n »

Thanks Paula - top marks, greatly appreciated...mission accomplished! :D

(I ought to invest in a larger laser cutter though)
Attachments
Gasket_laser.jpg
Gasket_laser.jpg (882.33 KiB) Viewed 1863 times
RatonLaveur
Posts: 991
Joined: Wed Mar 27, 2019 10:45 am

Re: Supplemental From Shape (2D) machining order

Post by RatonLaveur »

Is this the part where someone suggests that the PathWB be able to distinguish layers from a 2D dxf file created either through Draft or imported?

Probably not.

Super glad you could manage to solve your issue.

Regarding the PostProcessor you can modify or use every Z retract as a flag for M4 M5. (Or M3 in your case apparently)
User avatar
mn00n
Posts: 28
Joined: Sun Nov 22, 2020 9:57 pm

Re: Supplemental From Shape (2D) machining order

Post by mn00n »

Really impressed by the support available in the Path community. As a novice I can't offer much to resolve problems but hopefully this thread might help someone in the future.
I'll have to learn the basics of Python having now looked at the grbl_laser_post.py post processor file, but it works with the NEJE mini laser cutter retro-fitted with Arduino+Protoneer hardware.
Attachments
NEJE_modified.jpg
NEJE_modified.jpg (215.31 KiB) Viewed 1815 times
Post Reply