diff --git a/examples/FreeCAD/Ex011_Mirroring_Symmetric_Geometry.py b/examples/FreeCAD/Ex011_Mirroring_Symmetric_Geometry.py new file mode 100644 index 0000000..e666d00 --- /dev/null +++ b/examples/FreeCAD/Ex011_Mirroring_Symmetric_Geometry.py @@ -0,0 +1,37 @@ +#File: Ex011_Mirroring_Symmetric_Geometry.py +#To use this example file, you need to first follow the "Using CadQuery From Inside FreeCAD" +#instructions here: https://github.com/dcowden/cadquery#installing----using-cadquery-from-inside-freecad + +#You run this example by typing the following in the FreeCAD python console, making sure to change +#the path to this example, and the name of the example appropriately. +#import sys +#sys.path.append('/home/user/Downloads/cadquery/examples/FreeCAD') +#import Ex011_Mirroring_Symmetric_Geometry + +#If you need to reload the part after making a change, you can use the following lines within the FreeCAD console. +#reload(Ex011_Mirroring_Symmetric_Geometry) + +#You'll need to delete the original shape that was created, and the new shape should be named sequentially (Shape001, etc). + +#You can also tie these blocks of code to macros, buttons, and keybindings in FreeCAD for quicker access. +#You can get a more information on this example at http://parametricparts.com/docs/examples.html#an-extruded-prismatic-solid + +import cadquery +import Part + +#1.0 is the distance, not coordinate +r = cadquery.Workplane("front").hLine(1.0) + +#hLineTo allows using xCoordinate not distance +r = r.vLine(0.5).hLine(-0.25).vLine(-0.25).hLineTo(0.0) + +#Mirror the geometry and extrude +result =r.mirrorY().extrude(0.25) + +#Get a cadquery solid object +solid = result.val() + +#Use the wrapped property of a cadquery primitive to get a FreeCAD solid +Part.show(solid.wrapped) + +#Would like to zoom to fit the part here, but FreeCAD doesn't seem to have that scripting functionality diff --git a/examples/FreeCAD/Ex012_Creating_Workplanes_on_Faces.py b/examples/FreeCAD/Ex012_Creating_Workplanes_on_Faces.py new file mode 100644 index 0000000..d46b795 --- /dev/null +++ b/examples/FreeCAD/Ex012_Creating_Workplanes_on_Faces.py @@ -0,0 +1,34 @@ +#File: Ex012_Creating_Workplanes_on_Faces.py +#To use this example file, you need to first follow the "Using CadQuery From Inside FreeCAD" +#instructions here: https://github.com/dcowden/cadquery#installing----using-cadquery-from-inside-freecad + +#You run this example by typing the following in the FreeCAD python console, making sure to change +#the path to this example, and the name of the example appropriately. +#import sys +#sys.path.append('/home/user/Downloads/cadquery/examples/FreeCAD') +#import Ex012_Creating_Workplanes_on_Faces + +#If you need to reload the part after making a change, you can use the following lines within the FreeCAD console. +#reload(Ex012_Creating_Workplanes_on_Faces) + +#You'll need to delete the original shape that was created, and the new shape should be named sequentially (Shape001, etc). + +#You can also tie these blocks of code to macros, buttons, and keybindings in FreeCAD for quicker access. +#You can get a more information on this example at http://parametricparts.com/docs/examples.html#an-extruded-prismatic-solid + +import cadquery +import Part + +#Make a basic prism +result = cadquery.Workplane("front").box(2,3,0.5) + +#Find the top-most face and make a hole +result = result.faces(">Z").workplane().hole(0.5) + +#Get a cadquery solid object +solid = result.val() + +#Use the wrapped property of a cadquery primitive to get a FreeCAD solid +Part.show(solid.wrapped) + +#Would like to zoom to fit the part here, but FreeCAD doesn't seem to have that scripting functionality diff --git a/examples/FreeCAD/Ex013_Locating_a_Workplane_on_a_Vertex.py b/examples/FreeCAD/Ex013_Locating_a_Workplane_on_a_Vertex.py new file mode 100644 index 0000000..2b2719a --- /dev/null +++ b/examples/FreeCAD/Ex013_Locating_a_Workplane_on_a_Vertex.py @@ -0,0 +1,37 @@ +#File: Ex013_Locating_a_Workplane_on_a_Vertex.py +#To use this example file, you need to first follow the "Using CadQuery From Inside FreeCAD" +#instructions here: https://github.com/dcowden/cadquery#installing----using-cadquery-from-inside-freecad + +#You run this example by typing the following in the FreeCAD python console, making sure to change +#the path to this example, and the name of the example appropriately. +#import sys +#sys.path.append('/home/user/Downloads/cadquery/examples/FreeCAD') +#import Ex013_Locating_a_Workplane_on_a_Vertex + +#If you need to reload the part after making a change, you can use the following lines within the FreeCAD console. +#reload(Ex013_Locating_a_Workplane_on_a_Vertex) + +#You'll need to delete the original shape that was created, and the new shape should be named sequentially (Shape001, etc). + +#You can also tie these blocks of code to macros, buttons, and keybindings in FreeCAD for quicker access. +#You can get a more information on this example at http://parametricparts.com/docs/examples.html#an-extruded-prismatic-solid + +import cadquery +import Part + +#Make a basic prism +result = cadquery.Workplane("front").box(3,2,0.5) + +#Select the lower left vertex and make a workplane +result = result.faces(">Z").vertices("Z").workplane() \ + .transformed(offset=cad.Vector(0,-1.5,1.0),rotate=cad.Vector(60,0,0)) \ + .rect(1.5,1.5,forConstruction=True).vertices().hole(0.25) + +#Get a cadquery solid object +solid = result.val() + +#Use the wrapped property of a cadquery primitive to get a FreeCAD solid +Part.show(solid.wrapped) + +#Would like to zoom to fit the part here, but FreeCAD doesn't seem to have that scripting functionality