Problemino con gli Array "credo"

Vuoi dire generare uno script Python per Rhino, non per GH ?
… Non credo, la parametrizzazione la da’ GH.
Credo che con Python tu possa riprodurre l’azione di un componente GH,
ma il fatto di ricalcolare tutto, questo, a quanto ne so, lo fa GH stesso.

Ma sono solo mie supposizioni …
Qui ci vorrebbe Giulio ( @piac ) :slight_smile:

La definizione è sbagliata.
la i dovrebbe contenere un valore booleano… ma comunque non recuperi nulla perchè l’output va perso…

appunto era questo il mio dubbio. se la parametrizzazione rimane o viene persa . . . .
se le cose stanno così non ha senso lavorarci sopra per poi non ottenere il risultato desiderato.

poi può darsi che qualcuno intervenga e ci sorprenda dicendoci che la cosa sia fattibile magari :slight_smile:

in effetti a questo punto lo penso anch’io, si vede che anche il codice del link non funzionia.

appunto sto provando vari modi ma il filtro non riesco a utilizzarlo “non mi esce proprio come opzione”

anche se sbagliata la sintassi, sia inserendo la “i” che i num progressivi 1-2-3 funziona non da errori
la selezione di tutti gli oggetti la fa anche solo con True. non capisco come mai funziona con la “i”

bhe questo era sottoninteso, se serve selezionare solo gli ultimi oggetti creati bisogna deselezionare prima gli altri oggetti che sono già selezionati.

… ragazzi …
A me questo funziona

rhino.command “point 10,10,10”
rhino.UnselectAllObjects
obj = rhino.LastCreatedObjects()(0)
rhino.ObjectColor obj, rgb(255, 0, 0)

… e non vedo perche’ non dovrebbe … :wink: :slight_smile:

Perche’ ? Cosa fa ? :slight_smile:

… Ma il VBS non converte di tipo automaticamente ?
Suppongo che converta in booleano …

0 (Default) Return all objects.
1 Ignore block definition objects.
2 Ignore reference objects.

7

beh ho fatto questa prova scrivendo rhino.LastCreatedObjects() o rhino.LastCreatedObjects(0) non seleziona. mentre inserendo un qualsiasi altro numero sia positivo o negativo ti seleziona l’oggetto creato.

Secondo me se elimini “()(0)” funziona lo stesso.
Ma ti risulta che in vbscript si possano passare i valori sia divisi da virgola che da parentesi?

Questo l’ho visto.
Volevo dire: cosa succede quando provi ad usarlo ?
Perche’ dici che non funziona ?
Non seleziona quello che dovrebbe ?
Crasha Rhino ?
Ti chiude il rubinetto del gas ?
Cose simili ?

:smile:

Eh … e’ ora di andare a nanna …

Vero,
ma cosi’ no:

rhino.command “points 10,10,10 20,20,20 enter”
rhino.UnselectAllObjects
obj = rhino.LastCreatedObjects()(0)
rhino.ObjectColor obj, rgb(255, 0, 0)

Cioe’ se togli ()(0) colora 2 punti anziche’ uno
Perche’ non essendoci l’indice, prende tutta la array invece che un solo elemento

… Che c … ? ! ?
Quali valori ?

Qui c’e’ semplicemente una chiamata di funzione e poi (non so come chiamarla …) una indicizzazione di una array, cioe’ l’estrazione di un elemento dalla array:
e’ come scrivere

a = rhino.lastcreatedobjects() ’ con o senza parentesi

e poi

b = a( 0 )

Solo che, se inglobi tutto in una sola espressione, le parentesi vuote le devi mettere, se non la coppia di parentesi con lo zero dentro invece che come indice di array le prende come argomenti di funzione

Non ti sembra ? :slight_smile:

E’ quello che dicevo prima:
Converte l’argomento in booleano

Per cui lo zero diventa False
E gli altri valori diventano True

ri-buonanotte :smiley:

Si, cavolo, scusa, adesso ho elaborato con le mie piccole rotelline… giusto, una volta chiusa la parentesi dei valori passati alla funzione la secona coppia di parentesi viene letta come indice, giusto.
E quindi obj non sarebbe neppure un array bensì un valore stringa…
Non andrei mai a scrivere del codice così però… troppo difficile da interpretare successivamente in fase di debug.
Preferisco mettere le robe su due righe ma in maniera più chiara.

PS: ma arrivati a questo punto, in conclusione, il thread si cosa tratta?

Si’ certo.
Anch’io cerco sempre di scrivere cose … che magari riesco a capire … sia quando le scrivo, che dopo … :smile:

