Merge pull request #128 from huskier/master
Import a STEP file from the web
This commit is contained in:
		| @ -24,7 +24,11 @@ from .shapes import Shape | ||||
|  | ||||
| import FreeCAD | ||||
| import Part | ||||
|  | ||||
| import sys | ||||
| import os | ||||
| import urllib as urlreader | ||||
| import tempfile | ||||
|    | ||||
| class ImportTypes: | ||||
|     STEP = "STEP" | ||||
|  | ||||
| @ -50,11 +54,11 @@ 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) | ||||
| 	#print fileName         | ||||
| 	rshape = Part.read(fileName) | ||||
|  | ||||
|         #Make sure that we extract all the solids | ||||
|         solids = [] | ||||
| @ -64,3 +68,24 @@ def importStep(fileName): | ||||
|         return cadquery.Workplane("XY").newObject(solids) | ||||
|     except: | ||||
|         raise ValueError("STEP File Could not be loaded") | ||||
|  | ||||
| #Loads a STEP file from an URL into a CQ.Workplane object | ||||
| def importStepFromURL(url):     | ||||
|     #Now read and return the shape | ||||
|     try: | ||||
|         webFile = urlreader.urlopen(url) | ||||
| 	tempFile = tempfile.NamedTemporaryFile(suffix='.step', delete=False) | ||||
| 	tempFile.write(webFile.read()) | ||||
|         webFile.close() | ||||
| 	tempFile.close()   | ||||
|  | ||||
| 	rshape = Part.read(tempFile.name) | ||||
|  | ||||
|         #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 from the URL: " + url + " Could not be loaded") | ||||
|  | ||||
		Reference in New Issue
	
	Block a user