コード例 #1
0
def flow_and_framework_tofile(filename, comflow, fmt="ascii"):
    'writes flow.CommandFlow object to xml file'
    cb = comflow.interface.ask_for_callback()
    cb1 = cb.subcallback(0, 3)

    cb1.pycall("Writing command flow", "", 0, 0)
    # write everithing except geometry data data
    r = _root_xml()
    write_command_flow(comflow, r)
    st = ET.SubElement(r.find('FLOW'), "STATE")
    write_framework(comflow.receiver, st)
    cb1.pycall("Writing command flow", "", 0.8, 0)
    writexml(r, filename, False)
    cb1.pycall("Writing command flow", "Done", 1, 1)

    # add geometry data and write to file
    doc, root = 0, 0
    try:
        cb2 = cb.subcallback(1, 3)
        doc, root = hmxml.open_doc(filename)
        [nd] = hmxml.query(root, "FLOW/STATE", required="=1")
        natex.export_all(doc, nd, comflow.receiver, fmt, cb2)
    except:
        raise
    finally:
        cb3 = cb.subcallback(2, 3)
        cb3.pycall("Write to file", "", 0.0, 0)
        hmxml.doc_to_file(doc, filename)
        hmxml.close_doc(doc, [root, nd])
        cb3.pycall("Write to file", "Done", 1, 1)
コード例 #2
0
ファイル: native_import.py プロジェクト: cescjf/HybMesh
def all_surfaces3(doc, node, cb=None):
    " -> s3 cdata, s3names"
    if cb is None:
        cb = SilentCallbackCancel2()
    s3, s3n = [], []
    qs = hmxml.query(node, "SURFACE3D")
    for i, q in enumerate(qs):
        cb1 = cb.subcallback(i, len(qs))
        s, n = read_surface3(doc, q, cb1)
        s3.append(s)
        s3n.append(n)
    return s3, s3n
コード例 #3
0
ファイル: native_import.py プロジェクト: cescjf/HybMesh
def all_grids2(doc, node, cb=None):
    " -> g2 cdata, g2names"
    if cb is None:
        cb = SilentCallbackCancel2()
    g2, g2n = [], []
    qs = hmxml.query(node, "GRID2D")
    for i, q in enumerate(qs):
        cb1 = cb.subcallback(i, len(qs))
        g, n = read_grid2(doc, q, cb1)
        g2.append(g)
        g2n.append(n)
    return g2, g2n
コード例 #4
0
ファイル: native_import.py プロジェクト: cescjf/HybMesh
def all_contours2(doc, node, cb=None):
    " -> c2 cdata, c2names"
    if cb is None:
        cb = SilentCallbackCancel2()
    c2, c2n = [], []
    qs = hmxml.query(node, "CONTOUR2D")
    for i, q in enumerate(qs):
        cb1 = cb.subcallback(i, len(qs))
        c, n = read_contour2(doc, q, cb1)
        c2.append(c)
        c2n.append(n)
    return c2, c2n
コード例 #5
0
def flow_and_framework_fromfile(filename, flow, cb=None):
    doc, root, statenodes = 0, 0, []
    try:
        cb.pycall("Loading commands", "Reading xml", 0, 0)
        doc, root = hmxml.open_doc(filename)
        pstring = hmxml.purged_string(doc)
        pyside_root = ET.fromstring(pstring)
        pyside_flownode = pyside_root.findall('FLOW')
        if len(pyside_flownode) == 0:
            raise Exception('No proper data in xml file')
        else:
            pyside_flownode = pyside_flownode[0]

        # load commands
        cb.pycall("Loading commands", "Parsing", 0.5, 0)
        _load_command_flow(flow, pyside_flownode)
        cb.pycall("Loading commands", "Done", 1, 1)

        # state
        statenodes = hmxml.query(root, "FLOW/STATE")
        pyside_statenode = pyside_flownode.findall('STATE')
        if len(statenodes) > 0:
            statenode = statenodes[0]
            pyside_statenode = pyside_statenode[0]
        else:
            statenode = None
            pyside_statenode = None

        data = framework.Framework()
        if statenode is not None:
            # load boundary types
            _load_btypes(data, pyside_statenode)

            # load data
            c, g, s3, g3, cn, gn, s3n, g3n =\
                native_import.all_geom(doc, statenode, cb)
            for k, v in zip(cn, c):
                data.append_contour2(Contour2(v), k)
            for k, v in zip(gn, g):
                data.append_grid2(Grid2(v), k)
            for k, v in zip(s3n, s3):
                data.append_surface3(Surface3(v), k)
            for k, v in zip(g3n, g3):
                data.append_grid3(Grid3(v), k)
        flow.set_receiver(data)
    except:
        raise
    finally:
        hmxml.close_doc(doc, [root] + statenodes)
コード例 #6
0
ファイル: native_import.py プロジェクト: cescjf/HybMesh
def grid3(doc, node, name=None, cb=None):
    s = "GRID3D"
    if name:
        s = s + "[@name='%s']" % name
    q = hmxml.query(node, s, required='>0')[0]
    return read_grid3(doc, q, cb)
コード例 #7
0
ファイル: native_import.py プロジェクト: cescjf/HybMesh
def surface3(doc, node, name=None, cb=None):
    s = "SURFACE3D"
    if name:
        s = s + "[@name='%s']" % name
    q = hmxml.query(node, s, required='>0')[0]
    return read_surface3(doc, q, cb)
コード例 #8
0
ファイル: native_import.py プロジェクト: cescjf/HybMesh
def contour2(doc, node, name=None, cb=None):
    s = "CONTOUR2D"
    if name:
        s = s + "[@name='%s']" % name
    q = hmxml.query(node, s, required='>0')[0]
    return read_contour2(doc, q, cb)