Bruno Munari

Industrial Design

Dattilo Code

      		






/** * @author Alessio Ciccarelli */ // function to create a tube function tube(r,h){ var domaint = DOMAIN([[0,1],[0,2*PI]])([32,32]); var tube = CYL_SURFACE([r,h])(32); var basetmp = BEZIER(S0)([[r,0,0],[r,0,0],[0,0,0]]); var mappingbase = ROTATIONAL_SURFACE(basetmp); return tube; } // function to create a tube function tubeBase(r,h){ var domaint = DOMAIN([[0,1],[0,2*PI]])([16,16]); var tube = CYL_SURFACE([r,h])(16); var basetmp = BEZIER(S0)([[r,0,0],[r,0,0],[0,0,0]]); var mappingbase = ROTATIONAL_SURFACE(basetmp); var base = MAP(mappingbase)(domaint) var baset = T([2])([h])(base); return STRUCT([tube,base,baset]); } // function to create a picket function picket() { var c1 = CUBOID([1,0.1,9]); var c2 = T([2])([9])(CUBOID([1,0.2,0.1])); var c3 = T([1])([0.2])(c1); return COLOR([0,0,0])(STRUCT([c1,c2,c3])); } // function to create a surface with bezier curve function bezier_surface (controlpoints,dim,domain) { var curve = BEZIER(dim)(controlpoints); var mapping = ROTATIONAL_SURFACE(curve); return MAP(mapping)(domain); } function wire(points) { var domain = INTERVALS(1)(32); var curveMapping = BEZIER(S0)(points); var curve = MAP(curveMapping)(domain); return curve; } // creating the external surface var outline = T([2])([2])(COLOR([255,255,255])(tube(5,7))); var picket = picket(); var picket1 = T([0,1])([-0.25,4.7])(picket); var picket2 = T([0,1])([-4.3,-2.2])(ROTATE([0,1])(PI*(1.2/2))(picket)); var picket3 = T([0,1])([3.5,-3.05])(ROTATE([0,1])(PI*(-1.5/2))(picket)); var domaint = DOMAIN([[0,1],[0,2*PI]])([16,16]); var basetmp = BEZIER(S0)([[1,0,9.1],[1,0,9.1],[0,0,9.1]]); var mappingbase = ROTATIONAL_SURFACE(basetmp); var base = COLOR([0,0,0])(MAP(mappingbase)(domaint)); var rod = COLOR([0,0,0])(T([1,2])([0.6,9])(CUBOID([0.5,4.2,0.1]))); var rod2 = T([1])([-0.25])(ROTATE([0,1])(PI*(1.25/2))(rod)); var rod3 = ROTATE([0,1])(PI*(-1.5/2))(rod); // creating lamp and internal surfaces var underLamp = COLOR([0,0,0])(T([2])([4])(tubeBase(0.25,0.5))); var c1 = [[0.25,0,4.5],[0.5,0,4.75],[0.75,0,5]]; var curve1 = COLOR([0,0,0])(bezier_surface(c1,S0,domaint)); var c2 = [[0.75,0,5],[0.75,0,5.25],[1.25,0,6],[0,0,7]]; var curve2 = COLOR([255,255,0])(bezier_surface(c2,S0,domaint)); var overLamp = COLOR([0,0,0])(T([2])([7])(tube(0.05,2))); var wirePoints = [[0,0,4],[0,0,3.5],[1,0,3],[2,0,2],[4,0,1],[7,0,0.5],[11,0,0.5]]; var f = wire(wirePoints); var model = STRUCT([outline,picket1,picket2,picket3,base,rod,rod2,rod3,underLamp,curve1,curve2,overLamp,f]); DRAW(model);