예제 #1
0
    def __init__(self, backend_str=None, *args):
        used_backend = load_backend(backend_str)
        log.info("GUI backend set to: %s", used_backend)
        from OCC.Display.qtDisplay import qtViewer3d, qtBaseViewer

        # following couple of lines is a tweak to enable ipython --gui='qt'
        # checks if QApplication already exists
        self.app = QtWidgets.QApplication.instance()
        if not self.app:  # create QApplication if it doesnt exist
            self.app = QtWidgets.QApplication(sys.argv)

        QtWidgets.QMainWindow.__init__(self, *args)
        self.canvas = qtViewer3d(self)
        self.setWindowTitle("pythonOCC-%s 3d viewer ('%s' backend)" %
                            (VERSION, used_backend))
        self.setCentralWidget(self.canvas)
        if sys.platform != 'darwin':
            self.menu_bar = self.menuBar()
        else:
            # create a parentless menubar
            # see: http://stackoverflow.com/questions/11375176/qmenubar-and-qmenu-doesnt-show-in-mac-os-x?lq=1
            # noticeable is that the menu ( alas ) is created in the
            # top-left of the screen, just next to the apple icon
            # still does ugly things like showing the "Python" menu in bold
            self.menu_bar = QtWidgets.QMenuBar()
        self._menus = {}
        self._menu_methods = {}
        # place the window in the center of the screen, at half the
        # screen size
        self.centerOnScreen()

        # show time
        self.timer = QtCore.QTimer(self)
        self.timer.timeout.connect(self.time_draw)
        self.timer.start(500)  # msec
예제 #2
0
    def __init__(self, app, parent=None):

        super(Application, self).__init__(parent)

        self.ui = Ui_poccad()
        self.ui.setupUi(self)

        self.canvas = qtDisplay.qtViewer3d(self)
        self.ui.OCClayout.addWidget(self.canvas)
        self.canvas.resize(829, 739)
        self.canvas.InitDriver()
        self.display = self.canvas._display

        #ASSOCIATE Functions to display
        self.ui.render_button.clicked.connect(self.render_file)
        self.ui.isoview_button.clicked.connect(lambda: self.setview('Iso'))
        self.ui.topview_button.clicked.connect(lambda: self.setview('Top'))
        self.ui.leftview_button.clicked.connect(lambda: self.setview('Left'))
        self.ui.frontview_button.clicked.connect(lambda: self.setview('Front'))
        self.ui.rightview_button.clicked.connect(lambda: self.setview('Right'))
        self.ui.bottomview_button.clicked.connect(
            lambda: self.setview('Bottom'))
        self.ui.rearview_button.clicked.connect(lambda: self.setview('Rear'))

        self.ui.actionNew.triggered.connect(self.new_file)
        self.ui.actionOpen.triggered.connect(self.open_file)
        self.ui.actionSave.triggered.connect(self.save_file)
        self.ui.actionSave_as.triggered.connect(self.save_file_as)
        self.ui.actionExport.triggered.connect(self.export_file)
        self.ui.actionQuit.triggered.connect(self.quit)
        self.ui.actionAbout.triggered.connect(self.dialog_about)
        self.ui.actionUser_Guide.triggered.connect(self.user_guide_html)

        self.ui.actionBox.triggered.connect(self.makebox)
        self.ui.actionCylinder.triggered.connect(self.makecylinder)
        self.ui.actionSphere.triggered.connect(self.makesphere)
        self.ui.actionPoint.triggered.connect(self.drawpoint)
        self.ui.actionAxis.triggered.connect(self.drawaxis)
        self.ui.actionCut.triggered.connect(self.boolcut)
        self.ui.actionTranslate.triggered.connect(self.translate)
        self.ui.actionExportstep.triggered.connect(self.exportstep)

        self.changeviewval = 0
        self.render = False

        self.initialize()
        self.ui.OCCedit.textChanged.connect(self.changetext)

        self.ui.treeWidget.customContextMenuRequested.connect(
            self.on_contextmenu_tree)
        self.popTreeMenu = QtWidgets.QMenu(self)
        self.popTreeMenu.addAction("double click to display in 'Consult' Tab")

        self.cwd = os.getcwd()
        self.load_project_structure(self.cwd, self.ui.treeWidget)
        self.ui.treeWidget.itemDoubleClicked.connect(self.show_consult)
        self.ui.treelayers.itemDoubleClicked.connect(self.change_layer_state)

        self.lauching()
