Script per creare lista dei nomi

Ciao, i metodi sono gli stessi, ma ci sono piccole differenze se usi OpenOffice.
Ti confesso che uso anch’io OO ma non ho mai provato. (con MS, invece, funziona alla grande)

Emilio
Non intervengo sull’ operativita’ dello script ma solo sul nome di una variabile…
Se lo posti sul NG inglese ti consiglio di rinominare la variabile dick :joy:

1 Mi Piace

:wink:
Hehe … OK.
Ma con la memoria che mi ritrovo, nel caso dubito molto che me ne ricorderei …

Ciao Mario ! :slight_smile:

Ciao Emilio, ho deciso di farmi odiare, altrimenti per me l’alternativa è studiare Python.
Non è importante, ma se avessi tempo da perdere, è possibile aggiungere anche il calcolo del volume, sempre separato da ; ?
Buona domenica
Mauro

Ciao Mauro
Vedi se questo funziona …

import rhinoscriptsyntax as rs

def main():
  gids = rs.AllObjects()
  dick = dict( [] )
  for gid in gids:
    nam = rs.ObjectName( gid )
    tup = rs.SurfaceVolume( gid )
    if tup:
      vol = tup[ 0 ]
    else:
      vol = 0
    if nam:
      if nam in dick:
        dick[ nam ][ 0 ] += 1
        dick[ nam ][ 1 ] += vol
      else:
        dick[ nam ] = [ 1, vol ]
  tlis = []
  for key in dick:
    tlis.append( '%s;%d;%g' % ( key, dick[ key ][ 0 ], dick[ key ][ 1 ] ) )
  tlis.sort()
  tex = '\n'.join( tlis )
  rs.Notes( tex )
  rs.Command( '_Notes' )

main()

Se vuoi imparare Python, sono sicuro che gli scriptomani di questo forum saranno lieti di dare una mano con informazioni, consigli, esempi ecc. :slight_smile:

Se preferisci, c’e’ anche l’alternativa Grasshopper.
E’ una cosa un po’ diversa dagli script, ma molti lo usano anche come motore di scripting alternativo
Ed essendo diverso degli script classici, spesso e’ molto apprezzato da chi non ama scrivere script.

Ciao

Ciao Emilio grazie, lo proverò domani, oggi sono fuori.
Uso normalmente Grasshopper, ma per creare matematiche paramentriche, proverò a vedere come eseguire dei calcoli.
Buona serata.

Ciao Emilio, lo script funziona molto bene, il problema è il formato dei numeri del volume, quelli che superano il milione li scrive in formato ingegneristico e OO li legge come stringhe, quelli al di sotto li vede come numeri e fa il calcolo esatto.
Sempre grazie e buona settimana.
Mauro

Ciao Mauro

Che precisione ti serve per il valore del volume: niente decimali ? Uno ? O … ?
Se vuoi possiamo anche dividere per 1000 o altro …

Ciao

Se calcoliamo il risultato in mm³ anche 0 decimali va bene

OK

Cosi’ come va ?

import rhinoscriptsyntax as rs

def main():
  gids = rs.AllObjects()
  dick = dict( [] )
  for gid in gids:
    nam = rs.ObjectName( gid )
    tup = rs.SurfaceVolume( gid )
    if tup:
      vol = tup[ 0 ]
    else:
      vol = 0
    if nam:
      if nam in dick:
        dick[ nam ][ 0 ] += 1
        dick[ nam ][ 1 ] += vol
      else:
        dick[ nam ] = [ 1, vol ]
  tlis = []
  for key in dick:
    tlis.append( '%s;%d;%d' % ( key, dick[ key ][ 0 ], int( dick[ key ][ 1 ] ) ) )
  tlis.sort()
  tex = '\n'.join( tlis )
  rs.Notes( tex )
  rs.Command( '_Notes' )

main()

Ciao !

Grande Emilio funziona perfettamente, ti ringrazio infinitamente, ma non so come sdebitarmi, se passerai in Franciacorta berremo bollicine :smiley:

Hehe … ottima idea (le bollicine) :wink:

Per nostra fortuna l’operazione da scriptare era semplice :slight_smile:
… Ed e’ capitato nelle ferie.
Da lunedi’ avro’ parecchie difficolta’ a trovare tempo ed energie per queste cose …

Ciao Mauro !

Grazie ancora, buona ripresa