Macro Toggle Drawstyle Optimized/de

Generisches Makro-Symbol Erstellen Sie Ihr persönliches Symbol mit demselben Namen des Makros Zeichenstil umschalten Optimiert

Beschreibung
Skript optimiert für alle Sprachen und für ausgewählte Objekte oder alle Objekte.

Bei der Arbeit mit FreeCAD gibt es Situationen, in denen der Zeichenstil des Objekts, mit dem gearbeitet wird, schnell geändert werden soll. Dies ist über das Pulldown-Menü Zeichenstil möglich, in dem ein beliebiger Zeichenstil auswählt werden kann. Dieses Makro macht zwei der Zeichenstile als anklickbare Schaltfläche in einer Symbolleiste verfügbar, auf die der Benutzer klicken kann, um zwischen den beiden Zeichenstilen hin und her zu wechseln.
Siehe auch:
Globalen Anzeigemodus umschalten: Macro_Toggle_Drawstyle_Optimized_2.FCMacro
Anzeigemodus für ausgewählte Objekte umschalten (Änderungen sind nur im globalen Anzeigemodus Wie angezeigt (in der Symbolleiste Ansicht) sichtbar): Macro_Toggle_Drawstyle_Optimized_3.FCMacro

Versionsmakro : 2.0
Datum der letzten Änderung : 2020-29-01
FreeCAD version : 0.17 und höher
Herunterladen : Werkzeugleisten-Symbol
Autor: Piffpoof, triplus

Autor
Piffpoof, triplus
Herunterladen
Werkzeugleisten-Symbol
Links
Macro-Version
2.0
Datum der letzten Änderung
2020-29-01
FreeCAD-Version(s)
0.17 und höher
Standardverknüpfung
None
Siehe auch
Makro Zeichenstil umschalten

Beschreibung

Skript optimiert für alle Sprachen und für ausgewählte Objekte oder alle Objekte.

Es stehen drei Makros zur Verfügung:

Bei der Arbeit mit FreeCAD gibt es Situationen, in denen der Zeichenstil des Objekts, mit dem gearbeitet wird, schnell geändert werden soll. Dies ist über das Pulldown-Menü „Zeichenstil“ möglich, in dem Sie einen beliebigen Zeichenstil auswählen können. Dieses Makro macht zwei der Zeichenstile als anklickbare Schaltfläche in einer Symbolleiste verfügbar, auf die der Benutzer klicken kann, um zwischen den beiden Zeichenstilen hin und her zu wechseln.

Installation

Die Installation besteht darin, die beiden Codes in das entsprechende Makroverzeichnis zu kopieren und sie über das Makro-Menü aufzurufen. Es ist sehr empfehlenswert, sie beide zu einer Symbolleiste hinzuzufügen, damit sie leichter zugänglich sind.

Anwendung

Wähle ein Objekt aus, klicke dann auf die entsprechende Schaltfläche in der Symbolleiste oder rufe die Funktion über das Menü „Makro“ auf. Der Zeichenstil des ausgewählten Objekts wechselt zwischen den beiden im Makrocode angegebenen Zeichenstilen (siehe Code-Auflistung unten).

Skript

Kombination, die den globalen Anzeigemodus umschaltet, wenn nichts ausgewählt ist, und/oder den Anzeigemodus für ausgewählte Objekte umschaltet, wenn Objekte ausgewählt sind. Wenn Objekte ausgewählt sind, wird der globale Anzeigemodus automatisch auf „Wie ist“ gesetzt:

Werkzeugleistensymbol

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()

Skript 2

Globalen Anzeigemodus umschalten:

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()

Skript 3

Anzeigemodus für ausgewählte Objekte umschalten (Änderungen sind nur im globalen Anzeigemodus „Wie angezeigt“ (in der Symbolleiste „Ansicht“) sichtbar):

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

Verweise

Diskussion im FreeCAD-Forum: (2016-11-27 ver:1.0 FC =< 0.17) : Keyboard shortcut, View toolbar - Wireframe

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