示例#1
0
    def test_convert_02(self):
        """converts a full model units"""
        log = SimpleLogger(level='error')
        bdf_filename = os.path.abspath(
            os.path.join(pkg_path, '..', 'models', 'bwb', 'bwb_saero.bdf'))
        bdf_filename_out = os.path.abspath(
            os.path.join(pkg_path, '..', 'models', 'bwb', 'bwb_saero.out'))

        model = read_bdf(bdf_filename, log=log)
        units_to = ['m', 'kg', 's']
        units_from = ['in', 'lbm', 's']
        #units_to = units_from
        convert(model, units_to, units_from)
        model.write_bdf(bdf_filename_out)

        caero_bdf_filename = 'caero.bdf'
        export_caero_mesh(model, caero_bdf_filename=caero_bdf_filename)
        os.remove(bdf_filename_out)
        os.remove(caero_bdf_filename)
示例#2
0
def cmd_line_export_caero_mesh(argv=None, quiet=False):
    """command line interface to export_caero_mesh"""
    if argv is None:
        argv = sys.argv

    from docopt import docopt
    import pyNastran
    msg = (
        'Usage:\n'
        '  bdf export_caero_mesh IN_BDF_FILENAME [-o OUT_BDF_FILENAME] [--subpanels]\n'
        '  bdf export_caero_mesh -h | --help\n'
        '  bdf export_caero_mesh -v | --version\n'
        '\n'
        'Positional Arguments:\n'
        '  IN_BDF_FILENAME    path to input BDF/DAT/NAS file\n'
        '\n'
        'Options:\n'
        '  -o OUT, --output  OUT_CAERO_BDF_FILENAME  path to output BDF file\n'
        '  -subpanels                                write the subpanels (default=False)\n'
        '\n'
        'Info:\n'
        '  -h, --help      show this help message and exit\n'
        "  -v, --version   show program's version number and exit\n")
    if len(argv) == 1:
        sys.exit(msg)

    ver = str(pyNastran.__version__)
    #type_defaults = {
    #    '--nerrors' : [int, 100],
    #}
    data = docopt(msg, version=ver, argv=argv[1:])
    if not quiet:  # pragma: no cover
        print(data)
    size = 16
    bdf_filename = data['IN_BDF_FILENAME']
    caero_bdf_filename = data['--output']
    if caero_bdf_filename is None:
        caero_bdf_filename = 'caero.bdf'
    is_subpanel_model = data['--subpanels']

    from pyNastran.bdf.bdf import read_bdf
    from pyNastran.bdf.mesh_utils.export_caero_mesh import export_caero_mesh
    skip_cards = [
        # elements
        'CELAS1',
        'CELAS2',
        'CELAS3',
        'CELAS4',
        'CONM2',
        'CROD',
        'CTUBE',
        'CONROD',
        'CBAR',
        'CBEAM',
        'CQUAD4',
        'CTRIA3',
        'CTETRA',
        'CHEXA',
        'CPENTA',
        'CPYRAM',
        'RBE1',
        'RBE2',
        'RBE3',
        'RBAR',

        # properties
        'PELAS',
        'PDAMP',
        'PROD',
        'PTUBE',
        'PBAR',
        'PBARL',
        'PBEAM',
        'PBEAML',
        'PBCOMP',
        'PSHEAR',
        'PSHELL',
        'PCOMP',
        'PCOMPG',
        'PSOLID',
        'MAT1',
        'MAT8',

        # loads
        'PLOAD',
        'PLOAD2',
        'PLOAD4',
        'FORCE',
        'FORCE1',
        'FORCE2',
        'MOMENT',
        'MOMENT1',
        'MOMENT2',
        'GRAV',
        'ACCEL',
        'ACCEL1',
        # constraints
        'SPC',
        'SPC1',
        'MPC',
        'SPCADD',
        'MPCADD',
        'DEQATN',

        #  optimization
        'DVPREL1',
        'DVPREL2',
        'DVMREL1',
        'DVMREL2',
        'DVCREL1',
        'DVCREL2',
        'DCONADD',
        'DRESP1',
        'DRESP2',
        'DRESP3',
        'DESVAR',
        #  aero: mabye enable later
        'TRIM',
        'AESTAT',
        'FLUTTER',
        'FLFACT',
    ]
    level = 'debug' if not quiet else 'warning'
    log = SimpleLogger(level=level, encoding='utf-8', log_func=None)
    model = read_bdf(bdf_filename, log=log, skip_cards=skip_cards)
    export_caero_mesh(model,
                      caero_bdf_filename,
                      is_subpanel_model=is_subpanel_model)