John,

Here us a subroutine I wrote to cut a scroll.
#<_xorigin>, and #<_yorigin> are the center of the scroll. Basically it changes 
the radius of the circle every ¼ turn.


(Subroutine to cut spiral in)
(o<SpiralIn> call [X] [Y] [Depth] [Stepover] [Radius])
o<SpiralIn> sub
(#1 is X center)
(#2 is Y center)
(#3 is Z plunge depth)
(#4 is the stepover amount )
(#5 is the ending radius )
(#<curstep> is the amount to increment start of the next loop)
#<XOrg> = #1
#<YOrg> = #2
#<Depth> = [0-#3]                                ( Depth of cut )
#<stepover> = #4                                 ( Size of stepover )
#<Rad> = #5                                      ( Starting Radius )
#<stepover4>=[#<stepover>/4]                     ( 1/4 of stepover )
#<curstep> = #<Rad>

G10 L2 P3 X[#<_xorigin>+#<XOrg>] Y[#<_yorigin>+#<YOrg>] Z#<_zorigin> ( Set the 
Current Coordinate for G56 )
#<Zcut> = #<_close_Z>                            ( set Zcut to top of material )
G56                                              ( Select Coordinate system 3 )
G00 X0 Y[0-#<Rad>] Z#<_close_Z>
G01 Z#<Depth> F#<_xyfeed>
o<L1> WHILE [#<curstep> GT 0]
  o<Cnd1> IF [[#<curstep> - #<stepover4>] GE #<stepover>]
    G03 X0 Y[[#<curstep>-#<stepover4>]*[-1]]     R[#<curstep>-#<stepover4>]
  o<Cnd1> ENDIF
  o<Cnd2> IF [[#<curstep> - [2*#<stepover4>]] GE #<stepover>]
    G03 X[#<curstep>-[2*#<stepover4>]]        Y0 R[#<curstep>-[2*#<stepover4>]]
  o<Cnd2> ENDIF
  o<Cnd3> IF [[#<curstep> - [3*#<stepover4>]] GE #<stepover>]
    G03 X0 Y[#<curstep>-[3*#<stepover4>]]        R[#<curstep>-[3*#<stepover4>]]
  o<Cnd3> ENDIF
  o<Cnd4> IF [[#<curstep> - #<stepover>] GE #<stepover>]
    G03 X[[#<curstep>-#<stepover>]*[-1]]      Y0 R[#<curstep>-#<stepover>]
  o<Cnd4> ENDIF
  #<curstep> = [#<curstep>-#<stepover>] 
o<L1> ENDWHILE
G0 Z#<_close_Z>
G55
o<SpiralIn> endsub 


Alan
> From: "John Dammeyer" <jo...@autoartisans.com <mailto:jo...@autoartisans.com>>
> Subject: [Emc-users] Carving a spiral
> Date: April 10, 2024 at 12:55:36 AM CDT
> To: "Enhanced Machine Controller \(EMC\)" <emc-users@lists.sourceforge.net 
> <mailto:emc-users@lists.sourceforge.net>>
> 
> 
> A friend and I have been discussing exactly how to write the G-Code to
> create a spiral scroll. 
> 
> His rotary table 90:1 reduction with a 1600 micro-step motor could be set up
> to move N steps for each step of the X axis to create the spiral.  But that
> approach seems clumsy.
> 
> Say I wanted to cut a scroll with a 6mm pitch using a 3mm cutter.  
> 
> 
> 
> Without using G2 or G3 it's really just a triangle isn't it?  Move rotary
> table distance A and move X axis distance A'.  Do it in small enough
> increments and you get a spiral.  But I feel like I'm missing something
> really simple.
> 
> 
> 
> Suggestions?
> 
> Thanks
> 
> John





_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to