Description

Paramètre le mode d’affichage de tous les details (sur le layout actif). Utile pour rapidement paramétrer tous les details du layout actif sur “Hidden”, le mode d’affichage de VisualArq.

Voir aussi le script SetDetailDisplayModeAllLayouts.

Le script suivant fonctionne sur :

  • Rhino pour Windows ;
  • Rhino pour macOS ;
  • Le mode d’affichage “Hidden” est spécifique à VisualArq, il requiert donc l’installation du plugin VisualArq.

Script par MLAV.LAND, sous licence GNU GPL 3.

Code

import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
 
def SetDetailDisplayModes():
    modes = Rhino.Display.DisplayModeDescription.GetDisplayModes()
    
    mode = None
    modeNum = 0
    if sc.sticky.has_key('DETAIL_MODE'):
        modeNum = sc.sticky['DETAIL_MODE']
 
    if len(modes) == 1:
        mode = modes[0]
    else:
        mode = modes[modeNum]
        go = Rhino.Input.Custom.GetOption()
        go.SetCommandPrompt("Select display mode")
        str_modes = []
        for m in modes:
            s = m.EnglishName.replace(" ","").replace("-","")
            str_modes.append(s)
        go.AddOptionList("DisplayMode", str_modes, modeNum)
        
        if go.Get()==Rhino.Input.GetResult.Option:
            mode = modes[go.Option().CurrentListOptionIndex]
            modeNum = list(modes).index(mode)
            sc.sticky['DETAIL_MODE'] = modeNum
    if not mode: return
    
    view = sc.doc.Views.ActiveView
    
    if isinstance(view, Rhino.Display.RhinoPageView):
        dets = view.GetDetailViews() 
        if not dets: return
        
    for det in dets:
        view.SetActiveDetail(det.Id)
        rs.ViewDisplayMode( mode = mode.EnglishName)
        #det.Viewport.DisplayMode = mode
        pass
    
    view.SetPageAsActive()
    sc.doc.Views.Redraw()
    pass
 
    print("Display mode applied to layout :)")
    
if __name__ == '__main__':SetDetailDisplayModes()