C# Scripting in Gh

grazie per la ricerca :+1:

io invece stavo proprio leggendo alcune info sul C# per capire un pochino con chi sto interagendo :upside_down_face:

ma alla fine se ho inteso bene, anche C# in gran parte viene definito come linguaggio interpretato. . .

possibile che qualsiasi linguaggio inizio, non’é mai fine a se stesso ahahahah

comunque per carità di sicuro tra C# e VBS/Py credo che già si possa considerare un bel passo in avanti
anche considerando interazione con Rhino se no per il fatto che con VBS/Py la strada ormai era già chiusa
vedendo dei videi poi non ne sono sicuro, è possibile con C# creare anche inferfacce grafiche in Rh?

… C++ e ti togli ogni pensiero! :joy: :joy: :rofl:

Veramente ci ho solo messo mezza giornata per ricordarmelo … :grinning_face_with_smiling_eyes:

Inizialmente funzionava come Java, con una virtual machine.
Adesso potrebbe anche generare direttamente file eseguibili … non sono riuscito a capire … :con
Ma non credo cambi niente per noi. :slight_smile:

In che senso ?

Come credo di aver gia’ accennato, secondo me e’ un passo in avanti dato che dobbiamo utilizzare RhinoCommon, che e’ una libreria per C#.
Per il resto credo che anche Python vada benissimo per i nostri script, come andrebbero bene, in teoria, anche diversi altri linguaggi.

RhinoCommon comprende alcuni semplici widget, tipo quelli che puoi usare anche con rhinoscriptsyntax.
Per cose piu’ evolute credo si debba usare Eto:

… Ma per questo mi tiro fuori da subito.
Sono cose che mi mandano in confusione … :exploding_head:

… Anche per questo, rinuncio ! :grinning:

prima di iniziare il percorso con Rh nel mio approccio in Py avevo realizzato qualcosina con interfaccia
ma non sapevo che fosse possibile farlo addirittura con Py in Rh, credevo fosse obbligatorio C/C++
ps mi ero sempre chiesto a cosa servisse ETO ahahahah buono a sapersi meglio tardi che mai :+1:

CheckBox Class
Control to show a two or three state check box
Inheritance Hierarchy
System.Object
  Eto.Widget
    Eto.Forms.BindableWidget
      Eto.Forms.Control
        Eto.Forms.CommonControl
          Eto.Forms.TextControl
            Eto.Forms.CheckBox

Namespace:  Eto.Forms
Assembly:  Eto (in Eto.dll) Version: 2.5.3-dev
Syntax
C#
VB
F#
Copy

public class CheckBox : TextControl

ma alla fine anche con ETO bisogna conoscere/usare bene le classi che si usano con C/C++/C#
in pratica come va e come viene se si vogliono fare determinate cose si viene incanalati in certe strade. . .

Il Python usato da Rhino e’ IronPython, cioe’ un interprete Python scritto per l’ambiente .NET di Microsoft, che e’ l’ambiente scelto da McNeel.
( Per Rhino 8 sembra che si potra’ utilizzare anche CPython, ma sempre sfruttando un modo, differente da quello di prima, per interfacciarsi con .NET )
Quindi e’ logico aspettarsi di poter fare dei plug-in, anche con interfaccia grafica, con Python.

Non c’entra col tuo studio, ma, visto che ne stiamo parlando, una cosa che non ho mai capito e’ perche’ McNeel parli di C/C++ per i plug-in.
Io non ho mai visto un esempio, o una spiegazione, che mostri come usare il C.
Penso che probabilmente i programmatori non abbiano bisogno di queste spiegazioni … :confused:

:melting_face:

CRhinoCommand::result CCommandTest::RunCommand( const CRhinoCommandContext& context )
{
  ON_Plane plane = ON_xy_plane;
  double height = 10.0;
  double radius = 5.0;
  BOOL bCapBottom = FALSE;
 
  ON_Cone cone( plane, height, radius );
  if( cone.IsValid() )
  {
    ON_Brep* cone_brep = ON_BrepCone( cone, bCapBottom );
    if( cone_brep )
    {
      CRhinoBrepObject* cone_object = new CRhinoBrepObject();
      cone_object->SetBrep( cone_brep );
      context.m_doc.AddObject( cone_object );
      context.m_doc.Redraw();
    }
  }
 
  return CRhinoCommand::success;
}

non sono pratico, ma nel link viene indicato C/C++ e l’esempio sopra non mi sembra C#
(e mi sembra un bel po complesso)

quindi con CPython dici che non’é ancora finita per Python nell’utilizzo in Rhino?

ps comunque tengo a precisare, la decisione di iniziare col C# molto è dato dal fatto che credo sia importante capire/imparare ad usare le classi e osservando tali codici mi sembra che ne usa un bel po. . .

Infatti a me sembra C++, non C.

Ormai gli utilizzatori sono abituati a Python e hanno un mucchio di script.
( E personalmente suppongo che convincere Steve a mollare Python sarebbe dura … :wink: )
Non credo proprio che McNeel abbandoni Python, piuttosto, come sembra, visto che il futuro di IronPython e’ incerto, si passera’ a CPython, ma non dovrebbe cambiare molto per gli script, anzi credo che McNeel fara’ il possibile affinche’ i vecchi script continuino a funzionare, o al massimo fara’ qualcosa per convertire i vecchi script, se proprio ce ne fosse bisogno.
Ma sono solo supposizioni, e’ un po’ che non seguo le notizie relative sul forum USA … :confused:
… Devo andare a ficcare il naso … :sunglasses:

scusa aveno aggiunto sotto la riga errata (e mi sembra un bel po complesso) mi riferivo all’esempio C++

fai bene a ttere gli occhiali cosi passi inosservato :wink:
non conosco CPython, io comunque mi riferivo al fatto che IPython, è quello, e non viene/verrà aggiornato
mentre da quel poco che ho visto C# in due anni è passato dalla V8 a V10 ed ha anche strumenti potenti.

1 Mi Piace