From a3beced8d1c118e3c582b1b56d5886368b3fee11 Mon Sep 17 00:00:00 2001 From: Jeremy Wright Date: Fri, 12 Dec 2014 15:27:14 -0500 Subject: [PATCH] Updated the CadQuery lib. --- CadQuery/Libs/cadquery/CQ.py | 5 +- CadQuery/Libs/cadquery/freecad_impl/geom.py | 3 -- .../Libs/cadquery/freecad_impl/importers.py | 46 ++++++++++--------- CadQuery/Libs/cadquery/freecad_impl/shapes.py | 4 -- 4 files changed, 26 insertions(+), 32 deletions(-) diff --git a/CadQuery/Libs/cadquery/CQ.py b/CadQuery/Libs/cadquery/CQ.py index ec0b583..21579e9 100644 --- a/CadQuery/Libs/cadquery/CQ.py +++ b/CadQuery/Libs/cadquery/CQ.py @@ -678,9 +678,9 @@ class CQ(object): def _rot(obj): startPt = obj.Center() endPt = startPt + endVec - obj.rotate(startPt,endPt,angleDegrees) + return obj.rotate(startPt,endPt,angleDegrees) - return self.each(_rot,False) + return self.each(_rot, False) def translate(self,vec): """ @@ -1437,7 +1437,6 @@ class Workplane(CQ): else: r = callBackFunction(obj) - if type(r) == Wire: if not r.forConstruction: self._addPendingWire(r) diff --git a/CadQuery/Libs/cadquery/freecad_impl/geom.py b/CadQuery/Libs/cadquery/freecad_impl/geom.py index 1818693..df2daf2 100644 --- a/CadQuery/Libs/cadquery/freecad_impl/geom.py +++ b/CadQuery/Libs/cadquery/freecad_impl/geom.py @@ -18,9 +18,6 @@ """ import math,sys -#import FreeCAD -#from .verutil import fc_import -#FreeCAD = fc_import("FreeCAD") import FreeCAD #Turns out we don't need the Part module here. diff --git a/CadQuery/Libs/cadquery/freecad_impl/importers.py b/CadQuery/Libs/cadquery/freecad_impl/importers.py index c959fb9..c8786d3 100644 --- a/CadQuery/Libs/cadquery/freecad_impl/importers.py +++ b/CadQuery/Libs/cadquery/freecad_impl/importers.py @@ -21,9 +21,7 @@ """ import cadquery from .shapes import Shape -#from .verutil import fc_import -# FreeCAD = fc_import("FreeCAD") -# Part = fc_import("FreeCAD.Part") + import FreeCAD import Part @@ -34,31 +32,35 @@ class UNITS: MM = "mm" IN = "in" -def importShape(importType,fileName): - """ - Imports a file based on the type (STEP, STL, etc) - :param importType: The type of file that we're importing - :param fileName: THe name of the file that we're importing - """ - #Check to see what type of file we're working with - if importType == ImportTypes.STEP: - return importStep(fileName) +def importShape(importType, fileName): + """ + Imports a file based on the type (STEP, STL, etc) + :param importType: The type of file that we're importing + :param fileName: THe name of the file that we're importing + """ -#Loads a STEP file into a CQ object + #Check to see what type of file we're working with + if importType == ImportTypes.STEP: + return importStep(fileName) + + +#Loads a STEP file into a CQ.Workplane object def importStep(fileName): - """ + """ Accepts a file name and loads the STEP file into a cadquery shape :param fileName: The path and name of the STEP file to be imported """ #Now read and return the shape - try: - rshape = Part.read(fileName) + try: + rshape = Part.read(fileName) - r = Shape.cast(rshape) - #print "loadStep: " + str(r) - #print "Faces=%d" % cadquery.CQ(r).solids().size() - return cadquery.CQ(r) - except: - raise ValueError("STEP File Could not be loaded") + #Make sure that we extract all the solids + solids = [] + for solid in rshape.Solids: + solids.append(Shape.cast(solid)) + + return cadquery.Workplane("XY").newObject(solids) + except: + raise ValueError("STEP File Could not be loaded") diff --git a/CadQuery/Libs/cadquery/freecad_impl/shapes.py b/CadQuery/Libs/cadquery/freecad_impl/shapes.py index b6c1f8a..be88361 100644 --- a/CadQuery/Libs/cadquery/freecad_impl/shapes.py +++ b/CadQuery/Libs/cadquery/freecad_impl/shapes.py @@ -49,10 +49,6 @@ """ from cadquery import Vector, BoundBox import FreeCAD - -#from .verutil import fc_import - -#FreeCADPart = fc_import("FreeCAD.Part") import Part as FreeCADPart