diff --git a/lamp.py b/lamp.py index 7762389..dbba3ad 100755 --- a/lamp.py +++ b/lamp.py @@ -3,6 +3,13 @@ from boxes import * import math + +""" +22x7.5x7cm +D=23cm, d=21cm +d = 8" D = 9" +""" + class RoundedTriangleSettings(Settings): absolute_params = { "angle" : 60, @@ -36,7 +43,8 @@ class RoundedTriangle(Edge): class Lamp(Boxes): def __init__(self): - Boxes.__init__(self, width=1000, height=1000, thickness=5.0) + Boxes.__init__(self, width=1000, height=1000, + thickness=5.0, burn=0.05) self.fingerJointSettings = (5, 5) # XXX s = RoundedTriangleSettings(self.thickness, angle=72, r_hole=2) @@ -48,7 +56,7 @@ class Lamp(Boxes): self.fingerJointEdge(y) self.corner(90) self.fingerJointEdge(h) - self.roundedTriangle(y, 70, 25) + self.roundedTriangle(y, 75, 25) self.fingerJointEdge(h) self.corner(90) @@ -56,15 +64,24 @@ class Lamp(Boxes): """ r : radius of lamp w : width of surrounding ring + x : length box + y : width box + h : height box """ self.fingerJointEdge.settings.setValues(self.thickness, finger=5, space=5, relative=False) d = 2*(r+w) + self.roundedPlate(d, d, r, move="right", callback=[ lambda: self.hole(w, r+w, r),]) - self.roundedPlate(d, d, r, holesMargin=w/2.0) + #dist = ((2**0.5)*r-r) / (2**0.5) + 4 + #pos = (w-dist, dist) + self.roundedPlate(d, d, r, holesMargin=w/2.0) #, callback=[ + # lambda: self.hole(pos[0], pos[1], 7),]) self.roundedPlate(d, d, r, move="only left up") - self.surroundingWall(d, d, r, 150, top='h', bottom='h', move="up") + hole = lambda: self.hole(w, 70, 2) + self.surroundingWall(d, d, r, 120, top='h', bottom='h', callback=[ + None, hole, None, hole], move="up") self.ctx.save() self.rectangularWall(x, y, edges="fFfF", holesMargin=5, move="right") @@ -78,10 +95,10 @@ class Lamp(Boxes): self.rectangularWall(x, h, edges='hFFF', holesMargin=5, move="right") self.rectangularWall(x, h, edges='hFFF', holesMargin=5) - self.ctx.stroke() self.surface.finish() l = Lamp() -l.render(100, 20, 250, 140, 120) +l.flexSettings = (3, 5.0, 20.0) +l.render(r=4*25.4, w=20, x=270, y=150, h=100)