DEF bottomArc (d::IsRealPos) = Bezier:S1:<<0,0>,<0,2*d/3>,<d,2*d/3>,<d,0>>;
DEF topArc (d::IsRealPos) = Bezier:S1:<<0,2*d/3>,<d,2*d/3>>;
DEF arc2D (d::IsRealPos) = Bezier:S2:<bottomArc:d,topArc:d>;
DEF arc3D (d::IsRealPos)(w::IsRealPos) = (T:2:w ~ R:<2,3>:(PI/2)): ( MAP:(CONS:(arc2D:d)):(Intervals:1:8 * Intervals:1:1) * QUOTE:<w> );
DEF Interarc (d1,d2::IsReal) (w::IsRealPos)= CUBOID:<d1,w,2*d2/3>;
DEF Xarc (d1,d2::IsRealPos) (w::IsRealPos) = Interarc:<d1,d2>:w RIGHT arc3D:d2:w RIGHT Interarc:<d1,d2>:w;
DEF SizeArc = SIZE:1:TheArc;
DEF TheArc = Xarc:<0.4,3.2>:1.5;
DEF HeigthArc = SIZE:3:CurvedArc;
DEF CurvedArc = (cylMap ~ T:2:(r2 - 0.75) ~ S:<1,3>:<sx,sz>): TheArc WHERE sx = (1/SizeArc)*arcAngle, sz = sx * (r2 - 2) END;
DEF The5arcs = ( STRUCT ~ ##:5):< CurvedArc, R:<1,2>:(-:arcAngle) >;
DEF The6arcs = (STRUCT ~ ##:6):< CurvedArc, R:<1,2>:(-:arcAngle) >;
DEF TheMidWall = (cylMap ~ MKPOL ~ UKPOL ~ T:2:(r2 - 0.75) ~ CUBOID): <3.2*arcAngle/4, 1.5, HeigthArc>;
DEF TheSector = STRUCT:< R:<1,2>: RotCross, TheMidWall, R:<1,2>:wallAngle, The5arcs, R:<1,2>:(-5*arcAngle), TheMidWall, R:<1,2>:wallAngle, The6arcs >;
DEF TheArcs = (STRUCT ~ ##:4): <TheSector, R:<1,2>:(PI/-2)>;
DEF TheArcsCols = STRUCT:< TheMedColumns, T:3:hCol, TheArcs >;
DEF MedWall2D = MKPOL: <<<0,4>,<8,4>, <17,4>,<17,5>,<12.5,7.5>,<8,5>,<0,8>>, <<1,2,6,7>,<2,3,4,5,6>>, <<1>,<2>>> & (QUOTE:(#:17:1) * QUOTE:<8>);
DEF sizxMedWall = SIZE:1:MedWall2D;
DEF MedWall = R:<2,3>:(PI/2):(MedWall2D * QUOTE:<1.5>);
DEF CurvedMedWall = (cylMap ~ MKPOL ~ UKPOL ~ T:2:(r2+0.75) ~ S:<1,3>: <PI/(4*sizxMedWall),hw4/8>):MedWall;
DEF DoubleMedWall = STRUCT: <CurvedMedWall, S:1:-1:CurvedMedWall>;
DEF FullMedWall = (STRUCT ~ ##:4): <DoubleMedWall, R:<1,2>:(PI/2)>;
DEF MedWallArcs = STRUCT:< FullMedWall, TheArcsCols >;