All pastes #394977 Raw Edit

Nisley - flowsnake.ngc

public text v1 · immutable
#394977 ·published 2007-03-14 18:24 UTC
rendered paste body
%
(Program to mill a flowsnake)
(K. Lerman)
(Mods Ed Nisley KE4ZNU)

o1000 sub
#<level> = #1
#<startX> = #2
#<startY> = #3
#<endX> = #4
#<endY> = #5

  o1001 if [#<level> EQ 0]
    g1 x#<endX> y#<endY>
  o1001 else
    #<p1X> = [[#<startX> * 2 + #<endX>]/3]
    #<p1Y> = [[#<startY> * 2 + #<endY>]/3]

    #<p2X> = [[#<startX> + #<endX>]/2 + [#<endY> - #<startY>]/[SQRT[12.0]]]
    #<p2Y> = [[#<startY> + #<endY>]/2 - [#<endX> - #<startX>]/[SQRT[12.0]]]

    #<p3X> = [[#<startX> + 2 * #<endX>]/3]
    #<p3Y> = [[#<startY> + 2 * #<endY>]/3]

    o1000 call [#<level>-1] [#<startX>] [#<startY>] [#<p1X>] [#<p1Y>]
    o1000 call [#<level>-1] [#<p1X>] [#<p1Y>] [#<p2X>] [#<p2Y>]
    o1000 call [#<level>-1] [#<p2X>] [#<p2Y>] [#<p3X>] [#<p3Y>]
    o1000 call [#<level>-1] [#<p3X>] [#<p3Y>] [#<endX>] [#<endY>]
  o1001 endif
o1000 endsub

S1 M3 t0 m6
f20
#<level> = 5
#<radius> = 1.8
#<x1> = [#<radius> * cos [30]]
#<y1> = [#<radius> * sin [30]]
g0 z0.1
g0 x[0-#<x1>] y[0-#<y1>]
g1 z0 
o1000 call [#<level>] [0-#<x1>] [0-#<y1>] [#<x1>] [0-#<y1>]
o1000 call [#<level>] [#<x1>] [0-#<y1>] [0] [#<radius>]
o1000 call [#<level>] [0] [#<radius>] [0-#<x1>] [0-#<y1>]
g0 z0.1
g0 x0 y0
g0 z0
M5
%