OpenSCAD: fix test_import_surface by changing currently working directory
This commit is contained in:
@@ -201,7 +201,6 @@ polyhedron(
|
||||
f = open(filename,"w+")
|
||||
f.write(scadCode)
|
||||
f.close()
|
||||
os.chdir(temp_dir)
|
||||
return importCSG.open(filename)
|
||||
|
||||
def test_import_difference(self):
|
||||
@@ -314,38 +313,48 @@ polyhedron(
|
||||
FreeCAD.closeDocument(doc.Name)
|
||||
|
||||
def test_import_surface(self):
|
||||
testfile = join(self.test_dir, "Surface.dat").replace('\\','/')
|
||||
doc = self.utility_create_scad(f"surface(file = \"{testfile}\", center = true, convexity = 5);", "surface_simple_dat")
|
||||
object = doc.ActiveObject
|
||||
self.assertTrue (object is not None)
|
||||
self.assertAlmostEqual (object.Shape.Volume, 275.000000, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMin, -4.5, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMax, 4.5, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMin, -4.5, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMax, 4.5, 6)
|
||||
FreeCAD.closeDocument(doc.Name)
|
||||
|
||||
testfile = join(self.test_dir, "Surface.dat").replace('\\','/')
|
||||
doc = self.utility_create_scad(f"surface(file = \"{testfile}\", convexity = 5);", "surface_uncentered_dat")
|
||||
object = doc.ActiveObject
|
||||
self.assertTrue (object is not None)
|
||||
self.assertAlmostEqual (object.Shape.Volume, 275.000000, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMin, 0, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMax, 9, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMin, 0, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMax, 9, 6)
|
||||
FreeCAD.closeDocument(doc.Name)
|
||||
# Workaround for absolute vs. relative path issue
|
||||
# Inside the OpenSCAD file an absolute path name to Surface.dat is used
|
||||
# but by using the OpenSCAD executable to create a CSG file it's converted
|
||||
# into a path name relative to the output filename.
|
||||
# In order to open the CAG file correctly the cwd must be temporarily changed
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
cwd = os.getcwd()
|
||||
os.chdir(temp_dir)
|
||||
|
||||
testfile = join(self.test_dir, "Surface2.dat").replace('\\','/')
|
||||
doc = self.utility_create_scad(f"surface(file = \"{testfile}\", center = true, convexity = 5);", "surface_rectangular_dat")
|
||||
object = doc.ActiveObject
|
||||
self.assertTrue (object is not None)
|
||||
self.assertAlmostEqual (object.Shape.Volume, 24.5500000, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMin, -2, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMax, 2, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMin, -1.5, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMax, 1.5, 6)
|
||||
FreeCAD.closeDocument(doc.Name)
|
||||
testfile = join(self.test_dir, "Surface.dat").replace('\\','/')
|
||||
doc = self.utility_create_scad(f"surface(file = \"{testfile}\", center = true, convexity = 5);", "surface_simple_dat")
|
||||
object = doc.ActiveObject
|
||||
self.assertTrue (object is not None)
|
||||
self.assertAlmostEqual (object.Shape.Volume, 275.000000, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMin, -4.5, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMax, 4.5, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMin, -4.5, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMax, 4.5, 6)
|
||||
FreeCAD.closeDocument(doc.Name)
|
||||
|
||||
testfile = join(self.test_dir, "Surface.dat").replace('\\','/')
|
||||
doc = self.utility_create_scad(f"surface(file = \"{testfile}\", convexity = 5);", "surface_uncentered_dat")
|
||||
object = doc.ActiveObject
|
||||
self.assertTrue (object is not None)
|
||||
self.assertAlmostEqual (object.Shape.Volume, 275.000000, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMin, 0, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMax, 9, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMin, 0, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMax, 9, 6)
|
||||
FreeCAD.closeDocument(doc.Name)
|
||||
|
||||
testfile = join(self.test_dir, "Surface2.dat").replace('\\','/')
|
||||
doc = self.utility_create_scad(f"surface(file = \"{testfile}\", center = true, convexity = 5);", "surface_rectangular_dat")
|
||||
object = doc.ActiveObject
|
||||
self.assertTrue (object is not None)
|
||||
self.assertAlmostEqual (object.Shape.Volume, 24.5500000, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMin, -2, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.XMax, 2, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMin, -1.5, 6)
|
||||
self.assertAlmostEqual (object.Shape.BoundBox.YMax, 1.5, 6)
|
||||
FreeCAD.closeDocument(doc.Name)
|
||||
os.chdir(cwd)
|
||||
|
||||
def test_import_projection(self):
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user