# macro front_wall_porch( tag ) // The facade of the house of the Rua Boaretto 113 // {tag} tag for part identification. // The axes are X towards the street, Y along the street, Z up. // The words "back", "front", "left", "right" mean "-X", "+X", "-Y", "+Y", // as seen from someone in the street looking towards the house. // The object has the origin at the front left corner of the first wall section, // garage floor level. The facade extends mostly in the -X, +Y, and +Z directions. // General dimensions of items. The Z dim is measured from garage floor level. #local fp_wall_dim = < 350, 13360, 4000> ; // Pillars and pseudopillars in facade. #local fp_pillar_sy = 350; // Y extent of facade pillars // Solid facade: #local fp_solid = box{ < 0, 0, 0 > + eps3, fp_wall_dim - eps3 translate - fp_wall_dim.x*x } // Punches for arches: #local fp_arch_sz = 2190; // Height of arches. #local fp_a0_dy = 70; // Left Y coord of arch. #local fp_a0_dim = < fp_wall_dim.x, 2920, fp_arch_sz >; #local fp_a0 = box{ < 0, 0, 0 > - eps3, fp_a0_dim + eps3 translate - fp_wall_dim.x*x } #local fp_a1_dy = fp_a0_dy + fp_a0_dim.y + fp_pillar_sy; // Left Y coord of arch. #local fp_a1_dim = < fp_wall_dim.x, 2420, fp_arch_sz >; #local fp_a1 = box{ < 0, 0, 0 > - eps3, fp_a1_dim + eps3 translate - fp_wall_dim.x*x } #local fp_a2_dy = fp_a1_dy + fp_a1_dim.y + fp_pillar_sy; // Left Y coord of arch. #local fp_a2_dim = < fp_wall_dim.x, 2700, fp_arch_sz >; #local fp_a2 = box{ < 0, 0, 0 > - eps3, fp_a2_dim + eps3 translate - fp_wall_dim.x*x } #debug concat("!! fp_a2_ey = ", str(fp_a2_dy + fp_a2_dim.y, 1, 0), "\n") #local fp_arches = union{ object{ fp_a0 translate fp_a0_dy*y } object{ fp_a1 translate fp_a1_dy*y } object{ fp_a2 translate fp_a2_dy*y } } // The facade: #local facade = difference{ object{ fp_solid } object{ fp_arches } texture{ tx_brick } } facade #end