FreeCAD : Changer la couleur d'une face

Cette option n'existe pas nativement dans FreeCAD 0.17. Merci à <mario52> pour son post dans le forum.

  1. Enregistrer la macro ci-dessous
  2. Sélectionner une ou plusieurs face(s)
  3. Lancer la macro et choisir la couleur

Macro

CoulFace.txt
# -*- coding: utf-8 -*-
 
__title__   = "Macro_Colored_Faces"
__author__  = "Mario52"
__url__     = "http://www.freecadweb.org/index-fr.html"
__Wiki__    = ""
__version__ = "00.00"
__date__    = "19/02/2017"
 
import PySide
from PySide import QtCore, QtGui
 
couleur = QtGui.QColorDialog.getColor()
 
if couleur.isValid():
    r = int(str(couleur.name()[1:3]),16)
    v = int(str(couleur.name()[3:5]),16)
    b = int(str(couleur.name()[5:7]),16)
 
    try:
        a = FreeCADGui.Selection.getSelectionEx()    # selection sous objet
        aa = FreeCADGui.Selection.getSelection()     # selection objet
 
        cols = colors = []
        cols = FreeCAD.ActiveDocument.getObject(aa[0].Name).ViewObject.DiffuseColor
 
        if len(cols) == 1:
            for i in aa[0].Shape.Faces:
                colors += [(cols[0])]
        else:
            colors = cols
 
        for i in range(len(aa)):
            fce = int(a[0].SubElementNames[i][4:])-1
            colors[fce] = (float(r)/255,float(v)/255,float(b)/255,0.0)                         
            aa[i].ViewObject.DiffuseColor = colors 
        print colors
    except Exception:
        print "Select one face"
else:
    print "Aborded"