Add HexHolesSettings class
to get rid of the settings tuple and to support changing them in the UI Related: #33
This commit is contained in:
parent
415b133822
commit
e643e07b4d
|
@ -215,6 +215,28 @@ class BoolArg:
|
||||||
|
|
||||||
boolarg = BoolArg()
|
boolarg = BoolArg()
|
||||||
|
|
||||||
|
|
||||||
|
class HexHolesSettings(edges.Settings):
|
||||||
|
"""Settings for hexagonal hole patterns
|
||||||
|
|
||||||
|
Values:
|
||||||
|
|
||||||
|
* absolute
|
||||||
|
* diameter : 5.0 : diameter of the holes
|
||||||
|
* distance : 3.0 : distance between the holes
|
||||||
|
* style : "circles" : currently only supported style
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
absolute_params = {
|
||||||
|
'diameter' : 10.0,
|
||||||
|
'distance' : 3.0,
|
||||||
|
'style' : ('circle', ),
|
||||||
|
}
|
||||||
|
|
||||||
|
relative_params = {}
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
### Main class
|
### Main class
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
@ -310,7 +332,6 @@ class Boxes:
|
||||||
return
|
return
|
||||||
|
|
||||||
self.bedBoltSettings = (3, 5.5, 2, 20, 15) # d, d_nut, h_nut, l, l1
|
self.bedBoltSettings = (3, 5.5, 2, 20, 15) # d, d_nut, h_nut, l, l1
|
||||||
self.hexHolesSettings = (5, 3, 'circle') # r, dist, style
|
|
||||||
self.surface, self.ctx = self.formats.getSurface(self.format, self.output)
|
self.surface, self.ctx = self.formats.getSurface(self.format, self.output)
|
||||||
|
|
||||||
if self.format == 'svg_Ponoko':
|
if self.format == 'svg_Ponoko':
|
||||||
|
@ -512,6 +533,10 @@ class Boxes:
|
||||||
edges.RoundedTriangleEdgeSettings(self.thickness, True,
|
edges.RoundedTriangleEdgeSettings(self.thickness, True,
|
||||||
**self.edgesettings.get("RoundedTriangleEdge", {})).edgeObjects(self)
|
**self.edgesettings.get("RoundedTriangleEdge", {})).edgeObjects(self)
|
||||||
|
|
||||||
|
# HexHoles
|
||||||
|
self.hexHolesSettings = HexHolesSettings(self.thickness, True,
|
||||||
|
**self.edgesettings.get("HexHoles", {}))
|
||||||
|
|
||||||
# Nuts
|
# Nuts
|
||||||
self.addPart(NutHole(self, None))
|
self.addPart(NutHole(self, None))
|
||||||
# Gears
|
# Gears
|
||||||
|
@ -1349,7 +1374,7 @@ class Boxes:
|
||||||
"""
|
"""
|
||||||
if settings is None:
|
if settings is None:
|
||||||
settings = self.hexHolesSettings
|
settings = self.hexHolesSettings
|
||||||
r, b, style = settings
|
r, b, style = settings.diameter/2, settings.distance, settings.style
|
||||||
|
|
||||||
w = r + b / 2.0
|
w = r + b / 2.0
|
||||||
dist = w * math.cos(math.pi / 6.0)
|
dist = w * math.cos(math.pi / 6.0)
|
||||||
|
@ -1432,7 +1457,7 @@ class Boxes:
|
||||||
"""
|
"""
|
||||||
if settings is None:
|
if settings is None:
|
||||||
settings = self.hexHolesSettings
|
settings = self.hexHolesSettings
|
||||||
r, b, style = settings
|
r, b, style = settings.diameter/2, settings.distance, settings.style
|
||||||
|
|
||||||
self.ctx.rectangle(0, 0, h, h)
|
self.ctx.rectangle(0, 0, h, h)
|
||||||
w = r + b / 2.0
|
w = r + b / 2.0
|
||||||
|
|
Loading…
Reference in New Issue