コード例 #1
0
ファイル: PathOp.py プロジェクト: zqsgdnq/FreeCAD
    def addBase(self, obj, base, sub):
        PathLog.track(obj, base, sub)
        base = PathUtil.getPublicObject(base)

        if self._setBaseAndStock(obj):
            for model in self.job.Model.Group:
                if base == self.job.Proxy.baseObject(self.job, model):
                    base = model
                    break

            baselist = obj.Base
            if baselist is None:
                baselist = []

            for p, el in baselist:
                if p == base and sub in el:
                    PathLog.notice((translate(
                        "Path", "Base object %s.%s already in the list") +
                                    "\n") % (base.Label, sub))
                    return

            if not self.opRejectAddBase(obj, base, sub):
                baselist.append((base, sub))
                obj.Base = baselist
            else:
                PathLog.notice((translate(
                    "Path", "Base object %s.%s rejected by operation") + "\n")
                               % (base.Label, sub))
コード例 #2
0
ファイル: PathOp.py プロジェクト: peterl94/FreeCAD_sf_master
    def addBase(self, obj, base, sub):
        PathLog.track()
        base = PathUtil.getPublicObject(base)

        if self._setBaseAndStock(obj):
            if base == self.job.Proxy.baseObject(self.job):
                base = self.baseobject
            baselist = obj.Base
            if baselist is None:
                baselist = []
            item = (base, sub)
            if item in baselist:
                PathLog.notice(translate("Path", "this object already in the list" + "\n"))
            else:
                baselist.append(item)
                obj.Base = baselist
コード例 #3
0
    def addBase(self, obj, base, sub):
        PathLog.track(obj, base, sub)
        base = PathUtil.getPublicObject(base)

        if self._setBaseAndStock(obj):
            if base == self.job.Proxy.baseObject(self.job):
                base = self.baseobject
            baselist = obj.Base
            if baselist is None:
                baselist = []
            for p, el in baselist:
                if p == base and sub in el:
                    PathLog.notice((translate("Path", "Base object %s.%s already in the list")+"\n") % (base.Label, sub))
                    return

            baselist.append((base, sub))
            obj.Base = baselist
コード例 #4
0
ファイル: PathOp.py プロジェクト: lanigb/FreeCAD
    def addBase(self, obj, base, sub):
        PathLog.track(obj, base, sub)
        base = PathUtil.getPublicObject(base)

        if self._setBaseAndStock(obj):
            if base == self.job.Proxy.baseObject(self.job):
                base = self.baseobject
            baselist = obj.Base
            if baselist is None:
                baselist = []
            for p, el in baselist:
                if p == base and sub in el:
                    PathLog.notice((translate("Path", "Base object %s.%s already in the list")+"\n") % (base.Label, sub))
                    return

            baselist.append((base, sub))
            obj.Base = baselist
コード例 #5
0
    def addBase(self, obj, base, sub):
        PathLog.track()
        base = PathUtil.getPublicObject(base)

        if self._setBaseAndStock(obj):
            if base == self.job.Proxy.baseObject(self.job):
                base = self.baseobject
            baselist = obj.Base
            if baselist is None:
                baselist = []
            item = (base, sub)
            if item in baselist:
                PathLog.notice(
                    translate("Path",
                              "this object already in the list" + "\n"))
            else:
                baselist.append(item)
                obj.Base = baselist
コード例 #6
0
ファイル: PathOp.py プロジェクト: frankhardy/FreeCAD
    def addBase(self, obj, base, sub):
        PathLog.track(obj, base, sub)
        base = PathUtil.getPublicObject(base)

        if self._setBaseAndStock(obj):
            for model in self.job.Model.Group:
                if base == self.job.Proxy.baseObject(self.job, model):
                    base = model
                    break

            baselist = obj.Base
            if baselist is None:
                baselist = []

            for p, el in baselist:
                if p == base and sub in el:
                    PathLog.notice((translate("Path", "Base object %s.%s already in the list")+"\n") % (base.Label, sub))
                    return

            if not self.opRejectAddBase(obj, base, sub):
                baselist.append((base, sub))
                obj.Base = baselist
            else:
                PathLog.notice((translate("Path", "Base object %s.%s rejected by operation")+"\n") % (base.Label, sub))
