def test_cube_cube_coplanar_touchface(self): w = mt.createCube(marker=1) w.scale([2.0, 2.0, 2.0]) c = mt.createCube(marker=2) c.translate([1.5, 0.0, 0.0]) w = mt.mergePLC3D([w, c]) self.assertEqual(w.nodeCount(), 8 + 8) self.assertEqual(w.boundaryCount(), 6 + 5) c = mt.createCube(marker=3) c.translate([-1.5, 0.0, 0.0]) w = mt.mergePLC3D([w, c]) self.assertEqual(w.nodeCount(), 8 + 8 + 8) self.assertEqual(w.boundaryCount(), 6 + 5 + 5) c = mt.createCube(marker=4) c.translate([0.0, 1.5, 0.0]) w = mt.mergePLC3D([w, c]) self.assertEqual(w.nodeCount(), 8 + 8 + 8 + 8) self.assertEqual(w.boundaryCount(), 6 + 5 + 5 + 5) c = mt.createCube(marker=5) c.translate([0.0, 0.0, -1.5]) w = mt.mergePLC3D([w, c]) self.assertEqual(w.nodeCount(), 8 + 8 + 8 + 8 + 8) self.assertEqual(w.boundaryCount(), 6 + 5 + 5 + 5 + 5) pg.show(w) # w.exportPLC('t.poly') pg.show(mt.createMesh(w))
def test_cube_cube_equalface(self): w = mt.createCube(marker=1) c = mt.createCube(marker=2) c.translate([c.xmax() - w.xmin(), 0.0]) w = mt.mergePLC3D([w, c]) self.assertEqual(w.nodeCount(), 8 + 4) self.assertEqual(w.boundaryCount(), 6 + 5) c = mt.createCube(marker=3) c.translate([0.0, w.ymax() - c.ymin(), 0.0]) w = mt.mergePLC3D([w, c]) self.assertEqual(w.nodeCount(), 8 + 4 + 4) self.assertEqual(w.boundaryCount(), 6 + 5 + 5) c = mt.createCube(marker=4) c.translate([0.0, 0.0, c.zmax() - w.zmin()]) w = mt.mergePLC3D([c, w]) self.assertEqual(w.nodeCount(), 8 + 4 + 4 + 4) self.assertEqual(w.boundaryCount(), 6 + 5 + 5 + 5) c = mt.createCube(marker=5) c.translate([0.0, w.ymax() - c.ymin(), c.zmax() - w.zmin()]) w = mt.mergePLC3D([c, w]) self.assertEqual(w.nodeCount(), 8 + 4 + 4 + 4 + 6) self.assertEqual(w.boundaryCount(), 6 + 5 + 5 + 5 + 6) c = mt.createCube(marker=6) c.translate([0.0, c.ymax() - w.ymin(), c.zmax() - w.zmin()]) w = mt.mergePLC3D([w, c]) self.assertEqual(w.nodeCount(), 8 + 4 + 4 + 4 + 6 + 0) self.assertEqual(w.boundaryCount(), 6 + 5 + 5 + 5 + 6 + 3) # w.exportPLC('t.poly') pg.show(mt.createMesh(w))
def test_cyl_on_cyl(self): # merge only works if smaller face merged into larger face on contact plane segs = 12 c1 = mt.createCylinder(radius=2, nSegments=segs, boundaryMarker=1) c2 = mt.createCylinder(radius=1, nSegments=segs, boundaryMarker=2) c1.translate([0, 0, 0.5]) c2.translate([0, 0, -0.5]) w = mt.mergePLC3D([c1, c2]) self.assertEqual(w.nodeCount(), segs * 2 * 2) self.assertEqual(w.boundaryCount(), segs * 2 + 3)
def test_smallcube_in_bigcube(self): """ A small cube in a bigger one, creating two subfaces. author: @frodo4fingers """ w = mt.createCube(marker=1) c = mt.createCube(size=[0.5, 1.0, 1.0], marker=2) w = mt.mergePLC3D([w, c]) self.assertEqual(w.nodeCount(), 8 + 8) self.assertEqual(w.boundaryCount(), 8) # will not work until edge intersection is working # d = mt.createCube(size=[0.8, 1.0, 1.0], # pos=[0.1, 0.0, 1.0], # marker=3) # w = mt.mergePLC3D([w, d]) # self.assertEqual(w.nodeCount(), 8+8) # self.assertEqual(w.boundaryCount(), 8) # print(w) pg.show(w) pg.show(mt.createMesh(w))
def test_cube_cube_same(self): c1 = mt.createCube() c2 = mt.createCube() m = mt.mergePLC3D([c1, c2]) self.assertEqual(c1.nodeCount(), m.nodeCount()) self.assertEqual(c1.boundaryCount(), m.boundaryCount())