Макрос Toggle Drawstyle переключает стиль отображения выбранных или всех объектов.
Макрос Toggle Drawstyle - Быстрое переключение стиля отображения объектов
-
- Помогаю слегка
- Сообщения: 2552
- Зарегистрирован: 18 янв 2020, 11:49
- Откуда: Ростов-на-Дону
Макрос Toggle Drawstyle - Быстрое переключение стиля отображения объектов
Не бойся поломать. Бойся не починить ))
-
- Помогаю слегка
- Сообщения: 2552
- Зарегистрирован: 18 янв 2020, 11:49
- Откуда: Ростов-на-Дону
Re: Макрос Toggle Drawstyle - Быстрое переключение стиля отображения объектов
Немного изменил макрос.
При выделенных объектах:
При выделенных объектах:
- 1-е нажатие делает объекты прозрачными
Прозрачность задаётся параметром transparency_value - 2-е нажатие показывает только рёбра
xxx.ViewObject.DisplayMode = Wireframe - 3-е нажатие задаёт обычный режим отображения
Код макроса
Код: Выделить всё
# 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
# "Flat Lines"
# "Shaded"
# "Wireframe"
# "Points"
objectA = "Flat Lines"
objectB = "Wireframe"
transparency_value = 85
# ==============================
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 == "Flat Lines" and o.ViewObject.Transparency == 0:
o.ViewObject.Transparency = transparency_value
o.ViewObject.LineWidth = 1
elif o.ViewObject.DisplayMode == "Flat Lines" and o.ViewObject.Transparency > 0:
o.ViewObject.Transparency = 0
o.ViewObject.DisplayMode = "Wireframe"
o.ViewObject.LineWidth = 1
else:
o.ViewObject.DisplayMode = "Flat Lines"
o.ViewObject.Transparency = 0
o.ViewObject.LineWidth = 2
else:
if actionA.isChecked():
actionB.trigger()
else:
actionA.trigger()
Не бойся поломать. Бойся не починить ))
-
- Помогаю слегка
- Сообщения: 2552
- Зарегистрирован: 18 янв 2020, 11:49
- Откуда: Ростов-на-Дону
Re: Макрос Toggle Drawstyle - Быстрое переключение стиля отображения объектов
Не бойся поломать. Бойся не починить ))