コード例 #7
0
ファイル: PathJobDlg.py プロジェクト: mikeprice99/FreeCAD
    def setupModel(self, job=None):

        if job:
            preSelected = Counter([
                PathUtil.getPublicObject(job.Proxy.baseObject(job, obj)).Label
                for obj in job.Model.Group
            ])
            jobResources = job.Model.Group + [job.Stock]
        else:
            preSelected = Counter(
                [obj.Label for obj in FreeCADGui.Selection.getSelection()])
            jobResources = []

        self.candidates = sorted(PathJob.ObjectJob.baseCandidates(),
                                 key=lambda o: o.Label)

        # If there is only one possibility we might as well make sure it's selected
        if not preSelected and 1 == len(self.candidates):
            preSelected = Counter([self.candidates[0].Label])

        expandSolids = False
        expand2Ds = False
        expandJobs = False

        for base in self.candidates:
            if (not base in jobResources
                    and not PathJob.isResourceClone(job, base, None)
                    and not hasattr(base, "StockType")):
                item0 = QtGui.QStandardItem()
                item1 = QtGui.QStandardItem()

                item0.setData(base.Label, QtCore.Qt.EditRole)
                item0.setData(base, self.DataObject)
                item0.setCheckable(True)
                item0.setEditable(False)

                item1.setEnabled(True)
                item1.setEditable(True)

                if base.Label in preSelected:
                    itemSelected = True
                    item0.setCheckState(QtCore.Qt.CheckState.Checked)
                    item1.setData(preSelected[base.Label], QtCore.Qt.EditRole)
                else:
                    itemSelected = False
                    item0.setCheckState(QtCore.Qt.CheckState.Unchecked)
                    item1.setData(0, QtCore.Qt.EditRole)

                if PathUtil.isSolid(base):
                    self.itemsSolid.appendRow([item0, item1])
                    if itemSelected:
                        expandSolids = True
                else:
                    self.items2D.appendRow([item0, item1])
                    if itemSelected:
                        expand2Ds = True

        for j in sorted(PathJob.Instances(), key=lambda x: x.Label):
            if j != job:
                item0 = QtGui.QStandardItem()
                item1 = QtGui.QStandardItem()

                item0.setData(j.Label, QtCore.Qt.EditRole)
                item0.setData(j, self.DataObject)
                item0.setCheckable(True)
                item0.setEditable(False)

                item1.setEnabled(True)
                item1.setEditable(True)

                if j.Label in preSelected:
                    expandJobs = True
                    item0.setCheckState(QtCore.Qt.CheckState.Checked)
                    item1.setData(preSelected[j.Label], QtCore.Qt.EditRole)
                else:
                    item0.setCheckState(QtCore.Qt.CheckState.Unchecked)
                    item1.setData(0, QtCore.Qt.EditRole)

                self.itemsJob.appendRow([item0, item1])

        self.delegate = _ItemDelegate(self, self.dialog.modelTree)
        self.model = QtGui.QStandardItemModel(self.dialog)
        self.model.setHorizontalHeaderLabels(["Model", "Count"])

        if self.itemsSolid.hasChildren():
            self.model.appendRow(self.itemsSolid)
            if expandSolids or not (expand2Ds or expandJobs):
                expandSolids = True
        if self.items2D.hasChildren():
            self.model.appendRow(self.items2D)
        if self.itemsJob.hasChildren():
            self.model.appendRow(self.itemsJob)

        self.dialog.modelTree.setModel(self.model)
        self.dialog.modelTree.setItemDelegateForColumn(1, self.delegate)
        self.dialog.modelTree.expandAll()
        self.dialog.modelTree.resizeColumnToContents(0)
        self.dialog.modelTree.resizeColumnToContents(1)
        self.dialog.modelTree.collapseAll()

        if expandSolids:
            self.dialog.modelTree.setExpanded(self.itemsSolid.index(), True)
        if expand2Ds:
            self.dialog.modelTree.setExpanded(self.items2D.index(), True)
        if expandJobs:
            self.dialog.modelTree.setExpanded(self.itemsJob.index(), True)

        self.dialog.modelTree.setEditTriggers(
            QtGui.QAbstractItemView.AllEditTriggers)
        self.dialog.modelTree.setSelectionBehavior(
            QtGui.QAbstractItemView.SelectItems)

        self.dialog.modelGroup.show()
コード例 #8
0
ファイル: PathJobGui.py プロジェクト: pgilfernandez/FreeCAD
 def baseObjectViewObject(self, obj):
     return PathUtil.getPublicObject(self.obj.Proxy.baseObject(obj)).ViewObject