예제 #3
0
 def __init__(self, *args):
     QtWidgets.QMainWindow.__init__(self, *args)
     self.canva = qtViewer3d(self)
     self.setWindowTitle("pythonOCC-%s 3d viewer ('%s' backend)" %
                         (VERSION, used_backend))
     self.resize(size[0], size[1])
     self.setCentralWidget(self.canva)
     if sys.platform != 'darwin':
         self.menu_bar = self.menuBar()
     else:
         self.menu_bar = QtWidgets.QMenuBar()
     self._menus = {}
     self._menu_methods = {}
     self.centerOnScreen()
예제 #4
0
    def __init__(self, parent=None):

        super(OCCViewer, self).__init__(parent)
        ComponentMixin.__init__(self)

        self.canvas = qtViewer3d()
        self.canvas.sig_topods_selected.connect(self.handle_selection)

        self.create_actions(self)

        self.layout_ = layout(self, [
            self.canvas,
        ], top_widget=self, margin=0)

        self.updatePreferences()
    def __init__(self):
        super(InteractOCC, self).__init__()
        self.canvas = qtViewer3d()
        self.setCentralWidget(self.canvas)

        # add Ipython console as dockwidget
        consoleDock = QtGui.QDockWidget("console", self)
        consoleDock.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea |
                                    QtCore.Qt.RightDockWidgetArea)
        self.console = QIPythonWidget(customBanner="Welcome to play python-occ!\n",)
        consoleDock.setWidget(self.console)
        self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, consoleDock)

        # push occ display into variable of Ipython console
        self.console.pushVariables({"canvas": self.canvas})
예제 #6
0
    def __init__(self, Topology=None, *args):
        super(Airconics_Viewgrid, self).__init__()

        # Create a blank topology object if one has not been provided
        if Topology:
            self._Topology = Topology
        else:
            self._Topology = Topology()

        # Matplotlib colour character (different for each instance)
        self.color = next(self.colors)


        grid = QtGui.QGridLayout(self)
        self.setLayout(grid)
        viewer = qtViewer3d(*args)

        viewer.setMinimumSize(200, 200)

        self.viewer = viewer

        grid.setSpacing(10)
        grid.setMargin(10)

        # Add the viewer spanning 3/4 of the width of the widget
        grid.addWidget(viewer, 0, 0, 1, 1)

        self.InitDataCanvas()

        # Add the canvas to a new VBox layout with a title
        data_group = QtGui.QGroupBox("Estimated Performance Metrics")
        data_box = QtGui.QVBoxLayout(data_group)

        data_box.addWidget(self._data_canvas)

        data_group.setLayout(data_box)

        grid.addWidget(data_group, 0, 1)


        self.select_button = QtGui.QPushButton('Select', self)

        grid.addWidget(self.select_button, 1, 0, 1, 2)


        self.select_clicked.connect(self.Evolve)

        self._Topology.Display(self.viewer._display)
예제 #7
0
    def __init__(self, parent=None):

        super(OCCViewer, self).__init__(parent)
        ComponentMixin.__init__(self)

        self.canvas = qtViewer3d(self)
        self.create_actions(self)

        self.layout_ = layout(self, [
            self.canvas,
        ], top_widget=self, margin=0)

        self.canvas.InitDriver()
        self.show_edges()

        self.updatePreferences()
예제 #8
0
    def createHorizontalLayout(self):
        self.horizontalGroupBox = QGroupBox("Display PythonOCC")
        layout = QHBoxLayout()

        disp = QPushButton('Display Box', self)
        disp.clicked.connect(self.displayBOX)
        layout.addWidget(disp)

        eras = QPushButton('Erase Box', self)
        eras.clicked.connect(self.eraseBOX)
        layout.addWidget(eras)

        self.canvas = qtDisplay.qtViewer3d(self)
        layout.addWidget(self.canvas)
        self.canvas.resize(200, 200)
        self.canvas.InitDriver()
        self.display = self.canvas._display
        self.horizontalGroupBox.setLayout(layout)
