Home

These are lego pieces I put together to expand the Anton Raves Lego Library.

#macro arrow(color_tex)
  #if (setting = 0)
    merge {
      cylinder { -8*z, 11*z, 0.6 }
      sphere { 11*z, 0.6 }
      texture { color_tex }
    }
  #else
    merge {
      cylinder { -8*z, 11*z, 0.6 } // shaft
      sphere { -8*z, 0.6 }
      sphere { 11*z, 0.6 }
      prism { quadratic_spline 0, 0.6, 5,
 <2,-7>, <-2,-7>, <0,-11>, <2,-7>, <-2,-7> translate <0,-0.3,0> } // head
      cylinder { <0,0,5.4>, <2,0,7.4>, 0.4 } // fletching
      sphere { <2,0,7.4>, 0.4 }
      cylinder { <0,0,5.4>, <-2,0,7.4>, 0.4 }
      sphere { <-2,0,7.4>, 0.4 }
      cylinder { <0,0,6.4>, <2,0,8.4>, 0.4 }
      sphere { <2,0,8.4>, 0.4 }
      cylinder { <0,0,6.4>, <-2,0,8.4>, 0.4 }
      sphere { <-2,0,8.4>, 0.4 }
      cylinder { <0,0,7.4>, <2,0,9.4>, 0.4 }
      sphere { <2,0,9.4>, 0.4 }
      cylinder { <0,0,7.4>, <-2,0,9.4>, 0.4 }
      sphere { <-2,0,9.4>, 0.4 }
      cylinder { <0,0,8.4>, <1.6,0,10>, 0.4 }
      sphere { <1.6,0,10>, 0.4 }
      cylinder { <0,0,8.4>, <-1.6,0,10>, 0.4 }
      sphere { <-1.6,0,10>, 0.4 }
      texture { color_tex }
    }
  #end
#end

#macro bow(color_tex)
  #local hand_placement = <0, -0.8, -3>;
  #if (setting = 0)
    merge {
      cylinder { -8.5*y, 8.5*y, 1.4 }
      sphere_sweep { cubic_spline, 7, <0,-8.5,0>, 1.25, <0,8.5,0>, 1.25,
 <0,17,2>, 1, <0,20.8,4>, .9, <0,23.3,6>, .8, <0,26,9>, .6, <0,26.5,10>, .6 }
      sphere_sweep { cubic_spline, 7, <0,8.5,0>, 1.25, <0,-8.5,0>, 1.25,
 <0,-17,2>, 1, <0,-20.8,4>, .9, <0,-23.3,6>, .8, <0,-26,9>, .6, <0,-26.5,10>, .6 }
      cylinder { <0,0,11>, <0,25,8>, .5 }
      cylinder { <0,0,11>, <0,-25,8>, .5 }
      cylinder { 11*z, 15*z, 0.6 }
      sphere { 15*z, 0.6 }
      object { arrow(color_tex) rotate 90*z translate <0,0,0> }
      texture { color_tex }
    }
  #else
    merge {
      cylinder { -8.5*y, 8.5*y, 1.4 } // Handgrip
      sphere_sweep { cubic_spline, 7, <0,-8.5,0>, 1.25, <0,8.5,0>, 1.25,
 <0,17,2>, 1, <0,20.8,4>, .9, <0,23.3,6>, .8, <0,26,9>, .6, <0,26.5,10>, .6 }
      sphere_sweep { cubic_spline, 7, <0,8.5,0>, 1.25, <0,-8.5,0>, 1.25,
 <0,-17,2>, 1, <0,-20.8,4>, .9, <0,-23.3,6>, .8, <0,-26,9>, .6, <0,-26.5,10>, .6 }
      cylinder { <0,0,11>, <0,25,8>, .5 } // bowstring
      cylinder { <0,0,11>, <0,-25,8>, .5 }
      cylinder { 11*z, 15*z, 0.6 } // arrow tail
      sphere { 15*z, 0.6 }
      object { arrow(color_tex) rotate 90*z translate <0,0,0> }

      #if (setting > 1)
      union { // hand grip
        torus { 1.4, 0.1 scale <1,3,1> translate <0,7.5,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,6,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,4.5,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,3,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,1.5,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,0,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,-1.5,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,-3,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,-4.5,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,-6,0> }
        torus { 1.4, 0.1 scale <1,3,1> translate <0,-7.5,0> }
      }
      #end
      texture { color_tex }
    }
  #end
#end

#macro harness(color_tex)
  #if (setting = 0)
    merge {
      object{ f_block2_2(color_tex) translate <0,0,0> }
      object{ f_block1_2(color_tex,1) translate <0,6.4,40> }
      cylinder{ <-5.5,1.6,4>, <-5.5,1.6,12>, 1.5 }
      cylinder{ <13.5,1.6,4>, <13.5,1.6,12>, 1.5 }
      cylinder{ <-5.5,1.6,12>, <-5.5,8,36>, 1.5 }
      cylinder{ <13.5,1.6,12>, <13.5,8,36>, 1.5 }
      cylinder{ <-5.5,8,36>, <-5.5,8,52>, 1.5 }
      cylinder{ <13.5,8,36>, <13.5,8,52>, 1.5 }
    }
  #else
    merge {
      object{ f_block2_2(color_tex) translate <0,0,0> }
      object{ f_block1_2(color_tex,1) translate <0,6.4,40> }
      cylinder{ <-5.5,1.6,4>, <-5.5,1.6,12>, 1.5 }
      cylinder{ <13.5,1.6,4>, <13.5,1.6,12>, 1.5 }
      cylinder{ <-5.5,1.6,12>, <-5.5,8,36>, 1.5 }
      cylinder{ <13.5,1.6,12>, <13.5,8,36>, 1.5 }
      cylinder{ <-5.5,8,36>, <-5.5,8,52>, 1.5 }
      cylinder{ <13.5,8,36>, <13.5,8,52>, 1.5 }
      #if (setting > 1)
        box{ <-4.5,1.1,4.2>,<12.5,2.1,11.8> }
        box{ <-4.5,7.5,36.2>,<12.5,8.5,43.8> }
      #end
      texture { color_tex }
    }
  #end
