LP26B ONDA (Code Link)
The LP26B ONDA is a wall light formed by a single strip of electro-coloured steel scarab-beetle colour and chrome-plated studs The structure of the light is similar to a wave and that is why is called "ONDA".
First of all i draw the green wave structure. For this purpose i used Bezier curves.
curve1_lamp = BEZIER(S1)([[0,0,0],[1,0,0],[3,3,0],[4,3,0],[4,0,0],[4.5,0,0]]) curve2_lamp = BEZIER(S1)([[-2,0,-0.1],[-2,0,0],[0,0,0]]) curve3_lamp = BEZIER(S1)([[4.5,0,0],[5.5,0,0],[5.5,0,-0.1]]) curve4_lamp = BEZIER(S1)([[0,0,-1.5],[1,0,-1.5],[3,3,-1.5],[4,3,-1.5],[4,0,-1.5],[4.5,0,-1.5]]) [..] map1_lamp = MAP(BEZIER(S2)([curve1_lamp,curve4_lamp]))(domain2) map2_lamp = MAP(BEZIER(S2)([curve2_lamp,curve5_lamp]))(domain2) map3_lamp = MAP(BEZIER(S2)([curve3_lamp,curve6_lamp]))(domain2) map4_lamp = MAP(BEZIER(S2)([curve4_lamp,curve10_lamp]))(domain2) [..] lamp_structure = STRUCT([map1_lamp,..,map12_lamp])
Then i draw the bulb light. I wrote some Bezier-based function to help me with this object. The glass of thebulb is realized with a 'SEMISPHERE' function
semicircle_a = function(x1,y1,z,tx,ty,tz1,tz2){ semix = x1/2 semia = BEZIER(S1)([[tx+semix,ty,z+tz1],[tx+semix,ty+y1,z+tz2],[tx-semix,ty+y1,z+tz2],[tx-semix,ty,z+tz1]]) return semia } semicircle_b = function(x1,y1,z,tx,ty,tz1,tz2){ semix = x1/2 semib = BEZIER(S1)([[tx+semix,ty,z+tz1],[tx+semix,-y1+ty,z+tz2],[tx-semix,-y1+ty,z+tz2],[tx-semix,ty,z+tz1]]) return semib } var SEMISPHERE = function (r) { var domain = DOMAIN([[0, PI], [0, PI]])([50,50]); var mapping = function (v) { var a = v[0]; var b = v[1]; return [r*SIN(a)*COS(b), r/2*SIN(a)*SIN(b), r*COS(a)]; }; var model = MAP(mapping)(domain); return model; }; [..] curve1a_light = semicircle_a(1.2,0.85,0.1,0,0,0,0) curve1b_light = semicircle_b(1.2,0.85,0.1,0,0,0,0) curve2a_light = semicircle_a(1.2,0.85,0.15,0,0,0,0) curve2b_light = semicircle_b(1.2,0.85,0.15,0,0,0,0) curve3a_light = semicircle_a(1.1,0.75,0.15,0,0,0,0) curve3b_light = semicircle_b(1.1,0.75,0.15,0,0,0,0) [..] map1_light = COLOR([255/255,255/255,0/255])(MAP(BEZIER(S2)([curve1a_light,curve1b_light]))(domaininv)) map2_light = COLOR([61/255,61/255,61/255])(MAP(BEZIER(S2)([curve2a_light,curve2b_light]))(domain2)) map3_light = COLOR([61/255,61/255,61/255])(MAP(BEZIER(S2)([curve1a_light,curve2a_light]))(domain2)) [..] light = STRUCT([map1_light,..,map14_light]) glass_light = SEMISPHERE(0.64);
Finally i added the studs.
This is the final LP26B ONDA model.
This is the original model.