예제 #9
0
 def __init__(self, *args):
     QtGui.QMainWindow.__init__(self, *args)
     self.canva = qtViewer3d(self)
     self.setWindowTitle("Siconos mechanisms visualization based on  pythonOCC-%s 3d viewer ('%s' backend)" % (VERSION, USED_BACKEND))
     self.resize(size[0], size[1])
     self.setCentralWidget(self.canva)
     if not sys.platform == 'darwin':
         self.menu_bar = self.menuBar()
     else:
         # create a parentless menubar
         # see: http://stackoverflow.com/questions/11375176/qmenubar-and-qmenu-doesnt-show-in-mac-os-x?lq=1
         # noticeable is that the menu ( alas ) is created in the topleft of the screen, just
         # next to the apple icon
         # still does ugly things like showing the "Python" menu in bold
         self.menu_bar = QtGui.QMenuBar()
     self._menus = {}
     self._menu_methods = {}
     # place the window in the center of the screen, at half the screen size
     self.centerOnScreen()
예제 #10
0
 def __init__(self, *args):
     QtGui.QMainWindow.__init__(self, *args)
     self.canva = qtViewer3d(self)
     self.setWindowTitle("pythonOCC-%s 3d viewer ('%s' backend)" % (VERSION, USED_BACKEND))
     self.resize(size[0], size[1])
     self.setCentralWidget(self.canva)
     if not sys.platform == 'darwin':
         self.menu_bar = self.menuBar()
     else:
         # create a parentless menubar
         # see: http://stackoverflow.com/questions/11375176/qmenubar-and-qmenu-doesnt-show-in-mac-os-x?lq=1
         # noticeable is that the menu ( alas ) is created in the topleft of the screen, just
         # next to the apple icon
         # still does ugly things like showing the "Python" menu in bold
         self.menu_bar = QtGui.QMenuBar()
     self._menus = {}
     self._menu_methods = {}
     # place the window in the center of the screen, at half the screen size
     self.centerOnScreen()
예제 #11
0
    def __init__(self, parent=None):
        super(Main, self).__init__()
        self.setupUi(self)

        # self.display, self.start_display, self.add_menu, self.add_function_to_menu = init_display()
        # self.canvas = FigureCanvas(self.figure)
        QtCore, QtGui, QtWidgets, QtOpenGL = get_qt_modules()
        self.canvas = qtViewer3d(self)
        # self.canvas.sig_topods_selected.connect(self.handle_selection)
        self.display = self.canvas._display
        self.scrollArea.setWidget(self.canvas)
        # self.mess.setText('Выберите файл')
        # self.Bar_1.setValue(0)

        self.Open_frame.clicked.connect(self.open_frame)
        self.Random_composition.clicked.connect(self.random_composition)
        self.Save_result.clicked.connect(self.save_result)
        self.Show_frame.clicked.connect(self.show_frame)
        self.Add_file.clicked.connect(self.add_file)
        self.Start_optimization.clicked.connect(self.start_optimization)
        self.Remove_all.clicked.connect(self.remove_all)
        self.Remove_selected.clicked.connect(self.remove_selected)
        self.tableWidget.itemClicked.connect(self.tablewidgetclicked)
        self.Select_faces.clicked.connect(self.select_faces)
        self.Remove_all_faces.clicked.connect(self.remove_all_faces)
        self.Add_folder.clicked.connect(self.add_folder)
        # self.Random_composition.clicked.connect(self.random_composition)

        # self.canvas.mpl_connect('button_press_event',self.onClick)
        self.frame = None
        self.modules = {}
        self.path_modules = {}
        self.limits = []
        self.faces_name = []
        self.faces = []
        self.faces_shape = []
        self.constructor = construction.Balance_mass()

        #############################################################
        self.limits = {'DAV_WS16.STEP': [[1, 2], [0, 45, 60, 90]],
                       'DAV2_WS16.STEP': [[1, 2, 3, 0], [30, 90, 180]],
                       'DAV3_WS16.STEP': [[0, 3], [0, 180]],
                       'Magnitometr.STEP': [[2], [30, 45, 90, 135]]}