E credo sia un consiglio che tutti e due diamo al nostro amico. :slight_smile:
… A maggior ragione parlando di VBS, che con la sua sintassi molto flessibile (e a volte anche un po’ ambigua) puo’ rendere difficile capire … come lui interpreta i nostri script …:smile:

Hehe …
Un noto rompiscatole sul forum usa direbbe “come non si fa un thread” … ma la’ abbondano i semidei …
Dunque … ho dato una rapida occhiata e direi che per ora gli argomenti sono… prendo fiato … :
*Ordinamento
*Sintassi metodi RhinoScript
*Confronto tra metodi RS e comandi Rhino
*Sabbie mobili … cioe’ SelLast, LastCreatedObjects, Command, …
*Sintassi VBScript
*VBS vs Python
*Parametrizzazione
*Impostazione degli script
*Forse altro …

Si’, una cosa che ho dimenticato di consigliare, e soprattutto di fare io stesso, e’ suddividere i problemi uno per thread …

Ciao Lucio !
Ci vediamo al prossimo thread …

ahahaha dai ragazzi non mi trattate male :slight_smile:

a mia discolpa tengo a sottolineare che comunque erano tutti argomenti collegati al problema postato in partenza, non è colpa mia se risolvendo un problema ne escono altri . . . . PS spero non solo a me :slight_smile:

cmq a gran richiesta ricapitolo tutto: il codice postato da emilio come già detto funziona, per il resto a parte i confronti e spiegazioni varie che sono state date c’era il fatto che usando _SelLast bisognava ripeterlo due volte (e non si sà come mai) mi poteva anche andare bene ma si è risolto con l’intervento di lucio facendomi notare che bastava aggiungere una variabile prima del Metodo (è sono più contento essendo che non uso il Command) rimane la differenza nei Metodi LastCreatedObjects e FirstObject che mi domando come mai ci sono due Metodi che hanno un uso simile . . . . ed in fine l’ultima cosa sugli Array che avevo ipotizzato come soluzione prima che emilio mi postasse la correzione del codice e sto cercando di capire bene su come ricercare i valori di un indice confrontando i valori di un’altro indice in un Array . . . .

PS un saluto a tutti adesso scappo a pranzanre buon appetito a tutti :slight_smile:

:joy::joy::joy::+1::ok_hand::call_me_hand::vulcan_salute:

Beh dai, messa giù così allora potremmo fare un ng con un unico thread “rhino” che tanto i problemi alla fine sono tutto connessi allo stesso programma… :grin:
Scherzo eh! :wink:
Ma giusto per sapere: dobbiamo chiamarti 0904 o hai anche un nome più “umano”?

Hahahaha … grande Lucio !
Io non osavo dirlo … che mi ricorda tanto Star Wars … C3P0 R2D2 e … O9O4 … hahahahaha

Anch’io scherzo, eh ? :smile:

A proposito …
Rspondo al nostro amico … spaziale … :wink:

FirstObject ti da’ l’ultimo oggetto creato ( uno solo ) … e c’e’ dall’inizio degli script
ed e’ piuttosto affidabile.

Poi, data la disperazione degli scriptomani (non sto a raccontare cosa facevo con Rhino 2), hanno aggiunto LastCreatedObjects
che dovrebbe darti la array di oggetti creati dall’ultimo comando … su per giu’

Dai, per il prossimo problema apri una discussione nuova. :slight_smile:

credo che sia quel su per giù che mi frega essendo che era quella la mia intezione di selezionare gli oggetti creati utilizzando l’indice Array del Metodo LastCreatedObjects
il primo modo era sbagliato mentre il secondo postato dite che corretto mentre a me non funziona . . . .

il fatto e che credevo di postare giusto un paio di domande poi mi sono fatto prendere la mano e anche se mi ero ripromesso di non dedicarmi ad un’altro linguaggio di programmazione alla fine ci sono ricascato :yum:
cmq piacere salvio :slight_smile:

Ciao Salvio e benvenuto! :wink:

Piacere mio, Salvio :slight_smile:

Alla prossima.

EDIT

Ah, Salvio, volevo scusarmi per la battuta stupida:

Non so perche’, sul momento mi sembrava divertente, rileggendo mi suona offensivo ( involontarirmente )
Scusa ancora

Ciao

ma dai emilio che dici, mi sono fatto una risata infinita quando ho letto il tuo messaggio ahahahah
tranquillo sono una persona easy non me li creo certi problemi veramente :slight_smile: alla prossima :slight_smile: