// Last edited on 2005-08-29 22:28:57 by stolfi // Profile given by Remigio on 2005-08-27, with flat mirrors #macro heater_profile_num_points() 20 #end #macro heater_profile_radius() 1.000 #end #macro heater_profile_height() #local m = 1.000/1.500; // To scale Remigio's design to 1m radius 1.320*m #end #macro heater_profile_points() #local N = heater_profile_num_points(); #local BB = array[N] // Corners: #local BB[ 0] = < +0.010, -1.320 >; #local BB[ 3] = < +0.290, -1.310 >; #local BB[ 4] = BB[ 3]; #local BB[ 7] = < +1.150, -0.950 >; #local BB[ 8] = BB[ 7]; #local BB[11] = < +1.400, -0.650 >; #local BB[12] = BB[11]; #local BB[15] = < +1.490, -0.250 >; #local BB[16] = BB[15]; #local BB[19] = < +1.500, 00.000 >; // Add intermediate control points for straight lines: #local i = 0; #while (i < N) #local dB = BB[i+3]-BB[i]; #local BB[i+1] = BB[i] + dB/3; #local BB[i+2] = BB[i+3] - dB/3; #local i = i + 4; #end // Scale Remigio's design from 1.5m radius to 1m radius: #local m = 1.000/1.500; #local i = 0; #while (i < N) #local BB[i] = m*BB[i]; #local i = i + 1; #end BB #end