Esempio n. 1
0
    def _run_macro(self, *args):
        config = self.config
        filename = getopenfilename(
            'Open %s File' % 'Open %s File' % config.macro_extension().upper(),
            config.directory(), r'%s Macro File (*.%s)' %
            (config.application_name(), config.macro_extension()))

        if filename in ('', None):
            return

        with open(filename, 'r') as f:
            data = f.read().split('\n')

        for data_ in data:
            if data_[0] == '#':
                continue

            data_ = data_[22:]

            if data_.startswith('Error') or data_.startswith('Info'):
                continue

            try:
                index = data_.index('(')
            except IndexError:
                continue

            command = data_[:index]
            command_data = literal_eval(data_[index:])

            print(command, command_data)

            self.dispatch((command, command_data))
Esempio n. 2
0
    def _open(self, filename=None):
        if filename is None or filename == '' or filename is False:
            config = self.config
            filename = getopenfilename(
                'Open %s File' % config.application_name(), config.directory(),
                r'%s File (*.%s)' %
                (config.application_name(), config.file_extension()))

        if filename in ('', None):
            return

        self.dispatch(('File.read', (filename, )))
Esempio n. 3
0
    def _open(self, *args):
        filename = getopenfilename(
            caption='Choose Data File',
            directory='',
            filter_=r'.txt (*.txt); .csv (*.csv)'
        )

        if filename in ('', None):
            return

        Action = Actions.ImportAction

        action_data = Action.ActionDataCls(filename)
        action = Action(self.main_data, action_data, self.config)

        command = Commands.ImportCommand(self, action)

        self.config.dispatch((action, action_data, command))
Esempio n. 4
0
    def import_model_new(self, filename=None):

        plugins = Plugins.instance()

        # FIXME: needs to be done by an action

        if filename is None or filename == '' or filename is False:
            filename = getopenfilename(caption='Import Punch Binary File',
                                       directory=config.directory(),
                                       filter_=r'.pbf File (*.pbf)')

        if filename in ('', None):
            return

        from fem.model import Model
        main_data = Model.instance()
        """:type: fem.model.MainData"""

        main_data.collector.set_filename(filename)

        plugins.load_collector(main_data.collector)

        bdf_data = main_data.collector.readers[0].header_data.get_bdf_data()

        from mrNastran import BdfData

        # bdf_data = BdfData()
        # with open(filename, 'rb') as f:
        #     buffer_ = f.read()
        #     bdf_data.read_from_buffer(buffer_, len(buffer_))

        ugrid = BdfData.to_vtk(bdf_data)

        # ugrid = bdf_data.to_vtk()

        # from fem.gui.vtk_widget.vtk_graphics import VTKGraphics
        vtk_graphics = self.main_window.vtk_widget.vtk_graphics
        vtk_graphics.set_ugrid(ugrid)
        vtk_graphics.set_bdf_data(bdf_data)

        from fem.model._model import Model
        main_data = Model.instance()

        main_data.set_model_name(filename)
Esempio n. 5
0
    def import_model(self, filename=None):
        # FIXME: needs to be done by an action

        if filename is None or filename == '' or filename is False:
            filename = getopenfilename(caption='Import BDF Model',
                                       directory=config.directory(),
                                       filter_=r'BDF File (*.bdf)')

        if filename in ('', None):
            return

        model = self.main_window.get_model()

        model.import_bdf(filename)

        h5n = model.h5n
        ugrid = model.ugrid

        # from fem.gui.vtk_widget.vtk_graphics import VTKGraphics
        vtk_graphics = self.main_window.vtk_widget.vtk_graphics
        vtk_graphics.set_ugrid(ugrid)
        vtk_graphics.set_bdf_data(None)

        model.set_model_name(filename)