How to set qtdragon to re-face my spoilboard
- Revinvoss
-
Topic Author
- Offline
- New Member
-
Less
More
- Posts: 9
- Thank you received: 2
16 Aug 2025 00:16 #333487
by Revinvoss
How to set qtdragon to re-face my spoilboard was created by Revinvoss
For the life of me, I can not find ANY useful info on how to re-face my spoilboard. Sure, I would have to buy hundreds of dollars to get a program to do what Qtdragon should be able to do with out that. I have FreeCAD but, I also seems to not have the means to do this. Is there any one here that knows how to make a G-code operated machine simply go back and forth at a set high across a set dimension?
As you guys will have questions, I will be glade to answer to get this spoilboard faced. before I burn it to the ground.
As you guys will have questions, I will be glade to answer to get this spoilboard faced. before I burn it to the ground.
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
Less
More
- Posts: 20555
- Thank you received: 6995
16 Aug 2025 00:32 #333488
by tommylight
Replied by tommylight on topic How to set qtdragon to re-face my spoilboard
I might not be the "best" to answer this, but since i see you're head first into self destruction, leme help
:
-QtDragon does not care about your spoil board, nor does FreeCAD
-... i am out ...
Back on topic, i can not recall what i used some 15 or more years back for that exact purpose, but i am sure it was free and Open Source, but:
forum.linuxcnc.org/20-g-code/42707-g-code-generators
wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple...NC_G-Code_Generators
And most probably this will do just fine
github.com/LinuxCNC/simple-gcode-generators/tree/master/face
and the bunch here
github.com/LinuxCNC/simple-gcode-generators?tab=readme-ov-file

-QtDragon does not care about your spoil board, nor does FreeCAD
-... i am out ...

