This page contains a Flash digital edition of a book.
Ricorrere a Command() e' una cosa che accade di dover fare, prima o poi, lavorando sugli script. Una volta capitava molto piu' spesso perche' c'erano molti meno metodi RhinoScript. Oggi per fortuna ce ne sono parecchi, ma restano comunque molte comandi Rhino a cui non corrisponde nessun metodo RhinoScript. In questi casi ci tocca usare il metodo Command(), che come sappiamo ci permette di eseguire un comando Rhino, fornito sotto forma di stringa. La cosa di solito non fa piacere perche' la costruzione del testo del comando puo' essere complicata. Inoltre recuperare gli eventuali oggetti generati dall'operazione (cioe' recuperare i loro identificatori) e' tutt'altro che semplice ed affidabile. Ma tant'e' ... quando e' necessario, come in questo caso, rassegniamoci ad usare Commad(). In questo caso particolare la cosa e' abbastanza semplice: il comando non e' complicato. Il comando da usare e' 'Split', che come ben sappiamo ci chiede prima di selezionare gli oggettti da dividere e poi gli oggetti che dividono. Per semplificare al massimo il comando da passare a Command(), preselezioniamo l'oggetto da splittare, in questo caso la superficie. Per questa operazione il metodo RhinoScript esiste e lo usiamo subito: SelectObject(), come argomento naturalmente gli diamo l'identificatore della superficie, cioe' 'su'. Ora possiamo usare Command(). Il testo da fornirgli e' composto dal comando 'Split' e dagli oggetti divisori, per cosi' dire, essendo gia' stato preselezionato l'oggetto da dividere. Per selezionare gli oggetti da comando testo usiamo 'Selid' seguito dall'identificatore dell'oggetto. Qui vogliamo selezionare le due curve, quindi per ognuna aggiungiamo al testo del comando il 'Selid' e l'identificatore della curva. Ricordiamo che le due curve le abbiamo salvate in 'cu3' e 'cu4'. Dopo di che bisogna aggiungere un 'Enter' finale, per terminare la selezione. Il comando e' pronto, lo eseguiamo con Command() e Rhino ci splitta la superficie in 3 parti. Inseriamo ancora un 'UnselectAllObjects' per deselezionare le superfici ottenute e siamo a posto.


Page 1  |  Page 2  |  Page 3  |  Page 4  |  Page 5  |  Page 6  |  Page 7  |  Page 8  |  Page 9  |  Page 10  |  Page 11  |  Page 12  |  Page 13  |  Page 14  |  Page 15  |  Page 16  |  Page 17  |  Page 18  |  Page 19  |  Page 20  |  Page 21  |  Page 22  |  Page 23  |  Page 24  |  Page 25  |  Page 26  |  Page 27  |  Page 28  |  Page 29  |  Page 30  |  Page 31  |  Page 32  |  Page 33  |  Page 34