HexaCone/elements.inc
2024-12-20 14:24:45 +01:00

174 lines
3.2 KiB
PHP

/*
* nouveau projet Thu Dec 5 11:37:05 AM UTC 2024
*/
#declare HexaCone_shape = object
{
#local RA = 0.125;
#local RB = 0.001;
union {
cone { 0, RA, <-1, 0, 0>, RB }
cone { 0, RA, < 1, 0, 0>, RB }
cone { 0, RA, < 0, 0, 1>, RB }
cone { 0, RA, < 0, 0, -1>, RB }
cone { 0, RA, < 0, 1, 0>, RB }
cone { 0, RA, < 0, -1, 0>, RB }
}
}
#declare HexaCone_body = object
{
union {
difference {
object { HexaCone_shape }
object { HexaCone_shape scale 0.99 }
sphere {0, 0.24 }
cylinder { <-1, 0, 0.55>, <1, 0, 0.55>,
RA*0.40 }
}
difference {
sphere {0, 0.20 }
sphere {0, 0.18 }
cylinder {-x, x, 0.10 }
cylinder {-y, y, 0.10 }
cylinder {-z, z, 0.10 }
}
light_source { 0, rgb <0.99, 0.05, 0.05>
fade_distance 0.99
fade_power 1.58
}
}
texture { New_Penny }
}
/*
*
*/
#local Branche_radar = object
{
#local D1 = 0.08;
#local D2 = 0.0035;
merge {
cone { 0, D2, 0.04*y, 0.00007 }
sphere { 0, D2*2.2 scale <1, 1.77, 1> }
intersection {
torus { D1, D2 }
box { <2, -2, 2>, <0, 2, 0> }
rotate x*90
translate -D1*x
}
}
}
#declare HexaCone_radar = object
{
union {
#for (foo, 0, 360, 60)
#local RR = 0.12;
#local PX = RR * sin(radians(foo));
#local PZ = RR * cos(radians(foo));
object { Branche_radar
rotate y*(foo-90)
translate <PX, 0, PZ>
}
#local R2 = 0.08;
#end
torus { R2, 0.0034 translate -0.08*y }
}
texture { Soft_Silver scale 6.0 }
}
/*
* new Mon Dec 16 12:44:44 PM UTC 2024
*/
#local Une_derive = object
{
difference {
merge {
sphere { 0, 0.009 scale <1, 1, 4.70>
translate <0, 0.26, -0.17> }
cone { <0, -0.1, 0>, 0.09, <0, 0.26, -0.17>, 0.0096
scale <0.14, 1, 1> }
}
box { <-1, -1, -1>, <1, 0, 1> }
}
texture { Soft_Silver scale 6.0 }
}
#declare HexaCone_derives = object
{
union {
object { Une_derive }
object { Une_derive rotate 120*z }
object { Une_derive rotate -120*z }
}
}
#declare HexaCone_head = object
{
#local DTa = 0.278;
#local DTb = 0.030;
merge {
difference {
torus { DTa, DTb }
#local TB = 0.50;
box { <-TB, -TB, TB>, <TB, TB, 0> }
}
sphere { 0, DTb*1.55 translate -DTa*x }
sphere { 0, DTb*1.55 translate DTa*x }
}
texture { Orange_Glass }
}
/*
*
*/
#local Rtuy = 0.06;
#local Ltuy = 0.09;
#local Etuy = 0.01; // epaisseur des parois
#declare Tuyere = object
{
#local dX = Ltuy;
merge {
#local R2 = Rtuy - (Etuy/2.0);
intersection {
torus { R2, Etuy/2 scale <1, 18, 1> }
box { <-1, 0, -1>, <1, 1, 1> }
rotate 90*z translate -dX*x
}
torus { R2, Etuy/2 scale <1, 0.75, 1> rotate 90*z translate dX*x }
#if (1)
#difference {
cylinder { <-dX, 0, 0>, <dX, 0, 0>, Rtuy }
cylinder { <-(dX+1), 0, 0>, <dX+2, 0, 0>, Rtuy-Etuy }
}
#end
cylinder { y*Rtuy, y*(Rtuy+0.08), 0.010 scale <2.95, 1, 1> }
}
texture { T_Brass_1C }
}
#declare Les_Tuyeres = object
{
union {
#local E = 0.59;
object { Tuyere translate -E*z }
object { Tuyere translate E*z }
}
rotate -y*90
}
#declare HexaCone = object
{
union {
object { HexaCone_body }
#local T = 0.55;
object { HexaCone_head translate <0, 0, T+DTa> }
object { HexaCone_radar translate <0, T+0.18, 0> }
object { HexaCone_derives translate <0, 0, -0.67> }
object { Les_Tuyeres translate -0.18*y }
}
rotate <-7, 0, -4>
}