fix box_maker_living_hinge

This commit is contained in:
Mario Voigt 2023-01-11 00:33:17 +01:00
parent 2dec70a6d2
commit 5550e09014

View File

@ -417,7 +417,7 @@ class BoxMakerLivingHinge(inkex.EffectExtension):
#center middle row #center middle row
[(2,0,0,1),(2,0,0,1),X,Y,0b0000,0], [(2,0,0,1),(2,0,0,1),X,Y,0b0000,0],
#right middle row #right middle row
[(3,1,0,1),(2,0,0,1),Z+(self.EllipseCircumference(X/2, Z/2)/4)+thickness,Y,0b1011,1], [(3,1,0,1),(2,0,0,1),Z/2+(self.EllipseCircumference(X/2, Z/2)/4) + X/2,Y,0b1011,1],
#center top row #center top row
[(2,0,0,1),(1,0,0,0),X,Z,0b0010,-1]] [(2,0,0,1),(1,0,0,0),X,Z,0b0010,-1]]
elif layout==1: # Inline(compact) Layout elif layout==1: # Inline(compact) Layout
@ -425,10 +425,12 @@ class BoxMakerLivingHinge(inkex.EffectExtension):
[(1,0,0,0),(1,0,0,0),X,Y,0b0000,0], [(1,0,0,0),(1,0,0,0),X,Y,0b0000,0],
#Front panel #Front panel
[(2,1,0,0),(1,0,0,0),Z,Y,0b1111,0], [(2,1,0,0),(1,0,0,0),Z,Y,0b1111,0],
#Sides with curves #Side with curves #1
[(3,1,0,1),(1,0,0,0),X,Z,0b1000,-2], [(3,1,0,1),(1,0,0,0),X,Z,0b1000,-2],
#Side with curves #2
[(4,2,0,1),(1,0,0,0),X,Z,0b0010,-1], [(4,2,0,1),(1,0,0,0),X,Z,0b0010,-1],
#Long piece w/ hinge #Long piece w/ hinge
[(5,3,0,1),(1,0,0,0),Z/2+(self.EllipseCircumference(X/2, Z/2)/4) + X/2,Y,0b1011,1]
] ]
for piece in pieces: # generate and draw each piece of the box for piece in pieces: # generate and draw each piece of the box
@ -460,7 +462,7 @@ class BoxMakerLivingHinge(inkex.EffectExtension):
elif piece[5] == -1: elif piece[5] == -1:
self.drawS(self.side(x+dx+skew,y+dy,-b,-c,-b,a,thickness if b else -thickness,dy,0,-1,b,shortSide, True)) # side b (right) when the right side participates in a curve self.drawS(self.side(x+dx+skew,y+dy,-b,-c,-b,a,thickness if b else -thickness,dy,0,-1,b,shortSide, True)) # side b (right) when the right side participates in a curve
else: else:
#It is a cardnal sin to compare floats, so assume <0.0005 is 0 since the front end only gives you 3 digits of precision #It is a cardinal sin to compare floats, so assume <0.0005 is 0 since the front end only gives you 3 digits of precision
if float(0.0005) <= float(self.options.thumbTab): if float(0.0005) <= float(self.options.thumbTab):
self.side(x+dx+skew,y,-b,a,-b,-c,thickness if b else -thickness,dy,0,1,b,shortSide, False, True, True) #The one call to side that doesn't actually draw. Instead, side draws boxes on its own self.side(x+dx+skew,y,-b,a,-b,-c,thickness if b else -thickness,dy,0,1,b,shortSide, False, True, True) #The one call to side that doesn't actually draw. Instead, side draws boxes on its own
self.drawS(self.box(x+dx+skew,y+thickness,x+dx+skew+self.svg.unittouu( thumbTab + unit ),y+dy-thickness, True)) self.drawS(self.box(x+dx+skew,y+thickness,x+dx+skew+self.svg.unittouu( thumbTab + unit ),y+dy-thickness, True))
@ -485,7 +487,7 @@ class BoxMakerLivingHinge(inkex.EffectExtension):
if not inside: if not inside:
self.livingHinge3(x+(Z/2), y+thickness, x+(Z/2)+(self.EllipseCircumference(X/2, Z/2)/4), y + dy - thickness, 1, hingeThick) self.livingHinge3(x+(Z/2), y+thickness, x+(Z/2)+(self.EllipseCircumference(X/2, Z/2)/4), y + dy - thickness, 1, hingeThick)
else: else:
self.livingHinge3(x+(Z/2), y + 2*thickness, x+(Z/2)+(self.EllipseCircumference(X/2, Z/2)/4), y + dy - 2*thickness, 1, hingeThick) self.livingHinge3(x+(Z/2), y + 2*thickness, x+(Z/2)+(self.EllipseCircumference(X/2, Z/2)/4), y + dy - 2*thickness, 1, hingeThick)#
elif hingeOpt == 2: #Double spiral elif hingeOpt == 2: #Double spiral
self.livingHinge3(x+(Z/2), y+thickness, x+(Z/2)+(self.EllipseCircumference(X/2, Z/2)/4), y + (dy/2), 1, hingeThick) self.livingHinge3(x+(Z/2), y+thickness, x+(Z/2)+(self.EllipseCircumference(X/2, Z/2)/4), y + (dy/2), 1, hingeThick)