| 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. |
| Autor |
| Piffpoof, triplus |
| Herunterladen |
| Werkzeugleisten-Symbol |
| Links |
| Makros Rezepte Wie man Makros installiert Symbolleisten anpassen |
| 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 |
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.
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.
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).
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:
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()
Globalen Anzeigemodus umschalten:
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()
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
# 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
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