# Ingrandire lista livelli

**URL:** <https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676>\
**Category:** Rhino Windows\
**Created:** [7 Maggio 2018, 6:28pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676 "2018-05-07T18:28:23Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![mm.morelli](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/mm.morelli/32/2330_2.png) [@mm.morelli](https://it.discourse.mcneel.com/u/mm.morelli)\
**Post date:** [7 Maggio 2018, 6:28pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/1 "2018-05-07T18:28:24Z")

</div>

Salve,  
ho piccolo problema di visualizzazione della lista dei livelli nella barra di controllo che di default appare in basso nello schermo (non so esattamente come si chiama, per intenderci è la barra dove ci sono COORDINATE, LISTA LIVELLI, ORTO, REGISTRA STORIA, USO MEMORIA ecc.).

PREMESSE:

1. Generalmente lavoriamo su un unico modello in più persone.
2. Spesso è necessario capire in che livello si trova un oggetto
3. Per questo scopo è molto utile la barra in fondo (quella che citavo prima) poichè appare il nome del livello dell’oggetto che hai selezionato

PROBLEMA:  
Quando il nome del Livello e/o del Sottolivello sono leggermente più lunghi la visualizzazione del nome del livello nella barra è tagliata. In questo modo si perde tutta la comodità, il nome del sottolivello è coperto. Per altro non dipende dalla grandezza dello schermo; io utilizzo un monitor a 24" e i tasti di quella barra impegnano solo per 2/3 la larghezza dello schermo.

DOMANDA:  
C’è un modo per ingrandire la porzione destinata alla visualizzazione dei livelli?

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [8 Maggio 2018, 3:00pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/2 "2018-05-08T15:00:39Z")

</div>

Ciao

> [@mm.morelli](#):
>
> la visualizzazione del nome del livello nella barra è tagliata

Vero, ma se ci passo sopra con il cursore del mouse, qui mi mostra il nome completo.

Anche da te funziona cosi’ ?

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [9 Maggio 2018, 9:19am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/3 "2018-05-09T09:19:17Z")

</div>

… Comunque mi sembra utile capire i layer su cui sono i vari oggetti.  
Quindi ho provato a fare (anche per mio uso personale) un semplice script.  
Casomai interessi a qualcuno, eccolo:

Purtroppo non e’ automatico come il nome che compare nella status bar, bisogna lanciarlo appositamente …

Se si preseleziona, mostra i nomi dei layer al centro degli oggetti.  
Se no, si seleziona un oggetto alla volta e si vede il nome del layer dove si clicca.

```python
import rhinoscriptsyntax as rs
import scriptcontext

def main():
  pre = rs.SelectedObjects()
  rs.UnselectAllObjects()
  if pre:
    dots = []
    rs.EnableRedraw( False )
    for gid in pre:
      ly = rs.ObjectLayer( gid )
      bb = rs.BoundingBox( gid )
      ce = ( bb[0] + bb[6] ) / 2.0
      col = rs.ObjectColor( gid )
      dot = rs.AddTextDot( ly, ce )
      rs.ObjectColor( dot, col )
      dots.append( dot )
    rs.EnableRedraw( True )
    rs.GetString( 'OK ?' )
    rs.DeleteObjects( dots )
    return
  dot = None
  while True:
    scriptcontext.escape_test()
    tup = rs.GetObjectEx( '?' )
    if dot:
      rs.DeleteObject( dot )
    if not tup:
      break
    gid = tup[0]
    pik = tup[3]
    ly = rs.ObjectLayer( gid )
    pla = rs.ViewCameraPlane()
    tar = rs.ViewTarget()
    dd = pla.Origin.DistanceTo( tar )
    dy = pla.YAxis * dd * 0.02
    dot = rs.AddTextDot( ly, pik + dy )
    col = rs.ObjectColor( gid )
    rs.ObjectColor( dot, col )

main()

```

Enjoy 😉

EDIT: script aggiornato

---

<div class="post-metadata">

**Author:** ![mm.morelli](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/mm.morelli/32/2330_2.png) [@mm.morelli](https://it.discourse.mcneel.com/u/mm.morelli)\
**Post date:** [12 Maggio 2018, 2:08pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/4 "2018-05-12T14:08:15Z")

</div>

Ciao Emilio,  
innanzi tutto grazie per la risposta.

Quando metto il cursore sopra alla scritta (tagliata) mi appare il nome del livello corrente, qualsiasi esso sia! Molto strano…  
Es. Seleziono un oggetto, mi appare il nome del livello dell’oggetto “Parapetto esterno”, metto il mouse sopra e mi appare il nome del livello corrente, in questo caso “Predefinito”.

---

<div class="post-metadata">

**Author:** ![mm.morelli](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/mm.morelli/32/2330_2.png) [@mm.morelli](https://it.discourse.mcneel.com/u/mm.morelli)\
**Post date:** [12 Maggio 2018, 2:11pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/5 "2018-05-12T14:11:06Z")

</div>

Lo script sembra interessante…  
Devo chiederti però se puoi indicarmi la procedura per attivarlo, purtroppo non sono ancora molto esperto.  
Te ne sarei grato…

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [12 Maggio 2018, 4:32pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/6 "2018-05-12T16:32:34Z")

</div>

> [@mm.morelli](#):
>
> metto il mouse sopra e mi appare il nome del livello corrente

Mah, qui mi mostra il layer dell’oggetto (Rhino 6.4 in inglese) …  
Non vorrei ci fosse qualcosa da settare … non saprei, mi spiace.

Quanto allo script, non mi stupisce che tu non sappia come usarlo.  
Spiegare come usare gli script e’ una cosa che McNeel non ama fare … 😄

Il comando e’ **\_RunPythonScript**  
Se guardi nello help, ti dice poco niente …

C’e’ questo:

> **[Running a Python script in Rhino](https://developer.rhino3d.com/guides/rhinopython/python-running-scripts/)**
>
> This guide demonstrates how to run a Python script in Rhino.

… Che pero’ non dice tutto …

Comunque: se esegui il comando \_RunPythonScript , lui ti chiede di selezionare un file da eseguire.  
E’ un sistema che va bene per provare uno script, ma e’ scomodo per un uso regolare.

Per quello, devi lanciare il comando con il ‘meno’ davanti:  
**\_-RunPytonScript**  
( Cosa che consente di inserire nel comando lo script o il nome del file )

e lo puoi inserire in un pulsante o farci una macro.  
Ci sono due modi di procedere (parliamo ad esempio del pulsante):  
Puoi copiare lo script nel pulsante, dopo \_-RunPythonScript , inserendolo tra parentesi:  
( Le quali parantesi vanno separate con spazi … eh, complicata la vita 😉 )  
ad esempio nel pulsante, come comando puoi scrivere:

```auto
_-RunPythonScript ( print'Ciao !' )

```

e quando cilcchi il pulsante, lui scrive “Ciao !” nella command area. 😀  
Tutto questo si puo’ scrivere su diverse linee, cioe’ andando a capo, ad esempio:

```auto
_-RunPythonScript 
(
print '1...'
print '2...'
print '3...'
print'Ciao !'
 )

```

… con il risultato che immagini. 🙂

Oppure possiamo salvare lo script in un file e richiamare il file nel comando del pulsante, cosi’:

```auto
_-RunPythonScript NOME_FILE 

```

Dove NOME\_FILE puo’ essere o il percorso completo del file, e siamo a posto cosi’.

Oppure puo’ essere solo un nome come **prova.py** ( E’ meglio usare un’estensione “.py” per gli script in Python )  
Pero’ dobbiamo dire a Rhino dove cercare lo script.  
E per questo, per quanto ne so, c’e’ un modo assurdamente complicato.  
( Speravo che Rhino 6 semplificasse la cosa, ma non sembra … )  
Bisogna usare il comando **\_EditPythonScript** , che tra l’altro permette anche lui di eseguire uno script.

Dicevo, per comunicare a Rhino la cartella dove hai salvato lo script,  
lanci \_EditPythonScript , apparira’ una finestra.  
Dal menu’: **Tools** =\> **Options…**  
Altra finestra: in alto, tag **Files**  
Dov’e’ scritto “Module Search Paths” , sotto l’elenco dei percorsi, prima icona a sinistra: **Add to search paths**  
Ci clicchi sopra e puoi (finalmente) inserire il percorso dove hai salvato lo script.  
Per fortuna Rhino si ricorda questi percorsi, quando lo rilanci e’ tutto a posto. 🙂

Dicevo che \_EditPythonScript puo’ anche servire per lanciare uno script. Si fa cosi’:

Menu’: **File** =\> **Open…**  
e importi lo script (che poi vedi nel text editor)  
Per eseguirlo, in Rhino 5 c’era un comando da menu’, in Rhino 6 e’ sparito. 😮  
Devi premere **Ctrl+F5**

Se ti sembra che l’uso degli script non sia incoraggiato … siamo in due. 😉

Ciao

---

<div class="post-metadata">

**Author:** ![Andrea](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/andrea/32/16005_2.png) [@Andrea](https://it.discourse.mcneel.com/u/Andrea)\
**Post date:** [28 Maggio 2018, 12:22pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/7 "2018-05-28T12:22:21Z")

</div>

ciao Emilio ,  
grazie per lo script , che sto usando e funziona .  
Nel mio caso , sarebbe utile che selezionasse il livello che compare nel tag .  
E’ possibile modificare il file ?  
Se si come?  
Grazie , ciao , Andrea

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [28 Maggio 2018, 12:52pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/8 "2018-05-28T12:52:56Z")

</div>

Ciao Andrea

> [@Andrea](#):
>
> sarebbe utile che selezionasse il livello che compare nel tag

Vorresti selezionare gli oggetti di quel livello ?

Oppure selezionare, cioe’ evidenziare in blu, il livello nell’elenco dei livelli a video ?

Se e’ la seconda, non so proprio come fare.  
Non ho mai trovato un modo … 😒

---

<div class="post-metadata">

**Author:** ![Andrea](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/andrea/32/16005_2.png) [@Andrea](https://it.discourse.mcneel.com/u/Andrea)\
**Post date:** [28 Maggio 2018, 1:32pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/9 "2018-05-28T13:32:22Z")

</div>

ciao Emilio ,

siccome la sfiga non si smentisce mai , vorrei proprio evidenziare in blu , o attivare ,

il livello corrispondente .

grazie comunque ,

ciao , Andrea

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [28 Maggio 2018, 1:57pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/10 "2018-05-28T13:57:22Z")

</div>

> [@Andrea](#):
>
> vorrei proprio evidenziare in blu , o attivare ,il livello corrispondente .

Supponevo che fosse cosi’.  
E’ una cosa che ho tentato anch’io, invano, di fare in passato.

Secondo me sarebbe utile poter selezionare, deselezionare e ‘leggere’ la selezione dei vari livelli.  
Con gli script si potrebbero fare parecchie cose, e sarebbe comodo vedere a colpo d’occhio qual’e’ o quali sono i livelli in questione, nonche’ selezionare col mouse i livelli voluti per una certa operazione.  
( Analogamente a quanto facciamo per gli oggetti. )

… Pazienza … 😒

---

<div class="post-metadata">

**Author:** ![lucio\_zadra](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/lucio_zadra/32/16361_2.png) [@lucio\_zadra](https://it.discourse.mcneel.com/u/lucio_zadra)\
**Post date:** [28 Maggio 2018, 5:25pm UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/11 "2018-05-28T17:25:53Z")

</div>

Unico modo credo sia tramite i tools del layer manager che ti permettono di evidenziare i layer che contengono gli oggetti selezionati… ma non credo esista nessun modo per bypassare i comandi del layer manager direttamente da riga di comando (o almeno non l’ho trovato…).  
Anzi, mi correggo subito:  
da Rhino Script si può fare con il comando  
Rhino.SelectLayers  
Ti evidenzia in blu i layer visualizzati nel layer manager.  
Dovrebbe esserci anche in python presumo…

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [29 Maggio 2018, 5:13am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/12 "2018-05-29T05:13:11Z")

</div>

> [@lucio\_zadra](#):
>
> Rhino.SelectLayers

Meno male che c’e’ Lucio ! 😀  
Grazie !

( Ho visto che c’e’ anche Rhino.SelectedLayers 🙂 )

In Python pare non ci sia ancora, ma serve anche quello in VBS …

@Andrea , prova questo:

[c5-objlayerAT.py](https://it.discourse.mcneel.com/uploads/mcneel_it/original/2X/b/bf55e0ddc485b88dc5d3bf70568b3327acfc9ead.py) (1,3 KB)

( Grazie alle preziose indicazioni di Lucio )

Ciao !

---

<div class="post-metadata">

**Author:** ![lucio\_zadra](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/lucio_zadra/32/16361_2.png) [@lucio\_zadra](https://it.discourse.mcneel.com/u/lucio_zadra)\
**Post date:** [29 Maggio 2018, 5:29am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/13 "2018-05-29T05:29:42Z")

</div>

> [@emilio](#):
>
> Grazie alle preziose indicazioni di Lucio

😁 dovremmo essere a : Emilio = 100 ; Lucio =1…  
Ne ho da recuperare altre 99 per pareggiare i conti! 😉

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [29 Maggio 2018, 5:37am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/14 "2018-05-29T05:37:28Z")

</div>

> [@lucio\_zadra](#):
>
> Ne ho da recuperare

Non mi risulta …  
Comunque potremmo sempre convertire in birrette …🍺 … 😄

---

<div class="post-metadata">

**Author:** ![lucio\_zadra](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/lucio_zadra/32/16361_2.png) [@lucio\_zadra](https://it.discourse.mcneel.com/u/lucio_zadra)\
**Post date:** [29 Maggio 2018, 6:34am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/15 "2018-05-29T06:34:35Z")

</div>

> [@emilio](#):
>
> Comunque potremmo sempre convertire in birrette …🍺 … 😄

Mi pare ci sia la funzione Rhino.toBeers… 😂  
Potrei fare un altro sondaggio… ma salterebbe fuori che dovrebbe sempre pagare @giuseppe … (quel bischero, si dà alla macchia da quando ha intuito il tranello del sondaggio! 🤨 😄)

---

<div class="post-metadata">

**Author:** ![giuseppe](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/giuseppe/32/16416_2.png) [@giuseppe](https://it.discourse.mcneel.com/u/giuseppe)\
**Post date:** [29 Maggio 2018, 9:15am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/16 "2018-05-29T09:15:14Z")

</div>

Come la vedete se per un oggetto: cliccandoci sopra e tenendo premuto il bottone mouse venisse fuori come cursor tooltip il layer?

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [29 Maggio 2018, 9:23am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/17 "2018-05-29T09:23:58Z")

</div>

Ciao Giuspa !

Se ho capito bene.  
… Mostrare il Selection Menu anche per oggetti singoli (dopo un tempo stabilito).

Buona idea 🙂

---

<div class="post-metadata">

**Author:** ![lucio\_zadra](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/lucio_zadra/32/16361_2.png) [@lucio\_zadra](https://it.discourse.mcneel.com/u/lucio_zadra)\
**Post date:** [29 Maggio 2018, 9:26am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/18 "2018-05-29T09:26:07Z")

</div>

Io la vedrei bene che le funzioni del layer manager potessero essere richiamate da comando (cioè facendo il comando con il trattino ti vengono proposti anche i comandi “Tools”).  
Ti associ il comando (macro) ad un pulsante FXX e, una volta selezionati gli oggetti, selezioni i relativi layer o fai quello che ti serve.  
Tenere premuto il pulsante sull’oggetto va bene come visualizzazione ma è limitante (secondo me).

---

<div class="post-metadata">

**Author:** ![giuseppe](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/giuseppe/32/16416_2.png) [@giuseppe](https://it.discourse.mcneel.com/u/giuseppe)\
**Post date:** [29 Maggio 2018, 9:27am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/19 "2018-05-29T09:27:01Z")

</div>

si esatto. Se su un oggetto anche selezionato clicchi e tieni premuto il colore si evidenzia e si attivano gli osnap per esempio. In quella circostanza potrebbe presentarsi il layer name.

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [29 Maggio 2018, 9:30am UTC](https://it.discourse.mcneel.com/t/ingrandire-lista-livelli/1676/20 "2018-05-29T09:30:14Z")

</div>

> [@lucio\_zadra](#):
>
> Io la vedrei bene che le funzioni del layer manager potessero essere richiamate da comando

Eh… posso solo sottoscrivere. 😀  
( Secondo il mio psicopatico parere … TUTTO in Rhino dovrebbe avere il suo bel comando, scriptabile of course )

EDIT:

… e tutte le informazioni / tutti i dati dovrebbero poter essere visualizzati, salvati e riutilizzati …  
Va beh, OK, per adesso mi fermo qui . 😄
