How to set qtdragon to re-face my spoilboard

More
1 year 2 months ago #333487 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. image missing /media/kunena/emoticons/laughing.png

Please Log in or Create an account to join the conversation.

More
1 year 2 months ago #333488 by tommylight
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

Please Log in or Create an account to join the conversation.

More
1 year 2 months ago #333492 by rodw
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.

More
1 year 2 months ago #333494 by tommylight

qtdragon has a facing option built in. Why not use that?
I was not aware of that, thank you.
The following user(s) said Thank You: rodw

Please Log in or Create an account to join the conversation.

More
1 year 2 months ago #333507 by unknown
Would be simple enough to hand code.
FreeCAD has built in CAM.

Please Log in or Create an account to join the conversation.

More
1 year 2 months ago #333530 by pippin88
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.
Code:
( 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.381 seconds
Powered by Kunena Forum