Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Start the macro select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate the macro stay resident
# -*- coding: utf-8 -*-
import FreeCADGui
import PySide
from PySide import QtGui ,QtCore
from PySide.QtGui import *
from PySide.QtCore import *
__title__ = "Macro_Duplicate_Selection"
__author__ = "Mario52"
__url__ = "http://www.freecadweb.org/index-fr.html"
__version__ = "00.00"
__date__ = "06/06/2016"
__Help__ = "Start the macro select the object IN THE 3D VIEW the ForbiddenCursor stay if the selection is duplicate"
def selectionObject():
sel = FreeCADGui.Selection.getSelection()
x = []
del x[:]
for a in range(len(sel)):
x.append(sel[a].Name)
doublet = 0
for i in range(len(sel)):
for ii in range((i+1),len(sel)):
if x[i] == x[ii]:
doublet = 1
break
if doublet == 1:
QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ForbiddenCursor))
# FreeCAD.Console.PrintError("HELP "+sel[-1].Name+" duplicate selection"+"\n")
else:
QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
class SelObserver:
def addSelection(self,doc,obj,sub,pnt): # Selection
selectionObject()
def removeSelection(self,doc,obj,sub): # Effacer l'objet salectionne
selectionObject()
def setPreselection(self, doc, obj, sub):
selectionObject()
def clearSelection(self,doc): # Si clic sur l'ecran, effacer la selection
selectionObject()
# def setSelection(self,doc): # Selection dans Combo View pour quitter la fonction
# App.Console.PrintMessage("Fin Macro_Duplicate"+"\n")
# QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
# FreeCADGui.Selection.removeObserver(s)# desinstalle la fonction residente
s=SelObserver()
FreeCADGui.Selection.addObserver(s) # installe la fonction en mode resident
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment