Macro Toggle Drawstyle Optimized

From FreeCAD Documentation
Revision as of 11:22, 23 May 2020 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:

Macro Toggle Drawstyle Optimized

Description
Script optimisé pour toutes les langues et pour les objets sélectionnés ou tous les objets.
Lorsque vous travaillez avec FreeCAD, vous pouvez parfois changer rapidement le style de dessin de l'objet avec lequel vous travaillez. Ceci est disponible via le menu déroulant Drawstyle où n'importe quel style Drawstyle peut être sélectionné. Cette macro rend disponibles 2 des styles de dessin sous forme de bouton cliquable sur une barre d'outils sur laquelle l'utilisateur peut cliquer pour basculer entre les deux styles de dessin.


Version macro : 2.0
Date dernière modification : 2020-29-01
Version FreeCAD : 0.17 and above
Téléchargement : ToolBar Icon
Auteur: Piffpoof , triplus
Auteur
Piffpoof , triplus
Téléchargement
ToolBar Icon
Liens
Version Macro
2.0
Dernière modification
2020-29-01
Version(s) FreeCAD
0.17 and above
Raccourci clavier
None
Voir aussi
Macro Toggle Drawstyle

Description

Script optimisé pour toutes les langues, pour les objets sélectionnés ou tous les objets.