コード例 #9
0
    def setupModel(self, job = None):

        if job:
            preSelected = Counter([PathUtil.getPublicObject(job.Proxy.baseObject(job, obj)).Label for obj in job.Model.Group])
            jobResources = job.Model.Group + [job.Stock]
        else:
            preSelected = Counter([obj.Label for obj in FreeCADGui.Selection.getSelection()])
            jobResources = []

        self.candidates = sorted(PathJob.ObjectJob.baseCandidates(), key=lambda o: o.Label)

        # If there is only one possibility we might as well make sure it's selected
        if not preSelected and 1 == len(self.candidates):
            preSelected = Counter([self.candidates[0].Label])

        expandSolids = False
        expand2Ds    = False
        expandJobs   = False

        for i, base in enumerate(self.candidates):
            if not base in jobResources and not PathJob.isResourceClone(job, base, None) and not hasattr(base, 'StockType'):
                item0 = QtGui.QStandardItem()
                item1 = QtGui.QStandardItem()

                item0.setData(base.Label, QtCore.Qt.EditRole)
                item0.setData(base, self.DataObject)
                item0.setCheckable(True)
                item0.setEditable(False)

                item1.setEnabled(True)
                item1.setEditable(True)

                if base.Label in preSelected:
                    itemSelected = True
                    item0.setCheckState(QtCore.Qt.CheckState.Checked)
                    item1.setData(preSelected[base.Label], QtCore.Qt.EditRole)
                else:
                    itemSelected = False
                    item0.setCheckState(QtCore.Qt.CheckState.Unchecked)
                    item1.setData(0, QtCore.Qt.EditRole)

                if PathUtil.isSolid(base):
                    self.itemsSolid.appendRow([item0, item1])
                    if itemSelected:
                        expandSolids = True
                else:
                    self.items2D.appendRow([item0, item1])
                    if itemSelected:
                        expand2Ds = True

        for j in sorted(PathJob.Instances(), key=lambda x: x.Label):
            if j != job:
                item0 = QtGui.QStandardItem()
                item1 = QtGui.QStandardItem()

                item0.setData(j.Label, QtCore.Qt.EditRole)
                item0.setData(j, self.DataObject)
                item0.setCheckable(True)
                item0.setEditable(False)

                item1.setEnabled(True)
                item1.setEditable(True)

                if j.Label in preSelected:
                    expandJobs = True
                    item0.setCheckState(QtCore.Qt.CheckState.Checked)
                    item1.setData(preSelected[j.Label], QtCore.Qt.EditRole)
                else:
                    item0.setCheckState(QtCore.Qt.CheckState.Unchecked)
                    item1.setData(0, QtCore.Qt.EditRole)

                self.itemsJob.appendRow([item0, item1])

        self.delegate = _ItemDelegate(self, self.dialog.modelTree)
        self.model = QtGui.QStandardItemModel(self.dialog)
        self.model.setHorizontalHeaderLabels(['Model', 'Count'])


        if self.itemsSolid.hasChildren():
            self.model.appendRow(self.itemsSolid)
            if expandSolids or not (expand2Ds or expandJobs):
                expandSolids = True
        if self.items2D.hasChildren():
            self.model.appendRow(self.items2D)
        if self.itemsJob.hasChildren():
            self.model.appendRow(self.itemsJob)

        self.dialog.modelTree.setModel(self.model)
        self.dialog.modelTree.setItemDelegateForColumn(1, self.delegate)
        self.dialog.modelTree.expandAll()
        self.dialog.modelTree.resizeColumnToContents(0)
        self.dialog.modelTree.resizeColumnToContents(1)
        self.dialog.modelTree.collapseAll()

        if expandSolids:
            self.dialog.modelTree.setExpanded(self.itemsSolid.index(), True)
        if expand2Ds:
            self.dialog.modelTree.setExpanded(self.items2D.index(), True)
        if expandJobs:
            self.dialog.modelTree.setExpanded(self.itemsJob.index(), True)

        self.dialog.modelTree.setEditTriggers(QtGui.QAbstractItemView.AllEditTriggers)
        self.dialog.modelTree.setSelectionBehavior(QtGui.QAbstractItemView.SelectItems)

        self.dialog.modelGroup.show()
