# # Model of airplane # #create the body of airplane cbody = cbspline(3, list( ctlpt(E3,0.0000, 0.0, -1.160000 ), ctlpt(E3,0.284 , 0.0, -1.160000), ctlpt(E3, 0.524, 0.0, -0.764000), ctlpt(E3, 0.568, 0.0, -0.436000), ctlpt(E3, 0.524, 0.0, -0.012000), ctlpt(E3, 0.452, 0.0, 0.26000), ctlpt(E3, 0.356, 0.0, 0.492000), ctlpt(E3, 0.236, 0.0, 0.640000), ctlpt(E3, 0.0, 0.0, 0.640000)), list(0,0,0,3,4,5,6,7,8,11,11,11) ); body = surfrev(cbody); #create the sections of wing wingsec1 = cbspline(4, list( ctlpt(E3, 0.0, 0.0, 0.2), ctlpt(E3, 0.007, 0.0, 0.2), ctlpt(E3, 0.01, 0.0, 0.01), ctlpt(E3, 0.07, 0.0, -0.2), ctlpt(E3, 0.0, 0.0, -0.2), ctlpt(E3, -0.07, 0.0, -0.2), ctlpt(E3, -0.01, 0.0, 0.01), ctlpt(E3, -0.007, 0.0, 0.2), ctlpt(E3, 0.0, 0.0, 0.2)), list(0,0,0,0,2,3,4,5,6,7,7,7,7)); wingsec2 = wingsec1 * scale(vector(0.2,0.2,0.2))* trans(vector(0.0,0.65,0.0)); wingsec3 = wingsec1*scale(vector(0.207,0.207,0.207)) *trans(vector(0.0,0.675,0.0)); wingsec4 = wingsec3 * scale(vector(0.0,0.0,0.5)) *trans(vector(0.0,0.68,0.0)); #create the wing as surface on the sections wing = sfromcrvs(list(wingsec1,wingsec2,wingsec3,wingsec4),4); #create the two wings and tail rightwing = wing * scale(vector(2.,2.,2))* trans(vector(0.0,0.45,-0.2)); leftwing = rightwing*rotz(180); tail = rightwing * roty(180)*scale(vector(1.5,0.5,0.6))* rotz(90) * roty(10)*trans(vector(-0.1,0.0,0.15)); # create the propeller s = sphere(vector(0.0,0.0,0.0),0.1); blade = sfromcrvs ( list( cbezier(list( ctlpt(E3, 0.0, -0.07, 0.0), ctlpt(E3, 0.0, 0.07, 0.0))), cbezier(list( ctlpt(E3, 0.4, -0.18, 0.0), ctlpt(E3, 0.4, 0.18, 0.0))), cbezier(list( ctlpt(E3, 0.5, -0.13, 0.0), ctlpt(E3, 0.5, 0.13, 0.0))), cbezier(list( ctlpt(E3, 0.6, -0.05, 0.0), ctlpt(E3, 0.6, 0.05, 0.0))), cbezier(list( ctlpt(E3, 0.6, 0.0, 0.0), ctlpt(E3, 0.6, 0.0, 0.0)))), 5); bld = blade * rotx(180); bl1 = blade * trans(vector(0.0,0.0,0.005)); bl2 = bld * trans(vector(0.0,0.0, -0.005)); crossaxis = cmesh(blade,COL,0); cov1 = sweepsrf(cbezier(list( ctlpt(E3, 0.0, -0.005, 0.0), ctlpt(E3, 0.0, 0.005, 0.0))), crossaxis,OFF); cov = cov1 + cov1*rotx(180); blade = bl1 + bl2 + cov; #create the four blades of propeller blade1 = blade * rotx(15) * trans(vector(0.03,0.0,0.0)); blade2 = blade1 * rotz(90); blade3 = blade2 * rotz(90); blade4 = blade3 * rotz(90); propeller = list(s,blade2,blade4,blade3,blade1); propeller = propeller * trans(vector(0.0,0.0,-1.18)); color(propeller,RED); #create the ladinggear a1 = sweepsrf(circle(vector(0.0,0.0,0.0),0.02), cbezier(list(ctlpt(E3, 0.0, -0.4, 0.0), ctlpt(E3, 0.0, 0.4, 0.0))),OFF); a2 = sweepsrf(circle(vector(0.0,0.0,0.0),0.02), cbezier( list (ctlpt(E3, -0.15, 0.0, 0.0), ctlpt(E3, 0.0, 0.0, 0.0) ) ),OFF); axis = a1+a2; landgear = list(axis, torus(vector(0.0, -0.37, 0.0),vector(0.0,-1.0,0.0),0.06,0.04), torus(vector(0.0, 0.37, 0.0),vector(0.0, 1.0, 0.0),0.06,0.04)); color(landgear,BLUE); landgear1 = landgear * trans(vector(0.57,0.0,-0.9)); landgear2 = landgear * trans(vector(0.45,0.0, 0.4)); # base of airplane base = list(body,leftwing,rightwing,tail); color(base,GREEN); airplane = list(base,landgear1,landgear2,propeller); #interact(airplane); #save("airplane",airplane);