Beispiel #1
0
def make_2d(mesh, dims):
    print ">>>>>> make_2d"
    x,y=dims
    print "X-dim=%s, Y-dim=%s, Z-dim=%s" % (x,y,1)

    print "--> make_coords"
    t0=time.time()
    coords=utils.make_coords(x,y,1)
    print "    %.1f ms" % ((time.time()-t0)*1000)

    print "--> createVtx"
    t0=time.time()
    verts=mesh.createVtx(coords)
    print "    %.1f ms" % ((time.time()-t0)*1000)

    print "--> make_quadrilateral_vertex_array"
    t0=time.time()
#    vert_arr=utils.make_quadrilateral_vertex_array_orig(verts, x, y)
#    vert_arr=utils.make_quadrilateral_vertex_array_extend(verts, x)
    vert_arr=utils.make_quadrilateral_vertex_array(verts, x)
    print "    %.1f ms" % ((time.time()-t0)*1000)

    print "--> createEntArr quadrilaterals"
    t0=time.time()
    quads,status=mesh.createEntArr(iMesh.Topology.quadrilateral,vert_arr)
    print "    %.1f ms" % ((time.time()-t0)*1000)

    print "--> createEntSet(s)"
    set=mesh.createEntSet(ordered=False)
    set.add(quads)

    utils.print_mesh_types(mesh)

    print "<<<<<<\n"
Beispiel #2
0
def make_3d(mesh, dims, t3d):
    print ">>>>>> make_3d"
    x,y,z=dims
    print "X-dim=%s, Y-dim=%s, Z-dim=%s" % (x,y,z)

    print "--> make_coords"
    t0=time.time()
    coords=utils.make_coords(x,y,z)
    print "    %.1f ms" % ((time.time()-t0)*1000)

    print "--> createVtx"
    t0=time.time()
    verts=mesh.createVtx(coords)
    print "    %.1f ms" % ((time.time()-t0)*1000)

    print "--> make_hexahedron_vertex_array"
    t0=time.time()
#    vert_arr=utils.make_hexahedron_vertex_array_orig(verts, x,y,z)
#    vert_arr=utils.make_hexahedron_vertex_array_extend(verts, x,y,z)
    vert_arr=utils.make_hexahedron_vertex_array(verts, x,y,z)
    print "    %.1f ms" % ((time.time()-t0)*1000)

    print "--> createEntArr hexahedrons"
    t0=time.time()
    cubes,status=mesh.createEntArr(iMesh.Topology.hexahedron,vert_arr)
    print "    %.1f ms" % ((time.time()-t0)*1000)

    print "--> createEntSet(s)"
    if t3d:
        set=mesh.createEntSet(ordered=False)
        set.add(cubes)
    else:
        t0=time.time()
        slice_size=(x-1)*(y-1)
        # Add a set for the 'top' (5th face) of each 'layer' in the mesh
        for zi in range(z-1):
            set=mesh.createEntSet(ordered=False)
            # The 5th face (index 4) is always the top
            set.add([x[4] for x in mesh.getEntAdj(cubes[zi*slice_size:(zi+1)*slice_size], iBase.Type.face)])
        # Add a final set for the 'bottom' (6th face) of the last 'layer' in the mesh
        set=mesh.createEntSet(ordered=False)
        # The 6th face (index 5) is always the top
        set.add([x[5] for x in mesh.getEntAdj(cubes[(z-1)*slice_size:z*slice_size], iBase.Type.face)])
        print "    %.1f ms" % ((time.time()-t0)*1000)


    utils.print_mesh_types(mesh)

    print "<<<<<<\n"