def test_split_cbars_by_pin_flag_1(self): """null pin flag test""" bdf_filename = os.path.abspath( os.path.join(pkg_path, '..', 'models', 'sol_101_elements', 'static_solid_shell_bar.bdf')) split_cbars_by_pin_flag(bdf_filename, pin_flags_filename='pin_flags.csv', bdf_filename_out='pin_flags.bdf', debug=False) os.remove('pin_flags.csv') os.remove('pin_flags.bdf')
def test_split_cbars_by_pin_flag_1(self): """null pin flag test""" bdf_filename = os.path.join(MODEL_PATH, 'sol_101_elements', 'static_solid_shell_bar.bdf') split_cbars_by_pin_flag(bdf_filename, pin_flags_filename='pin_flags.csv', bdf_filename_out='pin_flags.bdf', debug=False) os.remove('pin_flags.csv') os.remove('pin_flags.bdf') argv = ['bdf', 'split_cbars_by_pin_flags', bdf_filename, '-o', 'pin_flags.bdf', '-p', 'pin_flags.csv'] cmd_line(argv=argv, quiet=True) os.remove('pin_flags.csv') os.remove('pin_flags.bdf')
def cmd_line_split_cbars_by_pin_flag(argv=None, quiet=False): """command line interface to split_cbars_by_pin_flag""" if argv is None: argv = sys.argv from docopt import docopt import pyNastran msg = ( 'Usage:\n' ' bdf split_cbars_by_pin_flags IN_BDF_FILENAME [-o OUT_BDF_FILENAME] [-p PIN_FLAGS_CSV_FILENAME]\n' ' bdf split_cbars_by_pin_flags -h | --help\n' ' bdf split_cbars_by_pin_flags -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_BDF_FILENAME path to output BDF file\n" " -p PIN, --pin PIN_FLAGS_CSV_FILENAME path to pin_flags_csv file\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_in = data['IN_BDF_FILENAME'] bdf_filename_out = data['--output'] if bdf_filename_out is None: bdf_filename_out = 'model_new.bdf' pin_flags_filename = data['--pin'] if pin_flags_filename is None: pin_flags_filename = 'pin_flags.csv' split_cbars_by_pin_flag(bdf_filename_in, pin_flags_filename=pin_flags_filename, bdf_filename_out=bdf_filename_out)
def test_split_cbars_by_pin_flag_2(self): """real pin flag test""" lines = [ 'SOL 101\n', 'CEND\n', 'SUBCASE 10\n', ' LOAD = 10\n', ' SPC = 123456\n', ' DISP(PLOT) = ALL\n', ' STRESS(PLOT) = ALL\n', 'BEGIN BULK\n', 'ENDDATA', ] model = BDF(debug=False) with self.assertRaises(NotImplementedError): model.read_bdf(bdf_filename=lines, validate=True, xref=True, punch=False, read_includes=True, encoding=None) model.add_grid(1, [0., 0., 0.]) model.add_grid(2, [1., 0., 0.]) model.add_grid(3, [2., 0., 0.]) model.add_grid(4, [3., 0., 0.]) pid = 1000 mid = 1000 Type = 'BAR' dim = [1., 2.] model.add_pbarl(pid, mid, Type, dim) E = 3.0e7 G = 3.0e6 nu = None model.add_mat1(mid, E, G, nu) x = [0., 1., 0.] g0 = None model.add_cbar(1, pid, [1, 2], x, g0, offt='GGG', pa=0, pb=0, wa=None, wb=None, comment='reaction') model.add_cbar(2, pid, [2, 3], x, g0, offt='GGG', pa=0, pb=456, wa=None, wb=None, comment='End B') model.add_cbar(3, pid, [3, 4], x, g0, offt='GGG', pa=456, pb=0, wa=None, wb=None, comment='End A') sid = 10 node = 4 mag = 1. xyz = [1., 1., 0.] model.add_force(sid, node, mag, xyz) model.add_spc1(123456, '123456', 1) model.validate() bdf_file = StringIO() bdf_file.writelines(lines) bdf_file.seek(0) model.read_bdf(bdf_filename=bdf_file, validate=True, xref=False, punch=False, read_includes=True, encoding=None) #model.write_bdf('spike.bdf') split_cbars_by_pin_flag(model, pin_flags_filename='pin_flags.csv', bdf_filename_out='pin_flags.bdf', debug=False) os.remove('pin_flags.csv') os.remove('pin_flags.bdf')