/*******************************************************************************/
/* */
/* 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_4588: Brick 1 x 1 Round with Fins */
/* */ /*******************************************************************************/
#ifdef(lg_4588)
#else
#declare lg_4588 =
union {
object {
lg_tech_knob
}
difference {
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT+LG_E>,
<0, 0, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CYLINDER_RADIUS }
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT+2*LG_E>,
<0, 0, -LG_BRICK_HEIGHT>,
LG_KNOB_RADIUS
}
}
difference {
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_CORNER_SPACE+LG_E>,
<0, 0, -LG_BRICK_HEIGHT>,
LG_CYLINDER_RADIUS-LG_CORNER_SPACE }
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT>,
<0, 0, -LG_BRICK_HEIGHT-LG_E>,
LG_KNOB_RADIUS+LG_CORNER_SPACE
}
}
difference {
union {
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT+LG_CORNER_SPACE>,
<0, 0, -LG_CORNER_SPACE>,
LG_BRICK_WIDTH/2
}
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT>,
<0, 0, 0>,
LG_BRICK_WIDTH/2-LG_CORNER_SPACE }
}
union {
cylinder {
<0, 0, -LG_BRICK_HEIGHT>,
<0, 0, -LG_TOP_HEIGHT>,
LG_KNOB_RADIUS
}
cylinder {
<0, 0, LG_E>,
<0, 0, -LG_TOP_HEIGHT-LG_E>,
LG_KNOB_INNER_RADIUS
}
}
}
torus {
LG_CYLINDER_RADIUS-LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, 0>
translate <0, 0, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>
}
torus {
LG_KNOB_RADIUS+LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, 0>
translate <0, 0, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>
}
torus {
LG_BRICK_WIDTH/2-LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, 0>
translate <0, 0, -LG_CORNER_SPACE>
}
torus {
LG_BRICK_WIDTH/2-LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, 0>
translate <0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT+LG_CORNER_SPACE>
}
intersection {
union {
#declare ROT = 0
#while (ROT < 4)
union {
cylinder { <LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE>,
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
0.08
}
cylinder { <LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE-LG_E>,
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, 0>,
0.08-LG_CORNER_SPACE
}
torus {
0.08-LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, >
translate <LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE>
}
cylinder {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, -LG_CORNER_SPACE>,
<LG_KNOB_RADIUS, LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, -LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
<LG_KNOB_RADIUS, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
0.08
}
box {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, 0>,
<LG_KNOB_RADIUS, LG_KNOB_RADIUS, -2*LG_PLATE_HEIGHT>
}
box {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2, -LG_CORNER_SPACE>,
<LG_KNOB_RADIUS, LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE+LG_E, -2*LG_PLATE_HEIGHT>
}
cylinder {
<LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE>,
<LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, LG_KNOB_RADIUS, -LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
<LG_CROSSAXLE_WIDTH/2+0.08, LG_KNOB_RADIUS, -2*LG_PLATE_HEIGHT>,
0.08
}
box {
<LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, LG_CROSSAXLE_WIDTH/2+0.08, 0>,
<LG_KNOB_RADIUS, LG_KNOB_RADIUS, -2*LG_PLATE_HEIGHT>
}
box {
<LG_CROSSAXLE_WIDTH/2, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE>,
<LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE+LG_E, LG_KNOB_RADIUS, -2*LG_PLATE_HEIGHT>
}
sphere {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
0.08
}
rotate <0, 0, 90*ROT>
}
#declare ROT = ROT + 1
#end
}
cylinder {
<0, 0, LG_E>,
<0, 0, -LG_BRICK_HEIGHT>,
LG_KNOB_RADIUS+LG_CORNER_SPACE
}
}
difference {
union {
#declare ROT = 0
#while (ROT < 4)
union {
sphere {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
sphere {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
sphere {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
sphere {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_KNOB_RADIUS+LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_KNOB_RADIUS+LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
box {
<LG_KNOB_RADIUS+LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE+LG_E>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT>
}
box {
<LG_BRICK_WIDTH, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE-LG_E, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>
}
box {
<LG_KNOB_RADIUS+LG_CORNER_SPACE, LG_WALL_WIDTH/2, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>
}
union {
cylinder {
<0, LG_WALL_WIDTH/2-LG_CORNER_SPACE, 0>,
<0, LG_WALL_WIDTH/2-LG_CORNER_SPACE, 2*LG_PLATE_HEIGHT/cos(32.3*pi/180)>,
LG_CORNER_SPACE
}
cylinder {
<0, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, 0>,
<0, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, 2*LG_PLATE_HEIGHT/cos(32.3*pi/180)>,
LG_CORNER_SPACE
}
box {
<-LG_E, LG_WALL_WIDTH/2-LG_CORNER_SPACE, 0>,
<LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, 2*LG_PLATE_HEIGHT/cos(32.3*pi/180)>
}
box {
<0, LG_WALL_WIDTH/2, 0>,
<-LG_BRICK_WIDTH/2, -LG_WALL_WIDTH/2, 2*LG_PLATE_HEIGHT/cos(32.3*pi/180)>
}
rotate <0, -32.3, 0>
translate <LG_BRICK_WIDTH-LG_CORNER_SPACE, 0, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>
}
rotate <0, 0, 90*ROT>
}
#declare ROT = ROT + 1
#end
}
union {
cylinder {
<0, 0, LG_E>,
<0, 0, -LG_BRICK_HEIGHT>,
LG_BRICK_WIDTH/2-LG_E
}
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT>,
<0, 0, -LG_BRICK_HEIGHT-LG_E>,
LG_BRICK_WIDTH/2
}
}
}
}
#declare lg_4588_clear =
merge {
object {
lg_tech_knob_clear
}
difference {
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT+LG_E>,
<0, 0, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CYLINDER_RADIUS }
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT+2*LG_E>,
<0, 0, -LG_BRICK_HEIGHT>,
LG_KNOB_RADIUS
}
}
difference {
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_CORNER_SPACE+LG_E>,
<0, 0, -LG_BRICK_HEIGHT>,
LG_CYLINDER_RADIUS-LG_CORNER_SPACE }
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT>,
<0, 0, -LG_BRICK_HEIGHT-LG_E>,
LG_KNOB_RADIUS+LG_CORNER_SPACE
}
}
difference {
merge {
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT+LG_CORNER_SPACE>,
<0, 0, -LG_CORNER_SPACE>,
LG_BRICK_WIDTH/2
}
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT>,
<0, 0, 0>,
LG_BRICK_WIDTH/2-LG_CORNER_SPACE }
}
merge {
cylinder {
<0, 0, -LG_BRICK_HEIGHT>,
<0, 0, -LG_TOP_HEIGHT>,
LG_KNOB_RADIUS
}
cylinder {
<0, 0, LG_E>,
<0, 0, -LG_TOP_HEIGHT-LG_E>,
LG_KNOB_INNER_RADIUS
}
}
}
torus {
LG_CYLINDER_RADIUS-LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, 0>
translate <0, 0, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>
}
torus {
LG_KNOB_RADIUS+LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, 0>
translate <0, 0, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>
}
torus {
LG_BRICK_WIDTH/2-LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, 0>
translate <0, 0, -LG_CORNER_SPACE>
}
torus {
LG_BRICK_WIDTH/2-LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, 0>
translate <0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT+LG_CORNER_SPACE>
}
intersection {
merge {
#declare ROT = 0
#while (ROT < 4)
merge {
cylinder { <LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE>,
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
0.08
}
cylinder { <LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE-LG_E>,
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, 0>,
0.08-LG_CORNER_SPACE
}
torus {
0.08-LG_CORNER_SPACE,
LG_CORNER_SPACE
rotate <90, 0, >
translate <LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE>
}
cylinder {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, -LG_CORNER_SPACE>,
<LG_KNOB_RADIUS, LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, -LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
<LG_KNOB_RADIUS, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
0.08
}
box {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, 0>,
<LG_KNOB_RADIUS, LG_KNOB_RADIUS, -2*LG_PLATE_HEIGHT>
}
box {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2, -LG_CORNER_SPACE>,
<LG_KNOB_RADIUS, LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE+LG_E, -2*LG_PLATE_HEIGHT>
}
cylinder {
<LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE>,
<LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, LG_KNOB_RADIUS, -LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
<LG_CROSSAXLE_WIDTH/2+0.08, LG_KNOB_RADIUS, -2*LG_PLATE_HEIGHT>,
0.08
}
box {
<LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE, LG_CROSSAXLE_WIDTH/2+0.08, 0>,
<LG_KNOB_RADIUS, LG_KNOB_RADIUS, -2*LG_PLATE_HEIGHT>
}
box {
<LG_CROSSAXLE_WIDTH/2, LG_CROSSAXLE_WIDTH/2+0.08, -LG_CORNER_SPACE>,
<LG_CROSSAXLE_WIDTH/2+LG_CORNER_SPACE+LG_E, LG_KNOB_RADIUS, -2*LG_PLATE_HEIGHT>
}
sphere {
<LG_CROSSAXLE_WIDTH/2+0.08, LG_CROSSAXLE_WIDTH/2+0.08, -2*LG_PLATE_HEIGHT>,
0.08
}
rotate <0, 0, 90*ROT>
}
#declare ROT = ROT + 1
#end
}
cylinder {
<0, 0, LG_E>,
<0, 0, -LG_BRICK_HEIGHT>,
LG_KNOB_RADIUS+LG_CORNER_SPACE
}
}
difference {
merge {
#declare ROT = 0
#while (ROT < 4)
merge {
sphere {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
sphere {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
sphere {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
sphere {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_KNOB_RADIUS+LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
cylinder {
<LG_KNOB_RADIUS+LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
LG_CORNER_SPACE
}
box {
<LG_KNOB_RADIUS+LG_CORNER_SPACE, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE+LG_E>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -LG_BRICK_HEIGHT>
}
box {
<LG_BRICK_WIDTH, LG_WALL_WIDTH/2-LG_CORNER_SPACE, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE-LG_E, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>
}
box {
<LG_KNOB_RADIUS+LG_CORNER_SPACE, LG_WALL_WIDTH/2, -LG_BRICK_HEIGHT+LG_CORNER_SPACE>,
<LG_BRICK_WIDTH-LG_CORNER_SPACE, -LG_WALL_WIDTH/2, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>
}
merge {
cylinder {
<0, LG_WALL_WIDTH/2-LG_CORNER_SPACE, 0>,
<0, LG_WALL_WIDTH/2-LG_CORNER_SPACE, 2*LG_PLATE_HEIGHT/cos(32.3*pi/180)>,
LG_CORNER_SPACE
}
cylinder {
<0, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, 0>,
<0, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, 2*LG_PLATE_HEIGHT/cos(32.3*pi/180)>,
LG_CORNER_SPACE
}
box {
<-LG_E, LG_WALL_WIDTH/2-LG_CORNER_SPACE, 0>,
<LG_CORNER_SPACE, -LG_WALL_WIDTH/2+LG_CORNER_SPACE, 2*LG_PLATE_HEIGHT/cos(32.3*pi/180)>
}
box {
<0, LG_WALL_WIDTH/2, 0>,
<-LG_BRICK_WIDTH/2, -LG_WALL_WIDTH/2, 2*LG_PLATE_HEIGHT/cos(32.3*pi/180)>
}
rotate <0, -32.3, 0>
translate <LG_BRICK_WIDTH-LG_CORNER_SPACE, 0, -2*LG_PLATE_HEIGHT-LG_CORNER_SPACE>
}
rotate <0, 0, 90*ROT>
}
#declare ROT = ROT + 1
#end
}
merge {
cylinder {
<0, 0, LG_E>,
<0, 0, -LG_BRICK_HEIGHT>,
LG_BRICK_WIDTH/2-LG_E
}
cylinder {
<0, 0, -LG_BRICK_HEIGHT+LG_PLATE_INNER_HEIGHT>,
<0, 0, -LG_BRICK_HEIGHT-LG_E>,
LG_BRICK_WIDTH/2
}
}
}
}
#end |