From 3faadb8b2ed919579be78b6492ed36401ea0cce0 Mon Sep 17 00:00:00 2001 From: Jeremy Wright Date: Sat, 5 Jul 2014 23:53:48 -0400 Subject: [PATCH] Added more examples (through 15), but #15 is still has a module import error. --- .../Ex011_Mirroring_Symmetric_Geometry.py | 37 +++++++++++++++++++ .../Ex012_Creating_Workplanes_on_Faces.py | 34 +++++++++++++++++ .../Ex013_Locating_a_Workplane_on_a_Vertex.py | 37 +++++++++++++++++++ examples/FreeCAD/Ex014_Offset_Workplanes.py | 37 +++++++++++++++++++ examples/FreeCAD/Ex015_Rotated_Workplanes.py | 33 +++++++++++++++++ 5 files changed, 178 insertions(+) create mode 100644 examples/FreeCAD/Ex011_Mirroring_Symmetric_Geometry.py create mode 100644 examples/FreeCAD/Ex012_Creating_Workplanes_on_Faces.py create mode 100644 examples/FreeCAD/Ex013_Locating_a_Workplane_on_a_Vertex.py create mode 100644 examples/FreeCAD/Ex014_Offset_Workplanes.py create mode 100644 examples/FreeCAD/Ex015_Rotated_Workplanes.py 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