DEF Column (w,h::IsRealPos) = basis TOP trunk TOP capitel WHERE basis = CUBOID:<w,w,2*w/3>, trunk = CYLINDER:<w/2*0.85, h - w>:8, capitel = CUBOID:<w,w,w/3> END;
DEF hCol = 12 ;
DEF arcAngle = 2*PI/50.4;
DEF wallAngle = -3.2*arcAngle/4;
DEF RotCross = 3.2*arcAngle/4 + 2.5*arcAngle;
DEF MyColumn = (MKPOL ~ UKPOL ~ T:2:((r2 - 0.75)) ~ Column):<1.5,hCol>;
DEF The4cols = (R:<1,2>:(arcAngle*0.4/3.2) ~ MKPOL ~ UKPOL ~ STRUCT ~ ##:4):< R:<1,2>:(-:arcAngle), MyColumn >;
DEF The5cols = (R:<1,2>: (arcAngle* 0.4/ 3.2) ~ MKPOL ~ UKPOL ~ STRUCT ~ ##:5):< R:<1,2>:(-:arcAngle), MyColumn >;
DEF TheBotWal = (cylMap ~ MKPOL ~ UKPOL ~ T:2:(r2 - 0.75) ~ CUBOID): < 3.2*arcAngle/4, 1.5, hCol >;
DEF TheSecCols = STRUCT:< R:<1,2>: RotCross, TheBotWal, R:<1,2>:wallAngle, The4cols, R:<1,2>:(-5*arcAngle), TheBotWal, R:<1,2>:wallAngle, The5cols>;
DEF TheMedColumns = (STRUCT ~ ##:4):<TheSecCols, R:<1,2>:(PI/-2)>;