There are two different methods to build hexahedra from quadrangles:
elts = doc.prismQuad(quad, vec, nb)
elts = doc.prismQuads([ q1, q2, q3 ], vec, nb)
import hexablock
doc = hexablock.addDocument()
orig = doc.addVertex(0, 0, 0)
dx = doc.addVector(1, 0, 0)
dy = doc.addVector(0, 1, 0)
dz = doc.addVector(0, 0, 1)
dimx = 11
dimy = 11
dimz = 2
grid = doc.makeCartesian(orig, dx, dy, dz, dimx, dimy, dimz)
mx = dimx/2
my = dimy/2
prems = grid.getQuadIJ(mx, my, dimz)
liste = [prems]
liste.extend([grid.getQuadIJ(nx, my, dimz) for nx in range(dimx) if nx != mx])
liste.extend([grid.getQuadIJ(mx, ny, dimz) for ny in range(dimy) if ny != my])
vec = doc.addVector(1, 1, 1)
elts = doc.prismQuads(liste, vec, 5)
Prism Quads
elts = doc.joinQuad(qa, qb, va1, vb1, va2, vb2, nb)
elts = doc.joinQuads([ qa1, qa2 ], qb, va1, vb1, va2, vb2, nb)
import hexablock
doc = hexablock.addDocument()
orig1 = doc.addVertex(0, 0, 0)
dx = doc.addVector(1, 0, 0)
dy = doc.addVector(0, 1, 0)
dz = doc.addVector(0, 0, 1)
dimx = 11
dimy = 11
dimz = 2
grid1 = doc.makeCartesian(orig1, dx, dy, dz, dimx, dimy, dimz)
orig2 = doc.addVertex(dimx/2.0, 0, 8)
grid2 = doc.makeCylindrical(orig2, dx, dy, 1, 180, 1, dimz, dimy,
dimx, False)
mx = dimx/2
my = dimy/2
prems = grid1.getQuadIJ(mx, my, dimz)
cible = grid2.getQuadJK(dimz, mx, my)
v1 = prems.getVertex(0)
v3 = prems.getVertex(1)
v2 = cible.getVertex(1)
v4 = cible.getVertex(2)
liste = [prems]
liste.extend([grid1.getQuadIJ(nx, my, dimz) for nx in range(dimx) if nx != mx])
liste.extend([grid1.getQuadIJ(mx, ny, dimz) for ny in range(dimy) if ny != my])
height = 5
elts = doc.joinQuads(liste, cible, v1, v2, v3, v4, height)
Join Quads
GUI command: Prism and join quadrangles