Linguaggio C#

mai usate

import System.Windows.Forms

class HelloWorldForm(System.Windows.Forms.Form):
    def __init__(self):
        self.Text = 'Hello World'
        self.Name = 'Hello World'

form = HelloWorldForm()
form.ShowDialog()

sembra di si che ci siano esempi sia come script in Rh che in GH

Emilio mi hai superato in curva eeee :wink:

1 Mi Piace

:upside_down_face:

2 Mi Piace

Da provare. Grazie a tutti :pray:

Vorrei estrudere una superficie per ottenere un solido.
Ho provato a scrivere questo:


ma gh mi restituisce questo:

Come posso estrudere correttamente una superficie?

ps estrusioneAsseCerniera è una superficie

Be’ … il messaggio dice che non trova il metodo First()
E in effetti se non sbaglio First() appartiene a Linq e richiede una Enumerable, non la BrepFaceList che abbiamo qui.
Tra l’altro, vedo che McNeel ha cambiato le pagine Web sulla API di RhinoCommon … e non vedo nessun Indexer per BrepFaceList.
Se non ricordo male, c’era.
E supponendo che ci fosse e non sia stato eliminato, io proverei a estrarre la faccia dalla BrepFaceList indicizzandola con 0.
In alternativa, si puo’ provare a usare il metodo GetEnumerator.

ho provato così:

ma ho lo stesso errore.

Provato anche così


e l’errore è

(Se dopo brepFaces metto un punto VisualStudio mi restituisce proprietà e metodi utilizzabili, a prescindere che siano di provenienza Linq o altro. O sbaglio?)

Ho spezzato il problema e provato così:

trasformando la lista in un un array (come da indicazioni Microsoft)

e l’errore è

Non so perche’ VS ti propone First e poi ti dice che il metodo non va bene … :confused:
Come sai non conosco VS … non saprei come interpretare le sue azioni … :confused:

ToArray da dove lo hai preso ?
Te lo ha indicato VS anche quello ?
Perche’ poi giustamente ti dice che BrepFaceList non ha nessun metodo ToArray

Io posso solo ripetere che quello che conosco io, e che con Python ha sempre funzionato, e’ semplicemente estrarre il primo elemento della BrepFaceList tramite indicizzazione.

… piu’ o meno …

var brepFace = brepFaces[ 0 ];

Io proverei con quello, se poi di da’ errore, vediamo cosa dice … :slight_smile:

si.
non va, ma sono fuori adesso.

1 Mi Piace

fino al tratteggio rosso è tutto ok

… Non mi raccapezzo … :confused:

Non capisco perrche’ dice “di tipo ‘object’”
E in effetti lo diceva anche prima quando provavi a usare ToArray.
Mentre il messaggio riguardante First indicava giustamente il tipo BrepFaceArray.List
Poi suppongo che la variabile brepFace sia dichiarata prima, perche’ la linea 113
inizia subito col nome della variabile … va be’.

Ho fatto una rapida prova su Rhino 6 e non succede niente di strano …

Mi spiace, per ora non riesco a capire quale sia il problema.

Hmmm … hai provato a ‘vedere’ che la superficie estrusioneAsseCerniera sia a posto ?
Per esempio che non sia degenere o cose simili …

se porto in output del componente la lista brepFaceList vedo correttamente la superficie, quindi il problema è a seguire. Però… se compilo con VS e avvio il plugin mi fa andare avanti lo stesso senza grossi problemi (compariva un messaggio di GH, su cui ho posto una spunta per non vederlo nuovamente, era relativo a line curve path… qualcosa del genere, se ricompare lo riporto qui).

Aspetta.
Ho visto adesso dalla tua immagine che brepFace e’ un parametro in output.
Quelli hanno sempre tipo object.
A quello che ricordo, e’ meglio usarli solo per l’output.
Prima dichiari e usi le tue variabili, col tipo giusto.
Alla fine copi il valore sulla variabile di output.
Secondo me se usi una variabile diversa come BrepFace, dichiarata con var ad esempio, potrebbe funzionare.

ottimo, allora forse è questo il motivo per cui VS compila senza problemi. Grazie Emilio

1 Mi Piace

brep offset solid.gh (58,1 KB)
Questo è il file che mi chiedevi, scusa il ritardo…

Grazie Ricc, scusami tu se rispondo solo adesso, ma non ho avuto tempo.
Questo è il tuo codice:


non mi pare di trovare ciò che cerco, ma vedrò meglio, grazie

O si? :crazy_face:

l’utlima riga mi da questo errore? Perché?

solidounicoperalettone sembra essere una lista (giusto?)

i metodi di overload di Brep.CreateBooleanDifference sono:
ListaBrep, ListaBrep, tolleranza
o
Brep, Brep, tolleranza

non un mix lista e brep singola

Forse se metti “wing” in una lista funziona.

1 Mi Piace

si si funge, grazie.

Qualcuno conosce Wpf o Windows Forms?
Non trovo tutorial o manuali recenti ed esaustivi. Ho provato a seguire la playlist wpf di Camuso, ma non sempre il codice gira o è comprensibile.