From 795708fe7f6353bcd335537fd277f171007ccdd0 Mon Sep 17 00:00:00 2001 From: Jeremy Wright Date: Mon, 7 Jul 2014 23:00:25 -0400 Subject: [PATCH] Added examples 16 and 17. --- examples/FreeCAD/Ex015_Rotated_Workplanes.py | 3 +- .../Ex016_Using_Construction_Geometry.py | 32 +++++++++++++++++++ .../Ex017_Shelling_to_Create_Thin_Features.py | 31 ++++++++++++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 examples/FreeCAD/Ex016_Using_Construction_Geometry.py create mode 100644 examples/FreeCAD/Ex017_Shelling_to_Create_Thin_Features.py diff --git a/examples/FreeCAD/Ex015_Rotated_Workplanes.py b/examples/FreeCAD/Ex015_Rotated_Workplanes.py index 6ad1373..e6363d4 100644 --- a/examples/FreeCAD/Ex015_Rotated_Workplanes.py +++ b/examples/FreeCAD/Ex015_Rotated_Workplanes.py @@ -17,11 +17,12 @@ #You can get a more information on this example at http://parametricparts.com/docs/examples.html#an-extruded-prismatic-solid import cadquery +from cadquery import Vector import Part #Create a rotated workplane and put holes in each corner of a rectangle on that workplane, producing angled holes in the face result = cadquery.Workplane("front").box(4.0,4.0,0.25).faces(">Z").workplane() \ - .transformed(offset=cad.Vector(0,-1.5,1.0),rotate=cad.Vector(60,0,0)) \ + .transformed(offset=Vector(0,-1.5,1.0),rotate=Vector(60,0,0)) \ .rect(1.5,1.5,forConstruction=True).vertices().hole(0.25) #Get a cadquery solid object diff --git a/examples/FreeCAD/Ex016_Using_Construction_Geometry.py b/examples/FreeCAD/Ex016_Using_Construction_Geometry.py new file mode 100644 index 0000000..c3b5d43 --- /dev/null +++ b/examples/FreeCAD/Ex016_Using_Construction_Geometry.py @@ -0,0 +1,32 @@ +#File: Ex016_Using_Construction_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 Ex016_Using_Construction_Geometry + +#If you need to reload the part after making a change, you can use the following lines within the FreeCAD console. +#reload(Ex016_Using_Construction_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 + +#Create a block with holes in each corner of a rectangle on that workplane +result = cadquery.Workplane("front").box(2, 2, 0.5).faces(">Z").workplane() \ + .rect(1.5, 1.5, forConstruction=True).vertices().hole(0.125) + +#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/Ex017_Shelling_to_Create_Thin_Features.py b/examples/FreeCAD/Ex017_Shelling_to_Create_Thin_Features.py new file mode 100644 index 0000000..826a8a4 --- /dev/null +++ b/examples/FreeCAD/Ex017_Shelling_to_Create_Thin_Features.py @@ -0,0 +1,31 @@ +#File: Ex017_Shelling_to_Create_Thin_Features.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 Ex017_Shelling_to_Create_Thin_Features + +#If you need to reload the part after making a change, you can use the following lines within the FreeCAD console. +#reload(Ex017_Shelling_to_Create_Thin_Features) + +#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 + +#Create a hollow box that's open on both ends with a thin wall +result = cadquery.Workplane("front").box(2,2,2).faces("+Z").shell(0.05) + +#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