예제 #1
0
 def test_stl_to_nastran_01(self):
     stl_filename = os.path.join(test_path, 'sphere.stl')
     bdf_filename_8 = os.path.join(test_path, 'sphere_8.bdf')
     bdf_filename_16 = os.path.join(test_path, 'sphere_16.bdf')
     bdf_filename_double = os.path.join(test_path, 'sphere_double.bdf')
     stl_to_nastran_filename(stl_filename, bdf_filename_8)
     stl_to_nastran(stl_filename, bdf_filename_16, size=16)
     stl_to_nastran(stl_filename, bdf_filename_double, size=16, is_double=True)
     os.remove(bdf_filename_8)
     os.remove(bdf_filename_16)
     os.remove(bdf_filename_double)
예제 #2
0
def main():  # pragma: no cover
    bdf_filename = 'bay.bdf'
    bc_file = 'bc'

    bdf_filename2 = 'bay2.bdf'
    cart3d_filename = 'bay.i.tri'
    stl_filename = 'bay.stl'
    #in_format = 'nastran'
    flip_normals = True

    volume_bdfname = 'bay.vol.bdf'

    module = __import__(bc_file)
    pid_map = module.__dict__['pid_map']
    boundary_conditions = module.__dict__['boundary_conditions']

    #print(dir(module))
    #e = execfile(bc_file, globals(), locals())
    #print(globals())
    #print(dir(e))

    pid_map
    boundary_conditions
    assert isinstance(pid_map, dict)
    assert isinstance(boundary_conditions, dict)

    get_bcs(bdf_filename, pid_map, boundary_conditions, log=None)
    #if flip_normals:
    #bdf = BDF(debug=False)
    #bdf.read_bdf(bdf_filename, xref=False)
    #bdf.flip_normals()
    #bdf.write_bdf(bdf_filename2)
    #del bdf
    #else:
    #bdf_filename2 = bdf_filename

    if 0:
        nastran_to_cart3d_filename(bdf_filename, cart3d_filename, log=log)
        cart3d_to_stl_filename(cart3d_filename, stl_filename, log=log)
    else:
        nastran_to_stl_filename(bdf_filename, stl_filename, log=log)
        stl_to_nastran_filename(stl_filename, bdf_filename2, log=log)
    print('----------')
    #nastran_to_cart3d(bdf_filename2, cart3d_filename)
    #cart3d = Cart3d()
    #cart3d.read_cart3d(cart3d_filename)

    stl = STL()
    stl.read_stl(stl_filename)

    if flip_normals:
        stl.flip_normals()
    stl.project_boundary_layer(stl.nodes, stl.elements, volume_bdfname)
예제 #3
0
def main():
    bdf_filename = 'bay.bdf'
    bc_file = 'bc'

    bdf_filename2 = 'bay2.bdf'
    cart3d_filename = 'bay.i.tri'
    stl_filename = 'bay.stl'
    #in_format = 'nastran'
    flip_normals = True

    volume_bdfname = 'bay.vol.bdf'

    module = __import__(bc_file)
    pid_map = module.__dict__['pid_map']
    boundary_conditions = module.__dict__['boundary_conditions']

    #print(dir(module))
    #e = execfile(bc_file, globals(), locals())
    #print(globals())
    #print(dir(e))

    pid_map
    boundary_conditions
    assert isinstance(pid_map, dict)
    assert isinstance(boundary_conditions, dict)

    get_bcs(bdf_filename, pid_map, boundary_conditions, log=None)
    #if flip_normals:
       #bdf = BDF()
       #bdf.read_bdf(bdf_filename, xref=False)
       #bdf.flip_normals()
       #bdf.write_bdf(bdf_filename2)
       #del bdf
    #else:
    #bdf_filename2 = bdf_filename

    if 0:
        nastran_to_cart3d_filename(bdf_filename, cart3d_filename, log=log)
        cart3d_to_stl_filename(cart3d_filename, stl_filename, log=log)
    else:
        nastran_to_stl_filename(bdf_filename, stl_filename, log=log)
        stl_to_nastran_filename(stl_filename, bdf_filename2, log=log)
    print("----------")
    #nastran_to_cart3d(bdf_filename2, cart3d_filename)
    #cart3d = Cart3dReader()
    #cart3d.read_cart3d(cart3d_filename)

    stl = STLReader()
    stl.read_stl(stl_filename)

    if flip_normals:
        stl.flip_normals()
    stl.project_boundary_layer(stl.nodes, stl.elements, volume_bdfname)
예제 #4
0
 def test_stl_to_nastran_01(self):
     log = get_logger(level='warning')
     stl_filename = os.path.join(TEST_PATH, 'sphere.stl')
     bdf_filename_8 = os.path.join(TEST_PATH, 'sphere_8.bdf')
     bdf_filename_16 = os.path.join(TEST_PATH, 'sphere_16.bdf')
     bdf_filename_double = os.path.join(TEST_PATH, 'sphere_double.bdf')
     stl_to_nastran_filename(stl_filename, bdf_filename_8, log=log)
     stl_to_nastran(stl_filename, bdf_filename_16, size=16, log=log)
     stl_to_nastran(stl_filename, bdf_filename_double, size=16, is_double=True, log=log)
     os.remove(bdf_filename_8)
     os.remove(bdf_filename_16)
     os.remove(bdf_filename_double)