예제 #12
0
파일: BaseGui.py 프로젝트: qunat/AutoImage
    def __init__(self, parent=None):
        super(Mywindown, self).__init__(parent)
        self.setupUi(self)
        #3D显示设置
        self.canva = qtViewer3d(self.tab)  #链接3D模块
        self.setWindowTitle("【批量导出stp缩略图程序】")
        #self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)
        self.setFixedSize(self.width(), self.height())
        self.canva.setGeometry(QtCore.QRect(0, 0, 420, 530))
        self.canva.focusInEvent(self.event)
        self.centerOnScreen()

        #单个产品 信号和槽
        self.pushButton_2.clicked.connect(self.Quit)  #退出
        self.pushButton_3.clicked.connect(self.Chose_Document)  #选择文件夹
        self.pushButton_4.clicked.connect(self.Bulk_stptoimag)  # 批量导出图片

        #Qss定义
        self.pushButton_2.setStyleSheet(butstyle)
        self.pushButton_3.setStyleSheet(butstyle)
        self.pushButton_4.setStyleSheet(butstyle)
        self.pushButton_5.setStyleSheet(butstyle)
예제 #13
0
 def __init__(self, *args):
     QtGui.QMainWindow.__init__(self, *args)
     # setup prefered interface
     self.treeArea = QtGui.QTreeWidget()
     self.textArea = QtGui.QTextEdit()
     self.viewArea = QtGui.QTabWidget()
     self.msgArea = QtGui.QTextBrowser()
     # Add tabs
     from OCC.Display import qtDisplay
     self.modelTab = qtDisplay.qtViewer3d(self)
     self.reportTab = QtGui.QTextBrowser()
     self.viewArea.addTab(self.modelTab, "Model")
     self.viewArea.addTab(self.reportTab, "Report")
     # Window area splitters
     self.vSplitter = QtGui.QSplitter(QtCore.Qt.Vertical)
     self.vSplitter.addWidget(self.viewArea)
     self.vSplitter.addWidget(self.msgArea)
     self.hSplitter = QtGui.QSplitter(QtCore.Qt.Horizontal)
     self.hSplitter.addWidget(self.treeArea)
     self.hSplitter.addWidget(self.textArea)
     self.hSplitter.addWidget(self.vSplitter)
     # Assign mainwindow
     self.setCentralWidget(self.hSplitter)
예제 #14
0
파일: mainwindow.py 프로젝트: hmeyer/qtmium
 def __init__(self, parent = None):
     """
     Constructor
     """
     QMainWindow.__init__(self, parent)
     self.errorMarker  = None
     self.setupUi(self)
     self.create_recentFileActs()
     self.create_exampleActs()
     self.updateRecentFileActions()
     self.glWidget = qtViewer3d()
     self.splitterH.addWidget(self.glWidget)
     self.statuslabel = QLabel("")
     self.statusbar.addWidget(self.statuslabel)        
     self.filename = None
     self.changed = False
     self.object = None
     self.sourceEdit.setLexer(Qsci.QsciLexerPython())
     self.sourceEdit.setAutoIndent(True)
     self.sourceEdit.setBraceMatching(Qsci.QsciScintilla.SloppyBraceMatch)
     self.sourceEdit.setIndentationGuides(True)
     self.markerNumber = self.sourceEdit.markerDefine( Qsci.QsciScintilla.Circle)
     self.sourceEdit.setMarkerBackgroundColor( Qt.red,  self.markerNumber )
            def __init__(self, *args):
                QtWidgets.QMainWindow.__init__(self, *args)
                layout = QHBoxLayout()  # 水平布局
                self.canva = qtViewer3d(self)
                self.setWindowTitle("丝杆选型软件")
                self.setCentralWidget(self.canva)
                self.setCentralWidget(self.canva)
                self.resize(1024, 768)
                self.centerOnScreen()

                self.items = QDockWidget('功能区', self)
                self.listWidget = QListWidget()
                self.listWidget.addItem('2D')
                self.listWidget.addItem('3D')
                self.listWidget.addItem('实物')
                self.items.setWidget(self.listWidget)
                self.items.setFloating(False)
                self.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.items)

                self.setLayout(layout)
                if sys.platform != 'darwin':
                    self.menu_bar = self.menuBar()
                else:
                    # create a parentless menubar
                    # see: http://stackoverflow.com/questions/11375176/qmenubar-and-qmenu-doesnt-show-in-mac-os-x?lq=1
                    # noticeable is that the menu ( alas ) is created in the
                    # topleft of the screen, just
                    # next to the apple icon
                    # still does ugly things like showing the "Python" menu in
                    # bold
                    self.menu_bar = QtWidgets.QMenuBar()
                self._menus = {}
                self._menu_methods = {}
                # place the window in the center of the screen, at half the
                # screen size
                self.centerOnScreen()
