Macro Duplicate Selection: Difference between revisions

From FreeCAD Documentation
(Vertical {{Macro}}; fixed icon)
(Use {{MacroCode}})
(4 intermediate revisions by 2 users not shown)
Line 4: Line 4:
{{Macro
{{Macro
|Name=Macro Duplicate Selection
|Name=Macro Duplicate Selection
|Description= This macro testing if one selection are duplicate.
|Description= This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.
|Author=Mario52
|Author=Mario52
|Version=00.00
|Version=00.00
|Date=2016-06-06
|Date=2016-06-06
|FCVersion=0.16
|Download= [https://www.freecadweb.org/wiki/images/5/54/Macro_Duplicate_Selection.png Icon ToolBar]
}}
}}


Line 13: Line 15:
This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.
This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.


==How to use== <!--T:3-->
==Usage== <!--T:3-->
Run the macro, the macro stay resident in memory.
Run the macro, the macro stay resident in memory.


Line 20: Line 22:


==Script== <!--T:5-->
==Script== <!--T:5-->

<!--T:8-->
Icon for the toolBar [[File:Macro_Duplicate_Selection.png]]

</translate>
</translate>

'''Macro_Duplicate_Selection.FCMacro'''
'''Macro_Duplicate_Selection.FCMacro'''


{{Code|code=
{{MacroCode|code=
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import FreeCADGui
import FreeCADGui
Line 76: Line 83:
}}
}}
<translate>
<translate>

==Links== <!--T:6-->
==Links== <!--T:6-->



Revision as of 23:03, 7 May 2020

Other languages:

Macro Duplicate Selection

Description
This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.

Macro version: 00.00
Last modified: 2016-06-06
FreeCAD version: 0.16
Download: Icon ToolBar
Author: Mario52
Author
Mario52
Download
Icon ToolBar
Links
Macro Version
00.00
Date last modified
2016-06-06
FreeCAD Version(s)
0.16
Default shortcut
None
See also
None

Description

This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.

Usage

Run the macro, the macro stay resident in memory.

Select yours objects selected is duplicate the cursor mouse ere displayed "ForbiddenCursor"

Script

Icon for the toolBar


Macro_Duplicate_Selection.FCMacro

# -*- 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

Links

The forum discussion Duplicate Objects when more than one face selected