예제 #5
0
 def test_stl_to_nastran_01(self):
     stl_filename = os.path.join(test_path, 'sphere.stl')
     bdf_filename_8 = os.path.join(test_path, 'sphere_8.bdf')
     bdf_filename_16 = os.path.join(test_path, 'sphere_16.bdf')
     bdf_filename_double = os.path.join(test_path, 'sphere_double.bdf')
     stl_to_nastran_filename(stl_filename, bdf_filename_8)
     stl_to_nastran(stl_filename, bdf_filename_16, size=16)
     stl_to_nastran(stl_filename,
                    bdf_filename_double,
                    size=16,
                    is_double=True)
     os.remove(bdf_filename_8)
     os.remove(bdf_filename_16)
     os.remove(bdf_filename_double)
예제 #6
0
def process_stl(stl_filename, fmt2, fname2, data=None):
    """
    Converts STL to Nastran/Cart3d
    """
    assert fmt2 in ['stl', 'nastran', 'cart3d'], 'format2=%s' % fmt2
    if '*' in stl_filename:
        stl_filenames = glob.glob(stl_filename)
    else:
        stl_filenames = [stl_filename]
    assert len(stl_filenames) > 0, stl_filenames
    model = merge_stl_files(stl_filenames, stl_out_filename=None)
    scale = data['--scale']
    if scale is not None:
        assert isinstance(scale, float), 'scale=%r type=%r' % (scale, type(scale))
        model.nodes *= scale

    # model = STL()
    # model.read_stl(stl_filename)
    if fmt2 == 'nastran':
        stl_temp_filename = '__temp__.stl'
        model.write_stl(stl_out_filename, is_binary=True, #float_fmt='%6.12f',
                        stop_on_failure=False)
        stl_to_nastran_filename(stl_temp_filename, fname2)
        os.remove(stl_temp_filename)
        # stl_to_cart3d(model, fname2 + '.cart')
        # process_cart3d(fname2 + '.cart', 'nastran', fname2)
        # stl_to_nastran(model, fname2)
    #elif fmt2 == 'cart3d':
        # we don't have an STL -> Cart3d, so we:
        #    - STL -> BDF
        #    - BDF -> Cart3D
        # stl_to_cart3d(model, fname2)
        #stl_to_nastran_filename(stl_filename, fname2 + '.bdf')
        #stl_to_cart3d_filename(fname2 + '.bdf', fname2)
    elif fmt2 == 'stl':
        is_binary = data['--binary']
        model.write_stl(fname2, is_binary=is_binary, float_fmt='%6.12f', stop_on_failure=False)
    # elif fmt2 == 'tecplot':
        # stl_to_tecplot(model, fname2)
    # elif fmt2 == 'ugrid':
        # stl_to_ugrid(model, fname2)
    else:
        raise NotImplementedError(fmt2)
예제 #7
0
def process_stl(stl_filename, fmt2, fname2, data=None):
    """
    Converts STL to Nastran/Cart3d
    """
    assert fmt2 in ['stl', 'nastran', 'cart3d'], 'format2=%s' % fmt2
    if '*' in stl_filename:
        stl_filenames = glob.glob(stl_filename)
    else:
        stl_filenames = [stl_filename]
    assert len(stl_filenames) > 0, stl_filenames
    model = merge_stl_files(stl_filenames, stl_out_filename=None)

    # model = STL()
    # model.read_stl(stl_filename)
    if fmt2 == 'nastran':
        stl_to_nastran_filename(stl_filename, fname2)
        # stl_to_cart3d(model, fname2 + '.cart')
        # process_cart3d(fname2 + '.cart', 'nastran', fname2)
        # stl_to_nastran(model, fname2)
    elif fmt2 == 'cart3d':
        # stl_to_cart3d(model, fname2)
        stl_to_nastran_filename(stl_filename, fname2 + '.bdf')
        stl_to_nastran_filename(fname2 + '.bdf', fname2)
    elif fmt2 == 'stl':
        is_binary = data['--binary']
        model.write_stl(fname2, is_binary=is_binary, float_fmt='%6.12f')
    # elif fmt2 == 'tecplot':
        # stl_to_tecplot(model, fname2)
    # elif fmt2 == 'ugrid':
        # stl_to_ugrid(model, fname2)
    else:
        raise NotImplementedError(fmt2)
예제 #8
0
    def test_stl_to_nastran_01(self):
        log = get_logger(level='warning')
        stl_filename = os.path.join(TEST_PATH, 'sphere.stl')
        bdf_filename_8 = os.path.join(TEST_PATH, 'sphere_8.bdf')
        bdf_filename_8b = os.path.join(TEST_PATH, 'sphere_8b.bdf')
        bdf_filename_16 = os.path.join(TEST_PATH, 'sphere_16.bdf')
        bdf_filename_double = os.path.join(TEST_PATH, 'sphere_double.bdf')
        stl_to_nastran_filename(stl_filename, bdf_filename_8, log=log)
        stl_to_nastran(stl_filename, bdf_filename_16, size=16, log=log)
        stl_to_nastran(stl_filename,
                       bdf_filename_double,
                       size=16,
                       is_double=True,
                       log=log)

        argv = [
            'format_converter', 'stl', stl_filename, 'nastran', bdf_filename_8b
        ]
        cmd_line_format_converter(argv=argv, quiet=True)

        os.remove(bdf_filename_8)
        os.remove(bdf_filename_8b)
        os.remove(bdf_filename_16)
        os.remove(bdf_filename_double)
예제 #9
0
 def test_stl_to_nastran_01(self):
     stl_filename = os.path.join(test_path, 'sphere.stl')
     bdf_filename = os.path.join(test_path, 'sphere.bdf')
     stl_to_nastran_filename(stl_filename, bdf_filename)
     os.remove(bdf_filename)