diff --git a/cad_script.py b/cad_script.py new file mode 100644 index 0000000..c88b5ef --- /dev/null +++ b/cad_script.py @@ -0,0 +1,51 @@ +from FreeCAD import Rotation, Base, newDocument + +doc = newDocument() + + +def create_blade(radius_rod, diameter): + # set parameters (in mm) + # central rod + outer_radius = radius_rod + inner_radius = outer_radius / 2 + height = diameter + + # blades + thickness = 1.5 + + rod = Part.makeCylinder(outer_radius, height, Base.Vector(0,0,0), Base.Vector(1,0,0)) + + hole_template = Part.makeCylinder(inner_radius, height+2, Base.Vector(-1,0,0), Base.Vector(1,0,0)) + + pierced_rod = rod.cut(hole_template) + del hole_template # remove the template + + # blades + blade_template = Part.makeCylinder(height/2, thickness, Base.Vector(height/2,0, -thickness/2)) + #Part.show(blade_template) + + blades1 = blade_template.cut(rod) + blades2 = blades1.copy() + blades2.Placement.Rotation = Rotation(0, 0, 60) + blades3 = blades1.copy() + blades3.Placement.Rotation = Rotation(0, 0, -60) + + del blade_template # remove the template + + # show all the stuff we created just now + Part.show(pierced_rod) + Part.show(blades1) + Part.show(blades2) + Part.show(blades3) + + doc.recompute() + +# small dispensers +radius_rod = 4.0 +diameter = 34.0 +create_blade(radius_rod, diameter) + +# big dispensers +#radius_rod = 4.0 +#diameter = 94.0 +#create_blade(radius_rod, diameter) \ No newline at end of file