def test_convert_bar(self): """converts a bar model""" log = SimpleLogger(level='warning') model_path = os.path.join(pkg_path, '..', 'models', 'beam_modes') bdf_filename = os.path.join(model_path, 'beam_modes.dat') bdf_filename_out = os.path.join(model_path, 'beam_modes_temp.bdf') bdf_filename_out2 = os.path.join(model_path, 'beam_modes_converted.bdf') model = read_bdf(bdf_filename, log=log, validate=False) #card_lines = ['EIGRL', 42, None, None, 20] #model.add_card(card_lines, 'EIGRL') #model.case_control_deck = CaseControlDeck(lines) model.write_bdf(bdf_filename_out) #units_from = ['in', 'lbm', 's'] units_from = ['mm', 'Mg', 's'] units_to = ['m', 'kg', 's'] convert(model, units_to, units=units_from) model.write_bdf(bdf_filename_out2) os.remove(bdf_filename_out) os.remove(bdf_filename_out2) terms = ['F', 'P', 'V'] scales = [1.1, 0.9, 0.8] scale_by_terms(bdf_filename, terms, scales, bdf_filename_out=bdf_filename_out, log=log) os.remove(bdf_filename_out)
def cmd_line_scale(argv=None, quiet=False): if argv is None: argv = sys.argv import argparse import textwrap import pyNastran parent_parser = argparse.ArgumentParser( #prog = 'pyNastranGUI', #usage = usage, #description='A foo that bars', epilog="And that's how you'd foo a bar", #formatter_class=argparse.RawDescriptionHelpFormatter, #description=textwrap.dedent(text), #version=pyNastran.__version__, #add_help=False, ) # positional arguments parent_parser.add_argument('scale', type=str) parent_parser.add_argument('INPUT', help='path to output BDF/DAT/NAS file', type=str) parent_parser.add_argument('OUTPUT', nargs='?', help='path to output file', type=str) #' --l LENGTH_SF length scale factor\n' #' --m MASS_SF mass scale factor\n' #' --f FORCE_SF force scale factor\n' #' --p PRESSURE_SF pressure scale factor\n' #' --t TIME_SF time scale factor\n' #' --v VEL_SF velocity scale factor\n' parent_parser.add_argument('-l', '--length', help='length scale factor') parent_parser.add_argument('-m', '--mass', help='mass scale factor') parent_parser.add_argument('-f', '--force', help='force scale factor') parent_parser.add_argument('-p', '--pressure', help='pressure scale factor') parent_parser.add_argument('-t', '--time', help='time scale factor') parent_parser.add_argument('-V', '--velocity', help='velocity scale factor') #parent_parser.add_argument('--user_geom', type=str, help='log msg') #parent_parser.add_argument('-q', '--quiet', help='prints debug messages (default=True)', action='store_true') #parent_parser.add_argument('-h', '--help', help='show this help message and exits', action='store_true') parent_parser.add_argument('-v', '--version', action='version', version=pyNastran.__version__) args = parent_parser.parse_args(args=argv[1:]) if not quiet: # pragma: no cover print(args) scales = [] terms = [] bdf_filename = args.INPUT bdf_filename_out = args.OUTPUT if bdf_filename_out is None: bdf_filename_base, ext = os.path.splitext(bdf_filename) bdf_filename_out = '%s.scaled%s' % (bdf_filename_base, ext) #assert bdf_filename_out is not None if args.mass: scale = float(args.mass) scales.append(scale) terms.append('M') if args.length: scale = float(args.length) scales.append(scale) terms.append('L') if args.time: scale = float(args.time) scales.append(scale) terms.append('T') if args.force: scale = float(args.force) scales.append(scale) terms.append('F') if args.pressure: scale = float(args.pressure) scales.append(scale) terms.append('P') if args.velocity: scale = float(args.velocity) scales.append(scale) terms.append('V') from pyNastran.bdf.mesh_utils.convert import scale_by_terms level = 'debug' if not quiet else 'warning' log = SimpleLogger(level=level, encoding='utf-8', log_func=None) scale_by_terms(bdf_filename, terms, scales, bdf_filename_out=bdf_filename_out, log=log)