Made the STEP import function more robust so that it could return a CQ.Workplane object.

This commit is contained in:
Jeremy Wright 2014-12-11 14:35:29 -05:00
parent 4b98b04465
commit e51b54d6c4
4 changed files with 27 additions and 32 deletions

View File

@ -679,8 +679,8 @@ class CQ(object):
startPt = obj.Center()
endPt = startPt + endVec
obj.rotate(startPt,endPt,angleDegrees)
return self.each(_rot,False)
return self.each(_rot, False)
def translate(self,vec):
"""

View File

@ -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.

View File

@ -20,10 +20,8 @@
a string containing the model content.
"""
import cadquery
from .shapes import Shape
#from .verutil import fc_import
# FreeCAD = fc_import("FreeCAD")
# Part = fc_import("FreeCAD.Part")
from .shapes import Shape, Compound
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")

View File

@ -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