ruff format
This commit is contained in:
@@ -17,4 +17,5 @@
|
||||
# ***************************************************************************
|
||||
|
||||
import pygears
|
||||
|
||||
__version__ = pygears.__version__
|
||||
|
||||
@@ -19,8 +19,23 @@
|
||||
import os
|
||||
import FreeCAD
|
||||
import FreeCADGui as Gui
|
||||
from .features import ViewProviderGear, InvoluteGear, InternalInvoluteGear, InvoluteGearRack, CycloidGearRack
|
||||
from .features import CycloidGear, BevelGear, CrownGear, WormGear, TimingGear, LanternGear, HypoCycloidGear, BaseGear
|
||||
from .features import (
|
||||
ViewProviderGear,
|
||||
InvoluteGear,
|
||||
InternalInvoluteGear,
|
||||
InvoluteGearRack,
|
||||
CycloidGearRack,
|
||||
)
|
||||
from .features import (
|
||||
CycloidGear,
|
||||
BevelGear,
|
||||
CrownGear,
|
||||
WormGear,
|
||||
TimingGear,
|
||||
LanternGear,
|
||||
HypoCycloidGear,
|
||||
BaseGear,
|
||||
)
|
||||
from .connector import GearConnector, ViewProviderGearConnector
|
||||
|
||||
|
||||
@@ -40,8 +55,9 @@ class BaseCommand(object):
|
||||
|
||||
def Activated(self):
|
||||
Gui.doCommandGui("import freecad.gears.commands")
|
||||
Gui.doCommandGui("freecad.gears.commands.{}.create()".format(
|
||||
self.__class__.__name__))
|
||||
Gui.doCommandGui(
|
||||
"freecad.gears.commands.{}.create()".format(self.__class__.__name__)
|
||||
)
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
Gui.SendMsgToActiveView("ViewFit")
|
||||
|
||||
@@ -54,7 +70,9 @@ class BaseCommand(object):
|
||||
part = Gui.ActiveDocument.ActiveView.getActiveObject("part")
|
||||
|
||||
if body:
|
||||
obj = FreeCAD.ActiveDocument.addObject("PartDesign::FeaturePython", cls.NAME)
|
||||
obj = FreeCAD.ActiveDocument.addObject(
|
||||
"PartDesign::FeaturePython", cls.NAME
|
||||
)
|
||||
else:
|
||||
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", cls.NAME)
|
||||
ViewProviderGear(obj.ViewObject, cls.Pixmap)
|
||||
@@ -70,101 +88,107 @@ class BaseCommand(object):
|
||||
return obj
|
||||
|
||||
def GetResources(self):
|
||||
return {'Pixmap': self.Pixmap,
|
||||
'MenuText': self.MenuText,
|
||||
'ToolTip': self.ToolTip}
|
||||
return {
|
||||
"Pixmap": self.Pixmap,
|
||||
"MenuText": self.MenuText,
|
||||
"ToolTip": self.ToolTip,
|
||||
}
|
||||
|
||||
|
||||
class CreateInvoluteGear(BaseCommand):
|
||||
NAME = "InvoluteGear"
|
||||
GEAR_FUNCTION = InvoluteGear
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'involutegear.svg')
|
||||
MenuText = 'Involute Gear'
|
||||
ToolTip = 'Create an external involute gear'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "involutegear.svg")
|
||||
MenuText = "Involute Gear"
|
||||
ToolTip = "Create an external involute gear"
|
||||
|
||||
|
||||
class CreateInternalInvoluteGear(BaseCommand):
|
||||
NAME = "InternalInvoluteGear"
|
||||
GEAR_FUNCTION = InternalInvoluteGear
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'internalinvolutegear.svg')
|
||||
MenuText = 'Internal Involute Gear'
|
||||
ToolTip = 'Create an internal involute gear'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "internalinvolutegear.svg")
|
||||
MenuText = "Internal Involute Gear"
|
||||
ToolTip = "Create an internal involute gear"
|
||||
|
||||
|
||||
class CreateInvoluteRack(BaseCommand):
|
||||
NAME = "InvoluteRack"
|
||||
GEAR_FUNCTION = InvoluteGearRack
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'involuterack.svg')
|
||||
MenuText = 'Involute Rack'
|
||||
ToolTip = 'Create an Involute rack'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "involuterack.svg")
|
||||
MenuText = "Involute Rack"
|
||||
ToolTip = "Create an Involute rack"
|
||||
|
||||
|
||||
class CreateCycloidRack(BaseCommand):
|
||||
NAME = "CycloidRack"
|
||||
GEAR_FUNCTION = CycloidGearRack
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'cycloidrack.svg')
|
||||
MenuText = 'Cycloid Rack'
|
||||
ToolTip = 'Create an Cycloid rack'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "cycloidrack.svg")
|
||||
MenuText = "Cycloid Rack"
|
||||
ToolTip = "Create an Cycloid rack"
|
||||
|
||||
|
||||
class CreateCrownGear(BaseCommand):
|
||||
NAME = "CrownGear"
|
||||
GEAR_FUNCTION = CrownGear
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'crowngear.svg')
|
||||
MenuText = 'Crown Gear'
|
||||
ToolTip = 'Create a Crown gear'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "crowngear.svg")
|
||||
MenuText = "Crown Gear"
|
||||
ToolTip = "Create a Crown gear"
|
||||
|
||||
|
||||
class CreateCycloidGear(BaseCommand):
|
||||
NAME = "CycloidGear"
|
||||
GEAR_FUNCTION = CycloidGear
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'cycloidgear.svg')
|
||||
MenuText = 'Cycloid Gear'
|
||||
ToolTip = 'Create a Cycloid gear'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "cycloidgear.svg")
|
||||
MenuText = "Cycloid Gear"
|
||||
ToolTip = "Create a Cycloid gear"
|
||||
|
||||
|
||||
class CreateBevelGear(BaseCommand):
|
||||
NAME = "BevelGear"
|
||||
GEAR_FUNCTION = BevelGear
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'bevelgear.svg')
|
||||
MenuText = 'Bevel Gear'
|
||||
ToolTip = 'Create a Bevel gear'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "bevelgear.svg")
|
||||
MenuText = "Bevel Gear"
|
||||
ToolTip = "Create a Bevel gear"
|
||||
|
||||
|
||||
class CreateHypoCycloidGear(BaseCommand):
|
||||
NAME = "HypocycloidGear"
|
||||
GEAR_FUNCTION = HypoCycloidGear
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'hypocycloidgear.svg')
|
||||
MenuText = 'HypoCycloid Gear'
|
||||
ToolTip = 'Create a HypoCycloid gear with its pins'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "hypocycloidgear.svg")
|
||||
MenuText = "HypoCycloid Gear"
|
||||
ToolTip = "Create a HypoCycloid gear with its pins"
|
||||
|
||||
|
||||
class CreateWormGear(BaseCommand):
|
||||
NAME = "WormGear"
|
||||
GEAR_FUNCTION = WormGear
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'wormgear.svg')
|
||||
MenuText = 'Worm Gear'
|
||||
ToolTip = 'Create a Worm gear'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "wormgear.svg")
|
||||
MenuText = "Worm Gear"
|
||||
ToolTip = "Create a Worm gear"
|
||||
|
||||
|
||||
class CreateTimingGear(BaseCommand):
|
||||
NAME = "TimingGear"
|
||||
GEAR_FUNCTION = TimingGear
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'timinggear.svg')
|
||||
MenuText = 'Timing Gear'
|
||||
ToolTip = 'Create a Timing gear'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "timinggear.svg")
|
||||
MenuText = "Timing Gear"
|
||||
ToolTip = "Create a Timing gear"
|
||||
|
||||
|
||||
class CreateLanternGear(BaseCommand):
|
||||
NAME = "LanternGear"
|
||||
GEAR_FUNCTION = LanternGear
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'lanterngear.svg')
|
||||
MenuText = 'Lantern Gear'
|
||||
ToolTip = 'Create a Lantern gear'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "lanterngear.svg")
|
||||
MenuText = "Lantern Gear"
|
||||
ToolTip = "Create a Lantern gear"
|
||||
|
||||
|
||||
class CreateGearConnector(BaseCommand):
|
||||
NAME = "GearConnector"
|
||||
GEAR_FUNCTION = GearConnector
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, 'gearconnector.svg')
|
||||
MenuText = 'Combine two gears'
|
||||
ToolTip = 'Combine two gears'
|
||||
Pixmap = os.path.join(BaseCommand.ICONDIR, "gearconnector.svg")
|
||||
MenuText = "Combine two gears"
|
||||
ToolTip = "Combine two gears"
|
||||
|
||||
def Activated(self):
|
||||
gear1 = Gui.Selection.getSelection()[0]
|
||||
|
||||
@@ -20,16 +20,23 @@ import os
|
||||
import numpy as np
|
||||
import FreeCAD
|
||||
from pygears import __version__
|
||||
from .features import InvoluteGear, CycloidGear, InvoluteGearRack, CycloidGearRack, InternalInvoluteGear
|
||||
from .features import (
|
||||
InvoluteGear,
|
||||
CycloidGear,
|
||||
InvoluteGearRack,
|
||||
CycloidGearRack,
|
||||
InternalInvoluteGear,
|
||||
)
|
||||
from pygears.computation import compute_shifted_gears
|
||||
|
||||
|
||||
class ViewProviderGearConnector(object):
|
||||
def __init__(self, vobj, icon_fn=None):
|
||||
# Set this object to the proxy object of the actual view provider
|
||||
vobj.Proxy = self
|
||||
dirname = os.path.dirname(__file__)
|
||||
self.icon_fn = icon_fn or os.path.join(dirname, "icons", "gearconnector.svg")
|
||||
|
||||
|
||||
def attach(self, vobj):
|
||||
self.vobj = vobj
|
||||
|
||||
@@ -45,11 +52,25 @@ class ViewProviderGearConnector(object):
|
||||
|
||||
class GearConnector(object):
|
||||
def __init__(self, obj, master_gear, slave_gear):
|
||||
obj.addProperty("App::PropertyString", "version", "version", "freecad.gears-version", 1)
|
||||
obj.addProperty("App::PropertyLink","master_gear","gear","master gear", 1)
|
||||
obj.addProperty("App::PropertyLink","slave_gear","gear","slave gear", 1)
|
||||
obj.addProperty("App::PropertyAngle", "angle1", "gear", "angle at which second gear is placed", 0)
|
||||
obj.addProperty("App::PropertyAngle", "angle2", "gear", "angle at which second gear is placed", 1)
|
||||
obj.addProperty(
|
||||
"App::PropertyString", "version", "version", "freecad.gears-version", 1
|
||||
)
|
||||
obj.addProperty("App::PropertyLink", "master_gear", "gear", "master gear", 1)
|
||||
obj.addProperty("App::PropertyLink", "slave_gear", "gear", "slave gear", 1)
|
||||
obj.addProperty(
|
||||
"App::PropertyAngle",
|
||||
"angle1",
|
||||
"gear",
|
||||
"angle at which second gear is placed",
|
||||
0,
|
||||
)
|
||||
obj.addProperty(
|
||||
"App::PropertyAngle",
|
||||
"angle2",
|
||||
"gear",
|
||||
"angle at which second gear is placed",
|
||||
1,
|
||||
)
|
||||
obj.version = __version__
|
||||
obj.master_gear = master_gear
|
||||
obj.slave_gear = slave_gear
|
||||
@@ -59,8 +80,12 @@ class GearConnector(object):
|
||||
|
||||
def onChanged(self, fp, prop):
|
||||
# fp.angle2 = fp.master_gear.Placement.Rotation.Angle
|
||||
if isinstance(fp.master_gear.Proxy, InvoluteGear) and isinstance(fp.slave_gear.Proxy, InvoluteGear):
|
||||
angle_master = fp.master_gear.Placement.Rotation.Angle * sum(fp.master_gear.Placement.Rotation.Axis)
|
||||
if isinstance(fp.master_gear.Proxy, InvoluteGear) and isinstance(
|
||||
fp.slave_gear.Proxy, InvoluteGear
|
||||
):
|
||||
angle_master = fp.master_gear.Placement.Rotation.Angle * sum(
|
||||
fp.master_gear.Placement.Rotation.Axis
|
||||
)
|
||||
dw_master = fp.master_gear.dw
|
||||
dw_slave = fp.slave_gear.dw
|
||||
dist = (dw_master + dw_slave) / 2
|
||||
@@ -71,24 +96,29 @@ class GearConnector(object):
|
||||
fp.master_gear.teeth,
|
||||
fp.slave_gear.teeth,
|
||||
fp.master_gear.shift,
|
||||
fp.slave_gear.shift)
|
||||
fp.slave_gear.shift,
|
||||
)
|
||||
|
||||
mat0 = FreeCAD.Matrix() # unity matrix
|
||||
trans = FreeCAD.Vector(dist)
|
||||
mat0.move(trans)
|
||||
rot = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), fp.angle1).toMatrix()
|
||||
rot = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), fp.angle1).toMatrix()
|
||||
angle2 = dw_master / dw_slave * fp.angle1.Value
|
||||
angle4 = dw_master / dw_slave * np.rad2deg(angle_master)
|
||||
rot2 = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), angle2).toMatrix()
|
||||
angle3 = abs(fp.slave_gear.teeth % 2 - 1) * 180. / fp.slave_gear.teeth
|
||||
rot3 = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), angle3).toMatrix()
|
||||
rot4 = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), -angle4).toMatrix()
|
||||
rot2 = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), angle2).toMatrix()
|
||||
angle3 = abs(fp.slave_gear.teeth % 2 - 1) * 180.0 / fp.slave_gear.teeth
|
||||
rot3 = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), angle3).toMatrix()
|
||||
rot4 = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), -angle4).toMatrix()
|
||||
mat1 = rot * mat0 * rot2 * rot3 * rot4
|
||||
mat1.move(fp.master_gear.Placement.Base)
|
||||
fp.slave_gear.Placement = mat1
|
||||
|
||||
if isinstance(fp.master_gear.Proxy, InternalInvoluteGear) and isinstance(fp.slave_gear.Proxy, InvoluteGear):
|
||||
angle_master = fp.master_gear.Placement.Rotation.Angle * sum(fp.master_gear.Placement.Rotation.Axis)
|
||||
if isinstance(fp.master_gear.Proxy, InternalInvoluteGear) and isinstance(
|
||||
fp.slave_gear.Proxy, InvoluteGear
|
||||
):
|
||||
angle_master = fp.master_gear.Placement.Rotation.Angle * sum(
|
||||
fp.master_gear.Placement.Rotation.Axis
|
||||
)
|
||||
dw_master = fp.master_gear.dw
|
||||
dw_slave = fp.slave_gear.dw
|
||||
dist = (dw_master - dw_slave) / 2
|
||||
@@ -99,25 +129,33 @@ class GearConnector(object):
|
||||
fp.master_gear.teeth,
|
||||
fp.slave_gear.teeth,
|
||||
fp.master_gear.shift,
|
||||
fp.slave_gear.shift)
|
||||
fp.slave_gear.shift,
|
||||
)
|
||||
|
||||
mat0 = FreeCAD.Matrix() # unity matrix
|
||||
trans = FreeCAD.Vector(dist)
|
||||
mat0.move(trans)
|
||||
rot = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), fp.angle1).toMatrix()
|
||||
rot = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), fp.angle1).toMatrix()
|
||||
angle2 = -dw_master / dw_slave * fp.angle1.Value
|
||||
angle4 = -dw_master / dw_slave * np.rad2deg(angle_master)
|
||||
rot2 = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), angle2).toMatrix()
|
||||
angle3 = abs(fp.slave_gear.teeth % 2 - 1) * 180. / fp.slave_gear.teeth
|
||||
rot3 = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), angle3).toMatrix()
|
||||
rot4 = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), -angle4).toMatrix()
|
||||
rot2 = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), angle2).toMatrix()
|
||||
angle3 = abs(fp.slave_gear.teeth % 2 - 1) * 180.0 / fp.slave_gear.teeth
|
||||
rot3 = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), angle3).toMatrix()
|
||||
rot4 = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), -angle4).toMatrix()
|
||||
mat1 = rot * mat0 * rot2 * rot3 * rot4
|
||||
mat1.move(fp.master_gear.Placement.Base)
|
||||
fp.slave_gear.Placement = mat1
|
||||
|
||||
if ((isinstance(fp.master_gear.Proxy, InvoluteGear) and isinstance(fp.slave_gear.Proxy, InvoluteGearRack))
|
||||
or (isinstance(fp.master_gear.Proxy, CycloidGear) and isinstance(fp.slave_gear.Proxy, CycloidGearRack))):
|
||||
angle_master = fp.master_gear.Placement.Rotation.Angle * sum(fp.master_gear.Placement.Rotation.Axis)
|
||||
if (
|
||||
isinstance(fp.master_gear.Proxy, InvoluteGear)
|
||||
and isinstance(fp.slave_gear.Proxy, InvoluteGearRack)
|
||||
) or (
|
||||
isinstance(fp.master_gear.Proxy, CycloidGear)
|
||||
and isinstance(fp.slave_gear.Proxy, CycloidGearRack)
|
||||
):
|
||||
angle_master = fp.master_gear.Placement.Rotation.Angle * sum(
|
||||
fp.master_gear.Placement.Rotation.Axis
|
||||
)
|
||||
dw_master = fp.master_gear.dw.Value
|
||||
dw_slave = 0
|
||||
dist = -(dw_master + dw_slave) / 2
|
||||
@@ -126,35 +164,36 @@ class GearConnector(object):
|
||||
mat1 = FreeCAD.Matrix()
|
||||
mat1.move(FreeCAD.Vector(0, np.deg2rad(fp.angle1.Value) * dw_master / 2, 0))
|
||||
mat2 = FreeCAD.Matrix()
|
||||
mat2.move(FreeCAD.Vector(0, -np.deg2rad(fp.angle2.Value) * dw_master / 2, 0))
|
||||
rot = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), fp.angle1).toMatrix()
|
||||
mat3 = rot * mat2 *mat1 * mat0
|
||||
mat2.move(
|
||||
FreeCAD.Vector(0, -np.deg2rad(fp.angle2.Value) * dw_master / 2, 0)
|
||||
)
|
||||
rot = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), fp.angle1).toMatrix()
|
||||
mat3 = rot * mat2 * mat1 * mat0
|
||||
mat3.move(fp.master_gear.Placement.Base)
|
||||
fp.slave_gear.Placement = mat3
|
||||
|
||||
if isinstance(fp.master_gear.Proxy, CycloidGear) and isinstance(fp.slave_gear.Proxy, CycloidGear):
|
||||
angle_master = fp.master_gear.Placement.Rotation.Angle * sum(fp.master_gear.Placement.Rotation.Axis)
|
||||
if isinstance(fp.master_gear.Proxy, CycloidGear) and isinstance(
|
||||
fp.slave_gear.Proxy, CycloidGear
|
||||
):
|
||||
angle_master = fp.master_gear.Placement.Rotation.Angle * sum(
|
||||
fp.master_gear.Placement.Rotation.Axis
|
||||
)
|
||||
dw_master = fp.master_gear.dw
|
||||
dw_slave = fp.slave_gear.dw
|
||||
dist = (dw_master + dw_slave) / 2
|
||||
mat0 = FreeCAD.Matrix() # unity matrix
|
||||
trans = FreeCAD.Vector(dist, 0, 0)
|
||||
mat0.move(trans)
|
||||
rot = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), fp.angle1).toMatrix()
|
||||
rot = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), fp.angle1).toMatrix()
|
||||
angle2 = dw_master / dw_slave * fp.angle1.Value
|
||||
angle4 = dw_master / dw_slave * np.rad2deg(angle_master)
|
||||
rot2 = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), angle2).toMatrix()
|
||||
angle3 = abs(fp.slave_gear.teeth % 2 - 1) * 180. / fp.slave_gear.teeth
|
||||
rot3 = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), angle3).toMatrix()
|
||||
rot4 = FreeCAD.Rotation(FreeCAD.Vector(0,0,1), -angle4).toMatrix()
|
||||
rot2 = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), angle2).toMatrix()
|
||||
angle3 = abs(fp.slave_gear.teeth % 2 - 1) * 180.0 / fp.slave_gear.teeth
|
||||
rot3 = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), angle3).toMatrix()
|
||||
rot4 = FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), -angle4).toMatrix()
|
||||
mat1 = rot * mat0 * rot2 * rot3 * rot4
|
||||
mat1.move(fp.master_gear.Placement.Base)
|
||||
fp.slave_gear.Placement = mat1
|
||||
|
||||
def execute(self, fp):
|
||||
self.onChanged(fp, None)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -19,22 +19,26 @@
|
||||
import os
|
||||
import FreeCADGui as Gui
|
||||
import FreeCAD as App
|
||||
|
||||
__dirname__ = os.path.dirname(__file__)
|
||||
|
||||
try:
|
||||
from FreeCADGui import Workbench
|
||||
except ImportError as e:
|
||||
App.Console.PrintWarning(
|
||||
"you are using the GearWorkbench with an old version of FreeCAD (<0.16)")
|
||||
"you are using the GearWorkbench with an old version of FreeCAD (<0.16)"
|
||||
)
|
||||
App.Console.PrintWarning(
|
||||
"the class Workbench is loaded, although not imported: magic")
|
||||
"the class Workbench is loaded, although not imported: magic"
|
||||
)
|
||||
|
||||
|
||||
class GearWorkbench(Workbench):
|
||||
"""glider workbench"""
|
||||
|
||||
MenuText = "Gear"
|
||||
ToolTip = "Gear Workbench"
|
||||
Icon = os.path.join(__dirname__, 'icons', 'gearworkbench.svg')
|
||||
Icon = os.path.join(__dirname__, "icons", "gearworkbench.svg")
|
||||
commands = [
|
||||
"CreateInvoluteGear",
|
||||
"CreateInternalInvoluteGear",
|
||||
@@ -47,13 +51,18 @@ class GearWorkbench(Workbench):
|
||||
"CreateTimingGear",
|
||||
"CreateLanternGear",
|
||||
"CreateHypoCycloidGear",
|
||||
"CreateGearConnector"]
|
||||
"CreateGearConnector",
|
||||
]
|
||||
|
||||
def GetClassName(self):
|
||||
return "Gui::PythonWorkbench"
|
||||
|
||||
def Initialize(self):
|
||||
from .commands import CreateCycloidGear, CreateInvoluteGear, CreateInternalInvoluteGear
|
||||
from .commands import (
|
||||
CreateCycloidGear,
|
||||
CreateInvoluteGear,
|
||||
CreateInternalInvoluteGear,
|
||||
)
|
||||
from .commands import CreateBevelGear, CreateInvoluteRack, CreateCrownGear
|
||||
from .commands import CreateWormGear, CreateTimingGear, CreateLanternGear
|
||||
from .commands import CreateHypoCycloidGear, CreateCycloidRack
|
||||
@@ -62,18 +71,18 @@ class GearWorkbench(Workbench):
|
||||
self.appendToolbar("Gear", self.commands)
|
||||
self.appendMenu("Gear", self.commands)
|
||||
# Gui.addIconPath(App.getHomePath()+"Mod/gear/icons/")
|
||||
Gui.addCommand('CreateInvoluteGear', CreateInvoluteGear())
|
||||
Gui.addCommand('CreateInternalInvoluteGear', CreateInternalInvoluteGear())
|
||||
Gui.addCommand('CreateCycloidGear', CreateCycloidGear())
|
||||
Gui.addCommand('CreateCycloidRack', CreateCycloidRack())
|
||||
Gui.addCommand('CreateBevelGear', CreateBevelGear())
|
||||
Gui.addCommand('CreateInvoluteRack', CreateInvoluteRack())
|
||||
Gui.addCommand('CreateCrownGear', CreateCrownGear())
|
||||
Gui.addCommand('CreateWormGear', CreateWormGear())
|
||||
Gui.addCommand('CreateTimingGear', CreateTimingGear())
|
||||
Gui.addCommand('CreateLanternGear', CreateLanternGear())
|
||||
Gui.addCommand('CreateHypoCycloidGear', CreateHypoCycloidGear())
|
||||
Gui.addCommand('CreateGearConnector', CreateGearConnector())
|
||||
Gui.addCommand("CreateInvoluteGear", CreateInvoluteGear())
|
||||
Gui.addCommand("CreateInternalInvoluteGear", CreateInternalInvoluteGear())
|
||||
Gui.addCommand("CreateCycloidGear", CreateCycloidGear())
|
||||
Gui.addCommand("CreateCycloidRack", CreateCycloidRack())
|
||||
Gui.addCommand("CreateBevelGear", CreateBevelGear())
|
||||
Gui.addCommand("CreateInvoluteRack", CreateInvoluteRack())
|
||||
Gui.addCommand("CreateCrownGear", CreateCrownGear())
|
||||
Gui.addCommand("CreateWormGear", CreateWormGear())
|
||||
Gui.addCommand("CreateTimingGear", CreateTimingGear())
|
||||
Gui.addCommand("CreateLanternGear", CreateLanternGear())
|
||||
Gui.addCommand("CreateHypoCycloidGear", CreateHypoCycloidGear())
|
||||
Gui.addCommand("CreateGearConnector", CreateGearConnector())
|
||||
|
||||
def Activated(self):
|
||||
pass
|
||||
|
||||
21
setup.py
21
setup.py
@@ -1,15 +1,14 @@
|
||||
from setuptools import setup
|
||||
from pygears import __version__
|
||||
|
||||
setup(name='freecad.gears',
|
||||
version=str(__version__),
|
||||
packages=['freecad',
|
||||
'freecad.gears',
|
||||
'pygears'],
|
||||
maintainer="looooo",
|
||||
maintainer_email="sppedflyer@gmail.com",
|
||||
url="https://github.com/looooo/FCGear",
|
||||
description="gears for FreeCAD",
|
||||
install_requires=['numpy'],
|
||||
include_package_data=True
|
||||
setup(
|
||||
name="freecad.gears",
|
||||
version=str(__version__),
|
||||
packages=["freecad", "freecad.gears", "pygears"],
|
||||
maintainer="looooo",
|
||||
maintainer_email="sppedflyer@gmail.com",
|
||||
url="https://github.com/looooo/FCGear",
|
||||
description="gears for FreeCAD",
|
||||
install_requires=["numpy"],
|
||||
include_package_data=True,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user