Vorrei aggiungere i nomi degli oggetto nelle “notes”.
partendo da un semplice GetObjects.
Il problema è che rs.Notes mi aggiorna solo l’ultimo valore della lista di oggetti che seleziono.
Idee?
thanks.
Vorrei aggiungere i nomi degli oggetto nelle “notes”.
partendo da un semplice GetObjects.
Il problema è che rs.Notes mi aggiorna solo l’ultimo valore della lista di oggetti che seleziono.
Idee?
thanks.
Ciao Giuspa !
A me sembra che rs.Notes() consideri le note come un unico testo.
Quindi, se vuoi editarlo, direi di ottenere il testo attuale, sempre con rs.Notes(), ma senza parametri,
modificare il testo e poi riscriverlo nelle note usando rs.Note() con il testo editato come parametro.
Ad esempio …
import rhinoscriptsyntax as rs
def addnote( text_to_add ):
text = rs.Notes()
if not text:
rs.Notes( text_to_add )
else:
rs.Notes( text + '\n' + text_to_add )
def main():
addnote( 'Giuspa' )
addnote( 'Vittorio' )
addnote( 'Lucio' )
rs.Command( '_Notes' )
main()
EDIT:
In alternativa, se vuoi inserire nelle note una lista di nomi, costruisci un testo unico dalla lista e poi usa quello
Per esempio …
text = '\n'.join( name_list )
Infatti, stavo per dire che forse il Giuspa passa l’array di nomi a rs.Notes ma quest’ultimo viene sovrascritto valore su valore fino ad arrivare a fine lista (per questo si ritrova solo con l’ultimo); invece, come ben dici, bisogna prima creare il testo concatenando tutti i valori dell’array e poi passarlo a rs.Notes (tutte deduzioni dato che di Python ne so na pyppa)
Deduci, deduci, Lucio !
… che qui servono rinforzi …
Bella pensata ! … Chissa’ cosa succcede dandogli una lista, bisogna provare …
( … ma adesso sto uscendo dall’ufficio … )
EDIT:
Dandogli la lista di nomi da’ errore … sembra logico …
esattamente così.
Da rs.GetObjects creo una lista con i nomi. Ma alla fine ho una lista…e non rieco a convertirlo in un unico testo multilinea.
Peraltro all’editor non sembra piacere la newline (’\n’)…
Va bene questo? 4 oggetti hanno un nome e gli altri due no.
Ciao Vittorio
ListaNotes.py (276 Byte)ListaNotes2.py (275 Byte)
Scusa, in che senso ?
Parli di EditPythonScript ?
Si parlo di lui
Funziona anche con ‘\n’ . Guarda ListaNotes2
Ciao Vittorio
ho un file con oggetti che hanno un nome. Lancio lo script e succede questo:
…edit:
mi succede quando seleziono insieme oggetti con e senza nome
Scusa, sei sicuro che tutti gli oggetti selezionati abbiano un nome ?
Semprerebbe che ObjectName() resituisca None, che a sua volta fa inca**are l’operatore +
esatto Emi.
Allora potresti inserire un controllo
In modo da aggiungere il nome sole se … hai un nome da aggiungere
if nome:
lista = lista + nome + '\n'
Questo funziona perchè ho messo un controllo se selezioni oggetti senza nome
Vittorio
ListaNotes2.py (341 Byte)
Grazie a tutti !!!
Non riuscivo a impostare i dati con nuova linea perchè quello che ricavavo era una lista[] e non delle stringhe…
Una volta diventate stringhe il ‘\n’ funziona…