예제 #16
0
    def __init__(self, *args):
        super().__init__()
        self.canvas = qtDisplay.qtViewer3d(self)
        # Renaming self.canvas._display (like below) doesn't work.
        # self.display = self.canvas._display
        self.setContextMenuPolicy(Qt.CustomContextMenu)
        self.customContextMenuRequested.connect(self.contextMenu)
        self.popMenu = QMenu(self)
        title = f"KodaCAD {APP_VERSION} "
        title += f"(Using: PythonOCC version {VERSION} with PyQt5 backend)"
        self.setWindowTitle(title)
        self.resize(960, 720)
        self.setCentralWidget(self.canvas)
        self.createDockWidget()
        self.wcToolBar = QToolBar("2D")  # Construction toolbar
        self.addToolBar(Qt.RightToolBarArea, self.wcToolBar)
        self.wcToolBar.setMovable(True)
        self.wgToolBar = QToolBar("2D")  # Geom Profile toolbar
        self.addToolBar(Qt.RightToolBarArea, self.wgToolBar)
        self.wgToolBar.setMovable(True)
        self.menu_bar = self.menuBar()
        self._menus = {}
        self._menu_methods = {}
        self.centerOnScreen()

        self.calculator = None

        self.assy_root, self.wp_root = self.create_root_items()
        self.itemClicked = None  # TreeView item that has been mouse clicked

        # Internally, everything is always in mm
        # scale user input and output values
        # (user input values) * unitscale = value in mm
        # (output values) / unitscale = value in user's units
        self._unitDict = {"mm": 1.0, "in": 25.4, "ft": 304.8}
        self.units = "mm"
        self.unitscale = self._unitDict[self.units]
        self.unitsLabel = QLabel()
        self.unitsLabel.setText("Units: %s " % self.units)
        self.unitsLabel.setFrameStyle(QFrame.StyledPanel | QFrame.Sunken)

        self.endOpButton = QToolButton()
        self.endOpButton.setText("End Operation")
        self.endOpButton.clicked.connect(self.clearCallback)
        self.currOpLabel = QLabel()
        self.registeredCallback = None
        self.currOpLabel.setText("Current Operation: %s " %
                                 self.registeredCallback)

        self.lineEdit = QLineEdit()
        self.lineEdit.returnPressed.connect(self.appendToStack)

        status = self.statusBar()
        status.setSizeGripEnabled(False)
        status.addPermanentWidget(self.lineEdit)
        status.addPermanentWidget(self.currOpLabel)
        status.addPermanentWidget(self.endOpButton)
        status.addPermanentWidget(self.unitsLabel)
        status.showMessage("Ready", 5000)

        self.hide_list = []  # list of part uid's to be hidden (not displayed)
        self.floatStack = []  # storage stack for floating point values
        self.xyPtStack = []  # storage stack for 2d points (x, y)
        self.ptStack = []  # storage stack for gp_Pnts
        self.edgeStack = []  # storage stack for edge picks
        self.faceStack = []  # storage stack for face picks
        self.shapeStack = []  # storage stack for shape picks
        self.lineEditStack = []  # list of user inputs

        self.activePart = None  # <TopoDS_Shape> object
        self.activePartUID = 0
        self.transparency_dict = {}  # {uid: part display transparency}
        self.ancestor_dict = defaultdict(
            list)  # {uid: [list of ancestor shapes]}
        self.ais_shape_dict = {}  # {uid: <AIS_Shape> object}

        self.activeWp = None  # WorkPlane object
        self.activeWpUID = 0
        self.wp_dict = {}  # k = uid, v = wpObject
        self._wpNmbr = 1

        self.activeAsyUID = 0
        self.assy_list = []  # list of assy uid's
        self.showItemActive(0)
        self.setActiveAsy(self.activeAsyUID)
예제 #17
0
 def addViewerTab(self, name):
     from OCC.Display import qtDisplay
     self.viewerTabs[name] = qtDisplay.qtViewer3d(self)
     self.tabWidget.addTab(self.viewerTabs[name], name)
     self.viewerTabs[name].InitDriver()