Trois macros sont disponibles:

  • Combinaison qui bascule le mode d'affichage global lorsque rien n'est sélectionné et/ou bascule le mode d'affichage des objets sélectionnés si des objets sont sélectionnés. Lorsque les objets sont sélectionnés, le mode d'affichage global est automatiquement défini sur Tel quel: Macro_Toggle_Drawstyle_Optimized.FCMacro
  • Basculer le mode d'affichage global: Macro_Toggle_Drawstyle_Optimized_2.FCMacro
  • Basculer le mode d'affichage du ou des objets sélectionnés (modifications visibles uniquement dans le mode d'affichage général tel quel (situé dans la barre d'outils Afficher)): Macro_Toggle_Drawstyle_Optimized_3.FCMacro

Lorsque vous travaillez avec FreeCAD, vous pouvez parfois changer rapidement le style de dessin de l'objet avec lequel vous travaillez. Ceci est disponible via le menu déroulant Drawstyle où n'importe quel style Drawstyle peut être sélectionné. Cette macro rend disponibles 2 des styles de dessin sous forme de bouton cliquable sur une barre d'outils sur laquelle l'utilisateur peut cliquer pour basculer entre les deux styles de dessin.

Installation

L’installation consiste à copier les deux codes dans le répertoire Macro approprié et à l’appeler à partir du menu Macro. Il est de loin préférable de l'ajouter à la barre d'outils pour être plus facilement disponible.

Utilisation

Sélectionnez un objet, puis cliquez sur le bouton de la barre d'outils associé ou appelez-le dans le menu Macro. Le style de dessin de l'objet sélectionné basculera entre les deux styles de dessin spécifiés dans le code de macro (voir la liste de codes ci-dessous).

Script

Combinaison qui bascule le mode d'affichage global lorsque rien n'est sélectionné et/ou bascule le mode d'affichage des objets sélectionnés si des objets sont sélectionnés. Lorsque les objets sont sélectionnés, le mode d'affichage global est automatiquement défini tel quel:


The icon ToolBar

Macro_Toggle_Drawstyle_Optimized.FCMacro

# triplus @ 2016, 2020
# Toggle object/global display mode
# ==============================

# 0 = "As is"
# 1 = "Flat lines"
# 2 = "Shaded
# 3 = "Wireframe"
# 4 = "Points"
# 5 = "Hidden line"
# 6 = "No shading"

globalA = 0
globalB = 3

a = "Flat Lines"
b = "Shaded"
c = "Wireframe"
d = "Points"

objectA = a
objectB = c

# ==============================

from PySide import QtGui
import FreeCADGui as Gui

mw = Gui.getMainWindow()
sel = Gui.Selection.getSelectionEx()


act = {
    0: mw.findChild(QtGui.QAction, "Std_DrawStyleAsIs"),
    1: mw.findChild(QtGui.QAction, "Std_DrawStyleFlatLines"),
    2: mw.findChild(QtGui.QAction, "Std_DrawStyleShaded"),
    3: mw.findChild(QtGui.QAction, "Std_DrawStyleWireframe"),
    4: mw.findChild(QtGui.QAction, "Std_DrawStylePoints"),
    5: mw.findChild(QtGui.QAction, "Std_DrawStyleHiddenLine"),
    6: mw.findChild(QtGui.QAction, "Std_DrawStyleNoShading"),
}


default = act[0]
actionA = act[globalA]
actionB = act[globalB]


if sel:
    obj = []
    default.trigger()
    for s in sel:
        if s.Object.TypeId == "App::Link":
            if s.Object.LinkedObject not in obj:
                obj.append(s.Object.LinkedObject)
        elif s.Object not in obj:
            obj.append(s.Object)
        else:
            pass

    for o in obj:
        if o.ViewObject.DisplayMode == objectA:
            o.ViewObject.DisplayMode = objectB
        else:
            o.ViewObject.DisplayMode = objectA
else:
    if actionA.isChecked():
        actionB.trigger()
    else:
        actionA.trigger()

Script 2

Basculer le mode d'affichage global:

The icon ToolBar

Macro_Toggle_Drawstyle_Optimized_2.FCMacro

# triplus @ 2016, 2020
# Toggle global display mode
# ==============================

# 0 = "As is"
# 1 = "Flat lines"
# 2 = "Shaded
# 3 = "Wireframe"
# 4 = "Points"
# 5 = "Hidden line"
# 6 = "No shading"

styleA = 0
styleB = 3

# ==============================

from PySide import QtGui
import FreeCADGui as Gui

mw = Gui.getMainWindow()


act = {
    0: mw.findChild(QtGui.QAction, "Std_DrawStyleAsIs"),
    1: mw.findChild(QtGui.QAction, "Std_DrawStyleFlatLines"),
    2: mw.findChild(QtGui.QAction, "Std_DrawStyleShaded"),
    3: mw.findChild(QtGui.QAction, "Std_DrawStyleWireframe"),
    4: mw.findChild(QtGui.QAction, "Std_DrawStylePoints"),
    5: mw.findChild(QtGui.QAction, "Std_DrawStyleHiddenLine"),
    6: mw.findChild(QtGui.QAction, "Std_DrawStyleNoShading"),
}


actionA = act[styleA]
actionB = act[styleB]


if actionA.isChecked():
    actionB.trigger()
else:
    actionA.trigger()

Script 3

Basculer le mode d'affichage du ou des objets sélectionnés (les modifications ne sont visibles qu'en mode d'affichage global tel quel (situé dans la barre d'outils Afficher)):

The icon ToolBar

Macro_Toggle_Drawstyle_Optimized_3.FCMacro

# triplus @ 2016, 2020
# Toggle selected object(s) display mode
# ==============================

a = "Flat Lines"
b = "Shaded"
c = "Wireframe"
d = "Points"

styleA = a
styleB = c

# ==============================

from PySide import QtGui
import FreeCADGui as Gui

obj = []
mw = Gui.getMainWindow()
sel = Gui.Selection.getSelectionEx()
mw.findChild(QtGui.QAction, "Std_DrawStyleAsIs").trigger()


for s in sel:
    if s.Object.TypeId == "App::Link":
        if s.Object.LinkedObject not in obj:
            obj.append(s.Object.LinkedObject)
    elif s.Object not in obj:
        obj.append(s.Object)
    else:
        pass


for o in obj:
    if o.ViewObject.DisplayMode == styleA:
        o.ViewObject.DisplayMode = styleB
    else:
        o.ViewObject.DisplayMode = styleA

Liens

Le lien sur forum (2016-11-27 ver:1.0 FC =< 0.17): Keyboard shortcut, View toolbar - Wireframe

The Forum link (2020-29-01 ver:2.0 FC => 0.17) : Keyboard shortcut, View toolbar - Wireframe