40 lines
1.8 KiB
Python
40 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import inkex
|
|
from cutcraftshape import CutCraftShape
|
|
import cutcraft.platforms as cp
|
|
from cutcraft.shapes import Cylinder
|
|
|
|
class CutCraftCylinder(CutCraftShape):
|
|
def __init__(self):
|
|
CutCraftShape.__init__(self)
|
|
self.arg_parser.add_argument("--vertices", type=int, default=3, help="Number of vertices")
|
|
self.arg_parser.add_argument("--levels", type=int, default=3, help="Number of levels")
|
|
self.arg_parser.add_argument("--supports", type=int, default=3, help="Number of supports")
|
|
self.arg_parser.add_argument("--supwidth", type=float, default=6.0, help="Support Width")
|
|
self.arg_parser.add_argument("--height", type=float, default=60.0, help="Cylinder height")
|
|
self.arg_parser.add_argument("--outer", type=float, default=60.0, help="Diameter of cylinder")
|
|
self.arg_parser.add_argument("--inner", type=float, default=30.0, help="Diameter of central hole - 0.0 for no hole")
|
|
|
|
def effect(self):
|
|
CutCraftShape.effect(self)
|
|
|
|
vertices = self.options.vertices
|
|
levels = self.options.levels
|
|
supports = self.options.supports
|
|
supwidth = self.svg.unittouu( str(self.options.supwidth) + self.unit )
|
|
height = self.svg.unittouu( str(self.options.height) + self.unit )
|
|
outer = self.svg.unittouu( str(self.options.outer) + self.unit )
|
|
inner = self.svg.unittouu( str(self.options.inner) + self.unit )
|
|
|
|
if outer<=inner:
|
|
self._error("ERROR: Outer diameter must be greater than inner diameter.")
|
|
exit()
|
|
|
|
shape = Cylinder(height, outer/2.0, inner/2.0, vertices, supports, supwidth/2.0, supwidth, levels,
|
|
self.thickness, self.kerf)
|
|
|
|
self.pack(shape)
|
|
|
|
if __name__ == '__main__':
|
|
CutCraftCylinder().run() |