def __init__(self): """ Class constructor >>> 1 + 1 2 >>> """ super(DySMainWindow, self).__init__() # self.setAttribute(QtCore.Qt.WA_TranslucentBackground, 90) # minimum size self.setMinimumSize(500, 500) # computer information self._hostname = socket.gethostname() print "self._hostname =", self._hostname # style # self.setStyle("windows") # plastique # cde # motif # sgi # windows # cleanlooks # mac # icon self.setWindowIcon(QtGui.QIcon(":/application.png")) QtGui.QSystemTrayIcon(QtGui.QIcon(":/application.png")) # location of window on self.screen_geometry self.window_offset_x = 250 self.window_offset_y = 50 # language settings self.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates)) # window name self.setWindowTitle("DyS") # font self.font = QtGui.QFont("Consolas", 10) # mouse tracking self.setMouseTracking(True) # context menu self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) # main window flags self.flags = QtCore.Qt.Window __main_dir = current_working_directory self._working_directory = QtCore.QString(os.path.abspath(__main_dir).replace("/", "\\")) # get screen geometry size self.screen_geometry = QtGui.QDesktopWidget().screenGeometry() # move # self.move(self.window_offset_x, self.window_offset_y) dy = .05*self.screen_geometry.height() # size of application # position main widget on self.screen_geometry self.setGeometry(.25*self.screen_geometry.width(), dy, .5*self.screen_geometry.width(), .5*self.screen_geometry.width()) # MBD system MBD_folder_name_ = None self.MBD_file_abs_path = None # self.MBD_filename = "0_0_0_double_pendulum.dprj" # MBD_folder_name_ = "dynamic_systems\\0_0_0_double_pendulum" # self.MBD_filename = "dys_0_.dprj" # MBD_folder_name_ = "dynamic_systems\\0_" # self.MBD_filename = "dys_0_2_1.dprj" # MBD_folder_name_ = "dynamic_systems\\0_2_1" # self.MBD_filename = "dys_0_3_prismatic_joint.dprj" # MBD_folder_name_ = "dynamic_systems\\0_3_prismatic_joint" # self.MBD_filename = "dys_0_4.dprj" # MBD_folder_name_ = "dynamic_systems\\0_4" # self.MBD_filename = "dys_0_5.dprj" # MBD_folder_name_ = "dynamic_systems\\0_5" # self.MBD_filename = "dys_0_6_1.dprj" # MBD_folder_name_ = "dynamic_systems\\0_6_1" # self.MBD_filename = "dys_0_6_2.dprj" # MBD_folder_name_ = "dynamic_systems\\0_6_2" # self.MBD_filename = "dys_0_7_0_1.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_0_1" # self.MBD_filename = "dys_0_7_0_2.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_0_2" # self.MBD_filename = "0_7_3_3_kinematic_analysis_1arm.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_3_kinematic_analysis_1arm" # self.MBD_filename = "0_7_3_3_kinematic_analysis_2arm.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_3_kinematic_analysis_2arm" # self.MBD_filename = "0_7_3_3_kinematic_analysis_slider_crank.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_3_kinematic_analysis_slider_crank" # self.MBD_filename = "0_7_3_3_kinematic_analysis_4bar.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_3_kinematic_analysis_4bar" # self.MBD_filename = "0_7_3_3_kinematic_analysis_efi.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_3_kinematic_analysis_efi" # self.MBD_filename = "0_7_3_3_dynamic_analysis_efi.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_3_dynamic_analysis_efi" # self.MBD_filename = "0_7_3_3_dynamic_analysis_efi_V2.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_3_dynamic_analysis_efi_V2" # self.MBD_filename = "dys_0_7_3_0.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_0" # self.MBD_filename = "0_7_3_0_plane_sphere.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_0_plane_sphere" # self.MBD_filename = "dys_0_7_2_revolute_clearence_joint.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_2_revolute_clearence_joint" # self.MBD_filename = "0_7_2_revolute_clearance_joint_1.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_2_revolute_clearance_joint_1" # self.MBD_filename = "0_7_3_0_contact_models.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_0_contact_models" self.MBD_filename = "0_7_3_0_contact_models_cylinder.dprj" MBD_folder_name_ = "dynamic_systems\\0_7_3_0_contact_models_cylinder" # self.MBD_filename = "0_7_3_2_pin_slot_clearance_joint.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_2_pin_slot_clearance_joint" # self.MBD_filename = "0_7_3_2_pin_slot_clearance_joint_2.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_2_pin_slot_clearance_joint_2" # self.MBD_filename = "0_7_3_2_pin_slot_clearance_joint_paper.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_2_pin_slot_clearance_joint_paper" # self.MBD_filename = "0_7_3_2_pin_slot_clearance_joint_paper_1.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_2_pin_slot_clearance_joint_paper_1" # self.MBD_filename = "0_7_3_2_pin_slot_clearance_joint_paper_2.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_2_pin_slot_clearance_joint_paper_2" # self.MBD_filename = "0_7_1_0_spring_translational.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_1_0_spring_translational" # self.MBD_filename = "0_8_0_surface_roughness.dprj" # MBD_folder_name_ = "dynamic_systems\\0_8_0_surface_roughness" # self.MBD_filename = "0_9_0_brush_slip-ring.dprj" # MBD_folder_name_ = "dynamic_systems\\0_9_0_brush_slip-ring" # self.MBD_filename = "0_9_1_brush_slip-ring.dprj" # MBD_folder_name_ = "dynamic_systems\\0_9_1_brush_slip-ring" # self.MBD_filename = "0_9_2_multiple_contacts.dprj" # MBD_folder_name_ = "dynamic_systems\\0_9_2_multiple_contacts" # self.MBD_filename = "0_9_3_brush_slip-ring.dprj" # MBD_folder_name_ = "dynamic_systems\\0_9_3_brush_slip-ring" # self.MBD_filename = "0_9_4_brush_slip-ring.dprj" # MBD_folder_name_ = "dynamic_systems\\0_9_4_brush_slip-ring" # self.MBD_filename = "0_9_5_brush_energy.dprj" # MBD_folder_name_ = "dynamic_systems\\0_9_5_brush_energy" # self.MBD_filename = "0_9_6_brush_slip-ring.dprj" # MBD_folder_name_ = "dynamic_systems\\0_9_6_brush_slip-ring" # self.MBD_filename = "1_0_0_ancf-beam.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-beam" # self.MBD_filename = "1_0_0_ancf-cantilever_1element.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-cantilever_1element" # self.MBD_filename = "1_0_0_ancf-cantilever_2elements.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-cantilever_2elements" # self.MBD_filename = "1_0_0_ancf-cantilever_2elements.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-cantilever_2elements" # # self.MBD_filename = "1_0_0_ancf-cantilever_4elements.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-cantilever_4elements" # # self.MBD_filename = "1_0_0_ancf-cantilever_8elements.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-cantilever_8elements" # # self.MBD_filename = "1_0_0_ancf-cantilever_16elements.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-cantilever_16elements" # # self.MBD_filename = "1_0_0_ancf-cantilever_32elements.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-cantilever_32elements" # self.MBD_filename = "1_0_0_ancf-free_falling_flexible_pendulum.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-free_falling_flexible_pendulum" # self.MBD_filename = "1_0_0_ancf-cantilever_M.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-cantilever_M" # self.MBD_filename = "1_0_0_ancf-beam_contact.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_0_ancf-beam_contact" # self.MBD_filename = "1_0_1_ancf_frame.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_ancf_frame" # self.MBD_filename = "1_0_1_geometry_test.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_geometry_test" # self.MBD_filename = "1_0_1_external_force.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_external_force" # self.MBD_filename = "1_0_1_paper_2_eigenfrequencies.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_eigenfrequencies" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_point_mass.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_point_mass" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_2.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_2" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_sub.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_sub" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_2.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_2" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_2_y_spring=-1mm.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_2_y_spring=-1mm" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_2_y_spring=+1mm.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_2_y_spring=+1mm" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_2_prestress_2x.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_2_prestress_2x" #self.MBD_filename = "1_0_1_paper_2_dynamic_system_2_prestress_params_2x.dprj" #MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_2_prestress_params_2x" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_2_prestress_0.5x.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_2_prestress_0.5x" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_rigid.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_rigid" # self.MBD_filename = "1_0_1_paper_2_dynamic_system_rigid_2.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_dynamic_system_rigid_2" # self.MBD_filename = "0_7_3_2_pin_slot_clearance_joint_testing.dprj" # MBD_folder_name_ = "dynamic_systems\\0_7_3_2_pin_slot_clearance_joint_testing" # self.MBD_filename = "1_0_1_paper_2_rigid_joint_rigid_flexible.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_rigid_joint_rigid_flexible" # self.MBD_filename = "1_0_1_paper_2_revolute_joint_flexible_flexible.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_revolute_joint_flexible_flexible" # self.MBD_filename = "1_0_1_paper_2_revolute_joint_rigid_flexible.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_revolute_joint_rigid_flexible" # self.MBD_filename = "1_0_1_paper_2_rigid_joint_point_mass_flexible.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_rigid_joint_point_mass_flexible" # self.MBD_filename = "1_0_1_paper_2_rigid_joint_point_mass_flexible_offset.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_rigid_joint_point_mass_flexible_offset" # self.MBD_filename = "1_0_1_paper_2_rigid_joint_rigid_flexible.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_rigid_joint_rigid_flexible" # self.MBD_filename = "1_0_1_paper_2_rigid_joint_rigid_flexible_2.dprj" # MBD_folder_name_ = "dynamic_systems\\1_0_1_paper_2_rigid_joint_rigid_flexible_2" # predefine attributes self.simulation_control_widget = None self._visualization_widget = "vtk" # file is not defined if MBD_folder_name_ is None: self.MBD_folder_abs_path = os.getcwd() self.MBD_filename = project_filename = "Model_1" print "File is not defined" # file is defined else: self._working_directory = os.path.join(os.getcwd(), "..") self.MBD_file_abs_path = os.path.abspath(os.path.join(self._working_directory, MBD_folder_name_, self.MBD_filename)) self.MBD_folder_abs_path = os.path.join(self._working_directory, MBD_folder_name_) project_filename = os.path.basename(self.MBD_folder_abs_path) self._file_types = "Dynamic System Project File (*.dprj);;Multibody System File (*.mbd)" self.project = MBD_system_items.MBDsystemItem("MBDProject", parent=None) self.project.dys = self # print "self.MBD_folder_abs_path =", self.MBD_folder_abs_path self.MBD_system = MBDsystem(MBD_file_abs_path=self.MBD_file_abs_path, MBD_folder_abs_path=self.MBD_folder_abs_path, MBD_filename=project_filename, dys=self, parent=self.project) # tree view widget self.tree_view_widget = TreeViewWidget(self.project, self.MBD_system, parent=self) self.tree_view_widget.setWindowFlags(self.flags) # self.tree_view_widget.show() # move self.tree_view_widget.move(.18*self.screen_geometry.width() - self.tree_view_widget.frameGeometry().width(), dy)#self.frameGeometry().width(), self.frameGeometry().height()) self.tree_view_widget.resize(.20*self.screen_geometry.width(), 0.8 * self.screen_geometry.height()) # simulation control widget self.simulation_control_widget = SimulationControlWidget(MBD_system=self.MBD_system, parent=self) self.simulation_control_widget.setWindowFlags(self.flags) # self.simulation_control_widget.show() # move self.simulation_control_widget.move(.25*self.screen_geometry.width() + self.geometry().width(), dy) # preferences widget self.preferences_widget = PreferencesWidget(self.simulation_control_widget, parent=None) # graph widget - test for measure in self.MBD_system.measures: measure.graph_widget.setWindowFlags(self.flags) measure.graph_widget.show() # set central widget self.setCentralWidget(self.simulation_control_widget.vtkWidget) # self.simulation_control_widget.vtkWidget.displayText() # print "2 =", self.simulation_control_widget.vtkWidget.vtkWidget.GetSize() # if self.simulation_control_widget.opengl_widget is not None: # self.setCentralWidget(self.simulation_control_widget.opengl_widget) # init graph widget - test # graph_widget = GraphWidget(parent=self) # graph_widget.setWindowFlags(self.flags) # graph_widget.show() # output widget # maybe put in new thread? if output will be large # self.OutputWidget = OutputWidget(parent=self) # self.OutputWidget.setWindowFlags(self.flags) # self.OutputWidget.show() # job list widget self.JobListWidget = JobListWidget(job_list_=["job1", "job2", "job3"], parent=self) self.JobListWidget.setWindowFlags(self.flags) # python console self.python_console = None#PythonConsole() # resize # self.resize(self.simulation_control_widget.opengl_widget.initial_window_width, self.simulation_control_widget.opengl_widget.initial_window_height) # create actions self.create_actions() # create menus self.create_menus() # create status bar self.create_status_bar() # signals and connections self.connect_signals()