コード例 #10
0
    def setupModel(self, job=None):
        if job:
            sel = [
                PathUtil.getPublicObject(job.Proxy.baseObject(job, obj))
                for obj in job.Model.Group
            ]
            xxx = job.Model.Group + [job.Stock]
        else:
            sel = FreeCADGui.Selection.getSelection()
            xxx = []

        if sel:
            selected = [s.Label for s in sel]
        else:
            selected = []

        PathLog.track('selected', selected)

        expandSolids = False
        expandTwoDs = False
        expandJobs = False
        index = 0
        candidates = sorted(PathJob.ObjectJob.baseCandidates(),
                            key=lambda o: o.Label)
        for base in candidates:
            PathLog.track(base.Label)
            if not base in xxx and not PathJob.isResourceClone(
                    job, base, None) and not hasattr(base, 'StockType'):
                PathLog.track('base', base.Label)
                item = QtGui.QTreeWidgetItem([base.Label])
                item.setData(0, self.DataObject, base)
                sel = base.Label in selected
                if sel or (1 == len(candidates) and not selected):
                    item.setCheckState(0, QtCore.Qt.CheckState.Checked)
                else:
                    item.setCheckState(0, QtCore.Qt.CheckState.Unchecked)
                if PathUtil.isSolid(base):
                    self.itemsSolid.addChild(item)
                    if sel:
                        expandSolids = True
                else:
                    self.itemsTwoD.addChild(item)
                    if sel:
                        expandTwoDs = True

        for j in sorted(PathJob.Instances(), key=lambda x: x.Label):
            if j != job:
                item = QtGui.QTreeWidgetItem([j.Label])
                item.setData(0, self.DataObject, j)
                if j.Label in selected:
                    expandJobs = True
                    item.setCheckState(0, QtCore.Qt.CheckState.Checked)
                else:
                    item.setCheckState(0, QtCore.Qt.CheckState.Unchecked)
                self.itemsJob.addChild(item)

        if self.itemsSolid.childCount() > 0:
            self.dialog.modelTree.addTopLevelItem(self.itemsSolid)
            if expandSolids or not (expandTwoDs or expandJobs):
                PathLog.track()
                self.itemsSolid.setExpanded(True)
                expandSolids = True
        if self.itemsTwoD.childCount() > 0:
            self.dialog.modelTree.addTopLevelItem(self.itemsTwoD)
            if expandTwoDs:
                self.itemsTwoD.setExpanded(True)
        if self.itemsJob.childCount() > 0:
            self.dialog.modelTree.addTopLevelItem(self.itemsJob)
            if expandJobs:
                self.itemsJob.setExpanded(True)
        self.dialog.modelGroup.show()
コード例 #11
0
 def baseObjectViewObject(self, obj):
     return PathUtil.getPublicObject(
         self.obj.Proxy.baseObject(obj)).ViewObject
コード例 #12
0
    def setupModel(self, job = None):
        if job:
            sel = [PathUtil.getPublicObject(job.Proxy.baseObject(job, obj)) for obj in job.Model.Group]
            xxx = job.Model.Group + [job.Stock]
        else:
            sel = FreeCADGui.Selection.getSelection()
            xxx = []

        if sel:
            selected = [s.Label for s in sel]
        else:
            selected = []

        PathLog.track('selected', selected)

        expandSolids = False
        expandTwoDs  = False
        expandJobs   = False
        index = 0
        candidates = sorted(PathJob.ObjectJob.baseCandidates(), key=lambda o: o.Label)
        for base in candidates:
            PathLog.track(base.Label)
            if not base in xxx and not PathJob.isResourceClone(job, base, None) and not hasattr(base, 'StockType'):
                PathLog.track('base', base.Label)
                item = QtGui.QTreeWidgetItem([base.Label])
                item.setData(0, self.DataObject, base)
                sel = base.Label in selected
                if sel or (1 == len(candidates) and not selected):
                    item.setCheckState(0, QtCore.Qt.CheckState.Checked)
                else:
                    item.setCheckState(0, QtCore.Qt.CheckState.Unchecked)
                if PathUtil.isSolid(base):
                    self.itemsSolid.addChild(item)
                    if sel:
                        expandSolids = True
                else:
                    self.itemsTwoD.addChild(item)
                    if sel:
                        expandTwoDs = True

        for j in sorted(PathJob.Instances(), key=lambda x: x.Label):
            if j != job:
                item = QtGui.QTreeWidgetItem([j.Label])
                item.setData(0, self.DataObject, j)
                if j.Label in selected:
                    expandJobs = True
                    item.setCheckState(0, QtCore.Qt.CheckState.Checked)
                else:
                    item.setCheckState(0, QtCore.Qt.CheckState.Unchecked)
                self.itemsJob.addChild(item)

        if self.itemsSolid.childCount() > 0:
            self.dialog.modelTree.addTopLevelItem(self.itemsSolid)
            if expandSolids or not (expandTwoDs or expandJobs):
                PathLog.track()
                self.itemsSolid.setExpanded(True)
                expandSolids = True
        if self.itemsTwoD.childCount() > 0:
            self.dialog.modelTree.addTopLevelItem(self.itemsTwoD)
            if expandTwoDs:
                self.itemsTwoD.setExpanded(True)
        if self.itemsJob.childCount() > 0:
            self.dialog.modelTree.addTopLevelItem(self.itemsJob)
            if expandJobs:
                self.itemsJob.setExpanded(True)
        self.dialog.modelGroup.show()