#end

#macro quiver(color_tex)
  #if (setting = 0)
    merge {
      box { <-2.5,-9.5,0>, <2.5,9.5,2.5> rotate 45*z translate <0, -9.5, 10> }
      texture { color_tex }
    }
  #else
    merge {
      difference { // neck straps
        merge {
          cylinder { 0.000001*y, 0.999999*y, 4 }
          box { <-4,0.000001,0>, <4,0.999999,4.999999> }
        }
        cylinder { 0*y, 1*y, 2 }
      }
      difference { // back straps
        box { <-3.4,-3.5,0.000001>, <3.8,4.5,1> rotate -30*z translate <-1, -1, 4> }
        box { <-4.5,0.99999,3>, <4.5,6,6> }
        box { <4,1,3>, <5,-1,6> }
      }
      box { <-2.5,-9.5,0>, <2.5,9.5,2.5> rotate 45*z translate <-2, -6.5, 4> } // quiver case
      difference {
        merge { // arrows
          object { arrow(color_tex) rotate <-90,0,45> translate <-4.5, -3, 5.5> }
          object { arrow(color_tex) rotate <-90,0,45> translate <-5.5, -4, 5.5> }
        }
        // trim off everything we don't need; arrowheads stick out otherwise
        box { <-10, -2.75, 6.5>, <5.75, -10.75, 4> } 
      }

      #if (setting > 1)
        // the casing straps
        cylinder { <-5.75, 0.75, 4>, <-5.75, 0.75, 6.5>, 0.1 }
        cylinder { <-5, 0, 4>, <-5, 0, 6.5>, 0.10 }
        cylinder { <-0.75, -4.25, 4>, <-0.75, -4.25, 6.5>, 0.1 }
        cylinder { <0, -5, 4>, <0, -5, 6.5>, 0.10 }
        cylinder { <0.75, -5.75, 4>, <0.75, -5.75, 6.5>, 0.1 }
        cylinder { <5, -10, 4>, <5, -10, 6.5>, 0.1 }
        cylinder { <5.75, -10.75, 4>, <5.75, -10.75, 6.5>, 0.1 }

        cylinder { <-9.25, -2.75, 4>, <-9.25, -2.75, 6.5>, 0.1 }
        cylinder { <-8.5, -3.5, 4>, <-8.5, -3.5, 6.5>, 0.1 }
        cylinder { <-4.25, -7.75, 4>, <-4.25, -7.75, 6.5>, 0.1 }
        cylinder { <-3.5, -8.5, 4>, <-3.5, -8.5, 6.5>, 0.1 }
        cylinder { <-2.75, -9.25, 4>, <-2.75, -9.25, 6.5>, 0.1 }
        cylinder { <1.5, -13.5, 4>, <1.5, -13.5, 6.5>, 0.1 }
        cylinder { <2.25, -14.25, 4>, <2.25, -14.25, 6.5>, 0.1 }

        cylinder { <-5.75, 0.75, 6.5>, <-9.25, -2.75, 6.5>, 0.1 }
        cylinder { <-0.75, -4.25, 6.5>, <-8.5, -3.5, 6.5>, 0.1 }
        cylinder { <-5, 0, 6.5>, <-4.25, -7.75, 6.5>, 0.1 }
        cylinder { <0, -5, 6.5>, <-3.5, -8.5, 6.5>, 0.1 }
        cylinder { <5, -10, 6.5>, <-2.75, -9.25, 6.5>, 0.1 }
        cylinder { <0.75, -5.75, 6.5>, <1.5, -13.5, 6.5>, 0.1 }
        cylinder { <5.75, -10.75, 6.5>, <2.25, -14.25, 6.5>, 0.1 }

        sphere { <-5.75, 0.75, 6.5>, 0.1 }
        sphere { <-5, 0, 6.5>, 0.1 }
        sphere { <-0.75, -4.25, 6.5>, 0.1 }
        sphere { <0, -5, 6.5>, 0.1 }
        sphere { <0.75, -5.75, 6.5>, 0.1 }
        sphere { <5, -10, 6.5>, 0.1 }
        sphere { <5.75, -10.75, 6.5>, 0.1 }
        sphere { <-9.25, -2.75, 6.5>, 0.1 }
        sphere { <-8.5, -3.5, 6.5>, 0.1 }
        sphere { <-4.25, -7.75, 6.5>, 0.1 }
        sphere { <-3.5, -8.5, 6.5>, 0.1 }
        sphere { <-2.75, -9.25, 6.5>, 0.1 }
        sphere { <1.5, -13.5, 6.5>, 0.1 }
        sphere { <2.25, -14.25, 6.5>, 0.1 }
      #end
      texture { color_tex }
    }
  #end
#end
Hosted by www.Geocities.ws

1