Macro Geneva Wheel/de

Genfer Rad

Beschreibung
Ermöglicht es dem Benutzer, einen Genfer Radmechanismus von Grund auf neu zu erstellen. Um die Größe des Objekts zu ändern, müssen die Werte innerhalb des Makros bearbeitet werden.

Versionsmakro : 1.0
Datum der letzten Änderung : 2014-09-21
FreeCAD version : Alle
Herunterladen : Werkzeugleisten-Symbol
Autor: Drei
Autor
Drei
Herunterladen
Werkzeugleisten-Symbol
Links
Macro-Version
1.0
Datum der letzten Änderung
2014-09-21
FreeCAD-Version(s)
Alle
Standardverknüpfung
None
Siehe auch
None

Beschreibung

Ermöglicht es dem Benutzer, einen Genfer Radmechanismus von Grund auf neu zu erstellen. Um die Größe des Objekts zu ändern, müssen die Werte innerhalb des Makros bearbeitet werden.

Anwendung

Dieses Makro erstellt die Hauptteile eines Genfer Radmechanismus. Es hängt von sechs Werten ab, die im Code geändert werden müssen. Dazu die Kommentare im Code lesen. Die Variablen sind:

Eingabe Ausgabe
  • a = Antriebsradius der Kurbel
  • b = Radius des Genfer Rades
  • n = Anzahl der angetriebenen Schlitze
  • p = Durchmesser des Antriebsstifts
  • t = Toleranz
  • h = Höhe
  • c = Abstand zwischen den Mittelpunkten
  • s = Breite der Schlitzmitte
  • w = Schlitzbreite
  • y = Radius des Anschlagbogens
  • z = Radius der Anschlagscheibe
  • v = Freiraumbogen

Verweis

Makro Geneva Wheel GUI: Eine auf diesem Makro basierende grafische Benutzeroberfläche, mit der der Benutzer einen Geneva-Radmechanismus von Grund auf neu erstellen kann.

Skript

Werkzeugleisten-Symbol

Macro_Geneva_Wheel.FCMacro

#Creation of a Geneva Wheel with Parametric values  By: Isaac Ayala (drei)
#This Macro creates the main parts of a Geneva Wheel Mechanism 

#It depends on six values that must be altered in the following code
#The variables are a, b, n, p, t and h. 

#Definition for each variable
#    Input
#a = Drive Crank Radius
#b = Geneva Wheel Radius
#n = Driven Slot Quantity
#p = Drive Pin Diameter
#t = Tolerance
#h = Height
#    Output
#c = Distance Between Centers
#s = Slot Center Width
#w = Slot Width
#y = Stop Arc Radius
#z = Stop Disc Radius
#v = Clearance Arc

#Please note that you can alter the code so it depends on five values exclusively
#Just replace c, and either a or b with the following
#    Keep value for a
#c = a/math.sin(math.pi/n)
#b = math.sqrt((math.pow(c,2))-(math.pow(a,2)))
#    Keep value for b
#c = b/math.cos(math.pi/n)
#a = math.sqrt((math.pow(c,2))-(math.pow(b,2)))

from __future__ import division
import time
import math
from PySide import QtCore, QtGui
from FreeCAD import Base
import Part

#Inputs
a = 25.0
b = 60.0
n = 6
p = 4
t = 0.01
h = 5
T = 60

#Outputs
c = math.sqrt(pow(a,2) + pow(b,2))
s = a + b - c
w = p + t
y = a - (1.5 * p)
z = y - t
v = (b * z)/a 

#    Create the Drive Crank (Will be placed on the origin)
driveCrank = Part.makeCylinder(z, h)
driveCrank.translate(Base.Vector(0,0,0))

genevaWheelClearanceCut = Part.makeCylinder(b, h)
genevaWheelClearanceCut.translate(Base.Vector(-c,0,0))

driveCrank = driveCrank.cut(genevaWheelClearanceCut)

driveCrankBase = Part.makeCylinder((1.5*a), h)
driveCrankBase.translate(Base.Vector(0,0,-h))

driveCrank = driveCrank.fuse(driveCrankBase)

drivePin = Part.makeCylinder(p,h)
drivePin.translate(Base.Vector(-a,0,0))

driveCrank = driveCrank.fuse(drivePin)

#    Create the Geneva  Wheel (Will be placed on the x-axis on the left side)
genevaWheel = Part.makeCylinder(b,h)
genevaWheel.translate(Base.Vector(-c,0,0))

stopArc = Part.makeCylinder(y, h)
stopArc.translate(Base.Vector(((y-(b/2)),0,0)))
stopArc.rotate(Base.Vector(-c,0,0),Base.Vector(0,0,1),30)

for i in range(6):
    stopArc.rotate(Base.Vector(-c,0,0),Base.Vector(0,0,1),60)
    genevaWheel = genevaWheel.cut(stopArc)

slotLength = Part.makeBox(s,(2*w),h)
slotLength.translate(Base.Vector(-a,-w,0))

slotRadius = Part.makeCylinder(w,h)
slotRadius.translate(Base.Vector(-a,0,0))

slot=slotLength.fuse(slotRadius)

for i in range(6):
    slot.rotate(Base.Vector(-c,0,0),Base.Vector(0,0,1),60)
    genevaWheel = genevaWheel.cut(slot)

#    Display Result

Part.show(driveCrank)
Part.show(genevaWheel)