Back on topic, i can not recall what i used some 15 or more years back for that exact purpose, but i am sure it was free and Open Source, but:
forum.linuxcnc.org/20-g-code/42707-g-code-generators
wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple...NC_G-Code_Generators
And most probably this will do just fine
github.com/LinuxCNC/simple-gcode-generators/tree/master/face
and the bunch here
github.com/LinuxCNC/simple-gcode-generators?tab=readme-ov-file
Please Log in or Create an account to join the conversation.
- rodw
-
- Offline
- Platinum Member
-
Less
More
- Posts: 11367
- Thank you received: 3814
16 Aug 2025 01:37 #333492
by rodw
Replied by rodw on topic How to set qtdragon to re-face my spoilboard
qtdragon has a facing option built in. Why not use that?
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
Less
More
- Posts: 20555
- Thank you received: 6995
16 Aug 2025 02:09 #333494
by tommylight
Replied by tommylight on topic How to set qtdragon to re-face my spoilboard
I was not aware of that, thank you.qtdragon has a facing option built in. Why not use that?
The following user(s) said Thank You: rodw
Please Log in or Create an account to join the conversation.
- unknown
- Offline
- Platinum Member
-
Less
More
- Posts: 500
- Thank you received: 178
16 Aug 2025 11:50 #333507
by unknown
Replied by unknown on topic How to set qtdragon to re-face my spoilboard
Would be simple enough to hand code.
FreeCAD has built in CAM.
FreeCAD has built in CAM.
Please Log in or Create an account to join the conversation.
- pippin88
- Away
- Elite Member
-
Less
More
- Posts: 275
- Thank you received: 51
17 Aug 2025 00:10 #333530
by pippin88
Replied by pippin88 on topic How to set qtdragon to re-face my spoilboard
Worth learning a bit of gcode.
Subroutines and parameters are quite powerful
Example code to get you started. I have not checked this on a machine / linuxcnc simulator. Probably has errors.
Subroutines and parameters are quite powerful
Example code to get you started. I have not checked this on a machine / linuxcnc simulator. Probably has errors.
( Zig-Zag Spoilboard Facing Program with Parameters and Subroutine )
( Fully commented for beginners - for use with LinuxCNC )
( Units are millimeters - use G21 for mm or G20 for inches )
G21 ( Set units to millimeters - use G20 for inches )
G17 ( Use XY plane for machining )
G90 ( Use absolute positioning mode )
G64 ( Best path blending mode for smoother motion )
( --- USER-DEFINED PARAMETERS --- )
#100 = 12.0 ( Tool diameter - useful for planning )
#101 = 10.0 ( Step-over between each row in Y direction )
#102 = 1.0 ( Total depth to cut into the spoilboard )
#103 = 0.5 ( Depth per pass - amount to cut per layer )
#104 = 600.0 ( Width of the area to face in X direction )
#105 = 300.0 ( Height of the area to face in Y direction )
#106 = 1000 ( Spindle speed in RPM )
#107 = 500 ( Feedrate in units per minute for cutting moves )
#108 = 5.0 ( Safe Z height above material to avoid collisions )
( --- INTERNAL / TEMPORARY VARIABLES --- )
#110 = 0.0 ( Current Z depth, starts at zero on surface )
#111 = 0 ( Row counter for Y passes )
#115 = 0 ( Direction toggle for zig-zag: zero means forward pass, one means reverse pass )
( --- DERIVED VALUES FROM PARAMETERS --- )
#112 = [#104 / #101] ( Calculate how many rows fit across X based on step-over )
#113 = [#102 / #103] ( Calculate how many depth passes needed to reach total depth )
( --- PROGRAM START --- )
G0 Z#108 ( Move Z to safe height before starting )
M3 S#106 ( Turn spindle on clockwise at RPM from parameter )
G4 P2 ( Wait for 2 seconds to let spindle reach speed )
G0 Z#108 ( Confirm safe Z before any XY moves )
G0 X0 Y0 ( Move to starting XY origin at safe Z )
( --- Z-DEPTH PASS LOOP --- )
#114 = 0 ( Initialize Z pass counter )
o100 while [#114 LT #113] ( Repeat passes until total depth reached )
G0 Z#108 ( Retract to safe Z before repositioning )
G0 X0 Y0 ( Return to XY origin at safe Z )
#110 = [#110 - #103] ( Lower cutting depth by depth per pass )
o110 if [#110 LT -#102] ( If cutting deeper than total depth )
#110 = -#102 ( Clamp cutting depth to max depth )
o110 endif
G1 Z#110 F#107 ( Feed down to current cutting depth )
#111 = 0 ( Reset Y row counter for this depth pass )
#115 = 0 ( Reset zig-zag direction toggle to forward )
( --- Y ROW LOOP --- )
o200 while [#111 LT #112] ( Loop through all rows across Y direction )
o<zigzag_row> call ( Call subroutine to cut one row, direction depends on toggle )
#111 = [#111 + 1] ( Increment Y row counter )
#115 = [1 - #115] ( Toggle direction: 0 becomes 1, 1 becomes 0 )
o200 endwhile ( End Y row loop )
G1 Z#108 F#107 ( Retract to safe Z before next depth pass )
#114 = [#114 + 1] ( Increment Z pass counter )
o100 endwhile ( End Z pass loop )
( --- PROGRAM END --- )
M5 ( Stop spindle )
G0 Z#108 ( Move to safe Z )
G0 X0 Y0 ( Return to origin )
M2 ( End of program )
( --- SUBROUTINE: ZIGZAG ROW --- )
o<zigzag_row> sub
( Cuts one row in X direction, then steps over in Y )
( Uses toggle #115 to choose direction )
o<zigzag_row_dir0> if [#115 EQ 0] ( Forward pass )
G90 ( Use absolute positioning )
G1 X[#104] F#107 ( Move forward in X to max distance )
G91 ( Switch to relative positioning )
G1 Y[#101] F#107 ( Step over in Y by step-over distance )
G90 ( Return to absolute positioning )
o<zigzag_row_dir0> endif
o<zigzag_row_dir1> if [#115 EQ 1] ( Reverse pass )
G90 ( Absolute positioning )
G1 X0 F#107 ( Move X back to zero )
G91 ( Relative positioning )
G1 Y[#101] F#107 ( Step over in Y )
G90 ( Absolute positioning )
o<zigzag_row_dir1> endif
o<zigzag_row> endsub
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
Moderators: cmorley
Time to create page: 0.064 seconds