This repository has been archived on 2023-03-25. You can view files and clone it, but cannot push or open issues or pull requests.
mightyscape-1.1-deprecated/extensions/cutcraft/platforms/circular.py
2020-07-31 13:46:07 +02:00

41 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# Copyright (C) 2018 Michael Matthews
#
# This file is part of CutCraft.
#
# CutCraft is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# CutCraft is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with CutCraft. If not, see <http://www.gnu.org/licenses/>.
from ..core.point import Point
from ..core.part import Part
from ..core.circle import Circle
from .platform import Platform
from math import pi
class Circular(Platform):
""" Circular Platform. """
def __init__(self, radius, inradius, segments, cuts, cutdepth, start=0.0, end=pi*2, rotation=0.0,
origin=Point(0.0, 0.0), thickness=0.0):
super(Circular, self).__init__(thickness)
self.radius = radius
self.inradius = inradius
self.segments = segments
outer = Circle(self.radius, segments, cuts, cutdepth=cutdepth, start=start, end=end,
rotation=rotation, origin=origin, thickness=thickness)
outer.close()
inner = Circle(self.inradius, segments, 0, start=start, end=end,
rotation=rotation, origin=origin, thickness=thickness)
inner.close()
self.traces.append(outer)
self.traces.append(reversed(inner))