To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cad.rayOpen lugnet.cad.ray in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / Ray-Tracing / 1463
1462  |  1464
Subject: 
LGEO 6x6 webbed dish fix
Newsgroups: 
lugnet.cad.dat.parts, lugnet.cad.ray
Date: 
Sat, 7 Sep 2002 19:09:28 GMT
Viewed: 
41 times
  
There is an error in the LGEO version of 4285.dat

lg_4285.inc has only 6 web divisions, instead of the 8 that occur in the
true LEGO part.

I corrected this for my personal use some time ago, and just recently this
issue has come up on lugnet.  So here is my "fix" for this problem.

Tim Romine
AFOL for life

NOTE:  Do *NOT* try to open this file in a .dat viewer or editor.  It is not
really a .dat file.  It is an .inc file for use in your LGEO directory.
When you download it, save it as "lg_4285.inc" in your LGEO directory,
overwriting the old one.  If the lugnet server won't let you download it as
an .inc file, download it as a .dat and rename it.  Anyway, here goes:


/*******************************************************************************/
/*                                                                             */
/* LGEO Libray Include File     (C) Chaot!X@weird.cologne.de (Lutz Uhlmann)    */
/*                                                                             */
/* This file is in no way related to the LEGO(tm) Group.                       */
/* It is provided for private non-commercial use only.                         */
/*                                                                             */
/* lg_4285: Space Radar Dish 6 x 6 Webbed                                      */
/*                                                                             */
/*******************************************************************************/
#ifdef(lg_4285)
#else
#declare lg_radius=7.03734
#declare lg_angle=asin((LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE)/lg_radius)
#declare lg_4285 =
union {
intersection {
  cylinder {
   <0, 0, 0>,
   <0, 0, -2*LG_PLATE_HEIGHT>,
   3*LG_BRICK_WIDTH-LG_CORNER_SPACE
  }
  difference {
   sphere {
    <0, 0, -lg_radius*cos(lg_angle)>, lg_radius
   }
   union {
    sphere {
     <0, 0, -lg_radius*cos(lg_angle)-0.12>, lg_radius
    }
    cylinder {
     <0, 0, -LG_PLATE_HEIGHT>,
     <0, 0, LG_PLATE_HEIGHT>,
     LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE
    }
   }
   difference {
    union {
     difference {
      cylinder {
       <0, 0, LG_E>,
       <0, 0, -2*LG_PLATE_HEIGHT>,
       3*LG_BRICK_WIDTH-0.2
      }
      cylinder {
       <0, 0, 2*LG_E>,
       <0, 0, -2*LG_PLATE_HEIGHT-LG_E>,
       2*LG_BRICK_WIDTH
      }
     }
     cylinder {
      <0, 0, LG_E>,
      <0, 0, -2*LG_PLATE_HEIGHT>,
      1.75*LG_BRICK_WIDTH
     }
    }
    union {
     box {
      <3*LG_BRICK_WIDTH, LG_WALL_WIDTH, LG_E>,
      <-3*LG_BRICK_WIDTH, -LG_WALL_WIDTH, -2*LG_PLATE_HEIGHT>
     }
     box {
      <3*LG_BRICK_WIDTH, LG_WALL_WIDTH, LG_E>,
      <-3*LG_BRICK_WIDTH, -LG_WALL_WIDTH, -2*LG_PLATE_HEIGHT>
      rotate <0, 0, 45>
     }
     box {
      <3*LG_BRICK_WIDTH, LG_WALL_WIDTH, LG_E>,
      <-3*LG_BRICK_WIDTH, -LG_WALL_WIDTH, -2*LG_PLATE_HEIGHT>
      rotate <0, 0, 90>
     }
     box {
      <3*LG_BRICK_WIDTH, LG_WALL_WIDTH, LG_E>,
      <-3*LG_BRICK_WIDTH, -LG_WALL_WIDTH, -2*LG_PLATE_HEIGHT>
      rotate <0, 0, -45>
     }
    }
   }
  }
}
torus {
  3*LG_BRICK_WIDTH-LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, lg_radius*cos(asin((3*LG_BRICK_WIDTH-LG_CORNER_SPACE)/lg_radius))-lg_radius*cos(lg_angle)-LG_CORNER_SPACE>
}
difference {
  union {
   cylinder {
    <0, 0, lg_radius*cos(asin((3*LG_BRICK_WIDTH-LG_CORNER_SPACE)/lg_radius))-lg_radius*cos(lg_angle)-LG_CORNER_SPACE>,
    <0, 0, -2*LG_PLATE_HEIGHT+LG_CORNER_SPACE>,
    3*LG_BRICK_WIDTH
   }
   cylinder {
    <0, 0, -2*LG_PLATE_HEIGHT+LG_CORNER_SPACE+LG_E>,
    <0, 0, -2*LG_PLATE_HEIGHT>,
    3*LG_BRICK_WIDTH-LG_CORNER_SPACE
   }
  }
  cylinder {
   <0, 0, 0.1+lg_radius*cos(asin((3*LG_BRICK_WIDTH-LG_CORNER_SPACE)/lg_radius))-lg_radius*cos(lg_angle)>,
   <0, 0, -2*LG_PLATE_HEIGHT-LG_E>,
   3*LG_BRICK_WIDTH-0.128
  }
}
torus {
  3*LG_BRICK_WIDTH-LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, -2*LG_PLATE_HEIGHT+LG_CORNER_SPACE>
}
difference {
  union {
   cylinder {
    <0, 0, -LG_CORNER_SPACE>,
    <0, 0, -LG_PLATE_HEIGHT+LG_CORNER_SPACE>,
    LG_BRICK_WIDTH+0.12
   }
   cylinder {
    <0, 0, -LG_TOP_HEIGHT+LG_E>,
    <0, 0, -LG_PLATE_HEIGHT>,
    LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE
   }
  }
  union {
   cylinder {
    <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, 0>,
    <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   cylinder {
    <-LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, 0>,
    <-LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   cylinder {
    <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, 0>,
    <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   cylinder {
    <LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, 0>,
    <LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   box {
    <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2+LG_KNOB_RADIUS, 0>,
    <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2-LG_KNOB_RADIUS, -LG_PLATE_HEIGHT-LG_E>
   }
   box {
    <LG_BRICK_WIDTH/2+LG_KNOB_RADIUS, LG_BRICK_WIDTH/2, 0>,
    <-LG_BRICK_WIDTH/2-LG_KNOB_RADIUS, -LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>
   }
  }
}
difference {
  cylinder {
   <0, 0, -LG_TOP_HEIGHT>,
   <0, 0, 0>,
   LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE
  }
  union {
   cylinder {
    <0, 0, -LG_CORNER_SPACE>,
    <0, 0, LG_E>,
    LG_KNOB_RADIUS+LG_CORNER_SPACE
   }
   cylinder {
    <0, 0, -LG_CORNER_SPACE+LG_E>,
    <0, 0, -LG_TOP_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   object {
    lg_knob_inner_space
    translate <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, -LG_TOP_HEIGHT>
   }
   object {
    lg_knob_inner_space
    translate <-LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, -LG_TOP_HEIGHT>
   }
   object {
    lg_knob_inner_space
    translate <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, -LG_TOP_HEIGHT>
   }
   object {
    lg_knob_inner_space
    translate <LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, -LG_TOP_HEIGHT>
   }
  }
}
cylinder {
  <LG_BRICK_WIDTH-LG_WALL_WIDTH, 0, -LG_TOP_HEIGHT+LG_E>,
  <LG_BRICK_WIDTH-LG_WALL_WIDTH, 0, -LG_PLATE_HEIGHT>,
  0.1
}
cylinder {
  <0, LG_BRICK_WIDTH-LG_WALL_WIDTH, -LG_TOP_HEIGHT+LG_E>,
  <0, LG_BRICK_WIDTH-LG_WALL_WIDTH, -LG_PLATE_HEIGHT>,
  0.1
}
cylinder {
  <-LG_BRICK_WIDTH+LG_WALL_WIDTH, 0, -LG_TOP_HEIGHT+LG_E>,
  <-LG_BRICK_WIDTH+LG_WALL_WIDTH, 0, -LG_PLATE_HEIGHT>,
  0.1
}
cylinder {
  <0, -LG_BRICK_WIDTH+LG_WALL_WIDTH, -LG_TOP_HEIGHT+LG_E>,
  <0, -LG_BRICK_WIDTH+LG_WALL_WIDTH, -LG_PLATE_HEIGHT>,
  0.1
}
torus {
  LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, -LG_PLATE_HEIGHT+LG_CORNER_SPACE>
}
torus {
  LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, -LG_CORNER_SPACE>
}
torus {
  LG_KNOB_RADIUS+LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, -LG_CORNER_SPACE>
}
object {
  lg_plate_cylinder
  translate <0, 0, -LG_PLATE_HEIGHT>
}
object {
  lg_knob
  translate <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, 0>
}
object {
  lg_knob
  translate <-LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, 0>
}
object {
  lg_knob
  translate <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, 0>
}
object {
  lg_knob
  translate <LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, 0>
}
}

#declare lg_4285_clear =
merge {
intersection {
  cylinder {
   <0, 0, 0>,
   <0, 0, -2*LG_PLATE_HEIGHT>,
   3*LG_BRICK_WIDTH-LG_CORNER_SPACE
  }
  difference {
   sphere {
    <0, 0, -lg_radius*cos(lg_angle)>, lg_radius
   }
   union {
    sphere {
     <0, 0, -lg_radius*cos(lg_angle)-0.12>, lg_radius
    }
    cylinder {
     <0, 0, -LG_PLATE_HEIGHT>,
     <0, 0, LG_PLATE_HEIGHT>,
     LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE
    }
   }
   difference {
    union {
     difference {
      cylinder {
       <0, 0, LG_E>,
       <0, 0, -2*LG_PLATE_HEIGHT>,
       3*LG_BRICK_WIDTH-0.2
      }
      cylinder {
       <0, 0, 2*LG_E>,
       <0, 0, -2*LG_PLATE_HEIGHT-LG_E>,
       2*LG_BRICK_WIDTH
      }
     }
     cylinder {
      <0, 0, LG_E>,
      <0, 0, -2*LG_PLATE_HEIGHT>,
      1.75*LG_BRICK_WIDTH
     }
    }
    union {
     box {
      <3*LG_BRICK_WIDTH, LG_WALL_WIDTH, LG_E>,
      <-3*LG_BRICK_WIDTH, -LG_WALL_WIDTH, -2*LG_PLATE_HEIGHT>
     }
     box {
      <3*LG_BRICK_WIDTH, LG_WALL_WIDTH, LG_E>,
      <-3*LG_BRICK_WIDTH, -LG_WALL_WIDTH, -2*LG_PLATE_HEIGHT>
      rotate <0, 0, 60>
     }
     box {
      <3*LG_BRICK_WIDTH, LG_WALL_WIDTH, LG_E>,
      <-3*LG_BRICK_WIDTH, -LG_WALL_WIDTH, -2*LG_PLATE_HEIGHT>
      rotate <0, 0, -60>
     }
    }
   }
  }
}
torus {
  3*LG_BRICK_WIDTH-LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, lg_radius*cos(asin((3*LG_BRICK_WIDTH-LG_CORNER_SPACE)/lg_radius))-lg_radius*cos(lg_angle)-LG_CORNER_SPACE>
}
difference {
  merge {
   cylinder {
    <0, 0, lg_radius*cos(asin((3*LG_BRICK_WIDTH-LG_CORNER_SPACE)/lg_radius))-lg_radius*cos(lg_angle)-LG_CORNER_SPACE>,
    <0, 0, -2*LG_PLATE_HEIGHT+LG_CORNER_SPACE>,
    3*LG_BRICK_WIDTH
   }
   cylinder {
    <0, 0, -2*LG_PLATE_HEIGHT+LG_CORNER_SPACE+LG_E>,
    <0, 0, -2*LG_PLATE_HEIGHT>,
    3*LG_BRICK_WIDTH-LG_CORNER_SPACE
   }
  }
  cylinder {
   <0, 0, 0.1+lg_radius*cos(asin((3*LG_BRICK_WIDTH-LG_CORNER_SPACE)/lg_radius))-lg_radius*cos(lg_angle)>,
   <0, 0, -2*LG_PLATE_HEIGHT-LG_E>,
   3*LG_BRICK_WIDTH-0.128
  }
}
torus {
  3*LG_BRICK_WIDTH-LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, -2*LG_PLATE_HEIGHT+LG_CORNER_SPACE>
}
difference {
  merge {
   cylinder {
    <0, 0, -LG_CORNER_SPACE>,
    <0, 0, -LG_PLATE_HEIGHT+LG_CORNER_SPACE>,
    LG_BRICK_WIDTH+0.12
   }
   cylinder {
    <0, 0, -LG_TOP_HEIGHT+LG_E>,
    <0, 0, -LG_PLATE_HEIGHT>,
    LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE
   }
  }
  union {
   cylinder {
    <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, 0>,
    <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   cylinder {
    <-LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, 0>,
    <-LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   cylinder {
    <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, 0>,
    <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   cylinder {
    <LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, 0>,
    <LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   box {
    <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2+LG_KNOB_RADIUS, 0>,
    <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2-LG_KNOB_RADIUS, -LG_PLATE_HEIGHT-LG_E>
   }
   box {
    <LG_BRICK_WIDTH/2+LG_KNOB_RADIUS, LG_BRICK_WIDTH/2, 0>,
    <-LG_BRICK_WIDTH/2-LG_KNOB_RADIUS, -LG_BRICK_WIDTH/2, -LG_PLATE_HEIGHT-LG_E>
   }
  }
}
difference {
  cylinder {
   <0, 0, -LG_TOP_HEIGHT>,
   <0, 0, 0>,
   LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE
  }
  union {
   cylinder {
    <0, 0, -LG_CORNER_SPACE>,
    <0, 0, LG_E>,
    LG_KNOB_RADIUS+LG_CORNER_SPACE
   }
   cylinder {
    <0, 0, -LG_CORNER_SPACE+LG_E>,
    <0, 0, -LG_TOP_HEIGHT-LG_E>,
    LG_KNOB_RADIUS
   }
   object {
    lg_knob_inner_space_clear
    translate <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, -LG_TOP_HEIGHT>
   }
   object {
    lg_knob_inner_space_clear
    translate <-LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, -LG_TOP_HEIGHT>
   }
   object {
    lg_knob_inner_space_clear
    translate <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, -LG_TOP_HEIGHT>
   }
   object {
    lg_knob_inner_space_clear
    translate <LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, -LG_TOP_HEIGHT>
   }
  }
}
cylinder {
  <LG_BRICK_WIDTH-LG_WALL_WIDTH, 0, -LG_TOP_HEIGHT+LG_E>,
  <LG_BRICK_WIDTH-LG_WALL_WIDTH, 0, -LG_PLATE_HEIGHT>,
  0.1
}
cylinder {
  <0, LG_BRICK_WIDTH-LG_WALL_WIDTH, -LG_TOP_HEIGHT+LG_E>,
  <0, LG_BRICK_WIDTH-LG_WALL_WIDTH, -LG_PLATE_HEIGHT>,
  0.1
}
cylinder {
  <-LG_BRICK_WIDTH+LG_WALL_WIDTH, 0, -LG_TOP_HEIGHT+LG_E>,
  <-LG_BRICK_WIDTH+LG_WALL_WIDTH, 0, -LG_PLATE_HEIGHT>,
  0.1
}
cylinder {
  <0, -LG_BRICK_WIDTH+LG_WALL_WIDTH, -LG_TOP_HEIGHT+LG_E>,
  <0, -LG_BRICK_WIDTH+LG_WALL_WIDTH, -LG_PLATE_HEIGHT>,
  0.1
}
torus {
  LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, -LG_PLATE_HEIGHT+LG_CORNER_SPACE>
}
torus {
  LG_BRICK_WIDTH+0.12-LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, -LG_CORNER_SPACE>
}
torus {
  LG_KNOB_RADIUS+LG_CORNER_SPACE,
  LG_CORNER_SPACE
  rotate <90, 0, 0>
  translate <0, 0, -LG_CORNER_SPACE>
}
object {
  lg_plate_cylinder_clear
  translate <0, 0, -LG_PLATE_HEIGHT>
}
object {
  lg_knob_clear
  translate <LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, 0>
}
object {
  lg_knob_clear
  translate <-LG_BRICK_WIDTH/2, LG_BRICK_WIDTH/2, 0>
}
object {
  lg_knob_clear
  translate <-LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, 0>
}
object {
  lg_knob_clear
  translate <LG_BRICK_WIDTH/2, -LG_BRICK_WIDTH/2, 0>
}
}

#end



Message has 1 Reply:
  Re: LGEO 6x6 webbed dish fix
 
wow i just checked my last render that used this.... (URL) sure as can be ... the part is wrong... -tk "Tim Romine" <enimor7@juno.com> wrote in message news:H2317s.96r@lugnet.com... (...) not (...) as (...) (22 years ago, 7-Sep-02, to lugnet.cad.dat.parts, lugnet.cad.ray)

2 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR