2014-08-18 14:45:02 -04:00
|
|
|
"""
|
|
|
|
Tests file importers such as STEP
|
|
|
|
"""
|
2017-09-17 00:57:12 +02:00
|
|
|
# core modules
|
|
|
|
import io
|
2014-08-18 14:45:02 -04:00
|
|
|
|
|
|
|
from cadquery import *
|
|
|
|
from cadquery import exporters
|
|
|
|
from cadquery import importers
|
|
|
|
from tests import BaseTest
|
|
|
|
|
2017-09-17 00:57:12 +02:00
|
|
|
# where unit test output will be saved
|
2014-08-18 14:45:02 -04:00
|
|
|
import sys
|
|
|
|
if sys.platform.startswith("win"):
|
|
|
|
OUTDIR = "c:/temp"
|
|
|
|
else:
|
|
|
|
OUTDIR = "/tmp"
|
|
|
|
|
|
|
|
|
2014-12-11 20:42:41 -05:00
|
|
|
class TestImporters(BaseTest):
|
|
|
|
def importBox(self, importType, fileName):
|
|
|
|
"""
|
|
|
|
Exports a simple box to a STEP file and then imports it again
|
|
|
|
:param importType: The type of file we're importing (STEP, STL, etc)
|
|
|
|
:param fileName: The path and name of the file to write to
|
|
|
|
"""
|
2017-09-17 00:57:12 +02:00
|
|
|
# We're importing a STEP file
|
2014-12-11 20:42:41 -05:00
|
|
|
if importType == importers.ImportTypes.STEP:
|
2017-09-17 00:57:12 +02:00
|
|
|
# We first need to build a simple shape to export
|
2014-12-11 20:42:41 -05:00
|
|
|
shape = Workplane("XY").box(1, 2, 3).val()
|
|
|
|
|
2017-09-17 00:57:12 +02:00
|
|
|
# Export the shape to a temporary file
|
2014-12-11 20:42:41 -05:00
|
|
|
shape.exportStep(fileName)
|
|
|
|
|
|
|
|
# Reimport the shape from the new STEP file
|
2017-09-17 00:57:12 +02:00
|
|
|
importedShape = importers.importShape(importType, fileName)
|
2014-12-11 20:42:41 -05:00
|
|
|
|
2017-09-17 00:57:12 +02:00
|
|
|
# Check to make sure we got a solid back
|
2014-12-11 20:42:41 -05:00
|
|
|
self.assertTrue(importedShape.val().ShapeType() == "Solid")
|
|
|
|
|
2017-09-17 00:57:12 +02:00
|
|
|
# Check the number of faces and vertices per face to make sure we have a box shape
|
|
|
|
self.assertTrue(importedShape.faces("+X").size() ==
|
|
|
|
1 and importedShape.faces("+X").vertices().size() == 4)
|
|
|
|
self.assertTrue(importedShape.faces("+Y").size() ==
|
|
|
|
1 and importedShape.faces("+Y").vertices().size() == 4)
|
|
|
|
self.assertTrue(importedShape.faces("+Z").size() ==
|
|
|
|
1 and importedShape.faces("+Z").vertices().size() == 4)
|
2014-12-11 20:42:41 -05:00
|
|
|
|
|
|
|
def testSTEP(self):
|
|
|
|
"""
|
|
|
|
Tests STEP file import
|
|
|
|
"""
|
|
|
|
self.importBox(importers.ImportTypes.STEP, OUTDIR + "/tempSTEP.step")
|
2014-08-18 14:45:02 -04:00
|
|
|
|
2017-09-17 00:57:12 +02:00
|
|
|
|
2014-08-18 14:45:02 -04:00
|
|
|
if __name__ == '__main__':
|
2014-12-11 20:42:41 -05:00
|
|
|
import unittest
|
|
|
|
unittest.main()
|