> import Rhino
> curve.ExtremeParameters(Rhino.Geometry.Vector3d(1,0,0))
ma la stringa sopra postata è l’unico modo per indicargli il vettore?
“Rhino.Geometry.Vector3d(1,0,0)” questa parte non’è possibile sostituirla in altro modo?
> import Rhino
> curve.ExtremeParameters(Rhino.Geometry.Vector3d(1,0,0))
ma la stringa sopra postata è l’unico modo per indicargli il vettore?
“Rhino.Geometry.Vector3d(1,0,0)” questa parte non’è possibile sostituirla in altro modo?
Ciao Salvio
Puoi scrivere
import Rhino.Geometry.Vector3d as v3
a = v3( 11, 22, 33 )
print( a )
ciao Emilio, scusa per l’equivoco
intendevo senza inserire nel codice la stringa,
in pratica non aver bisogno della libreria “Rhino”
avevo provato senza librerie del tipo: 1,0,0 con le varie parentesi e/o virogolette ma nulla, come
anche ho cercato nella libreria rhinoscriptsyntax ma non mi sembra ci sia qualcosa utile. . . .
Importando rhinoscriptsyntax anziche’ Rhino:
import rhinoscriptsyntax as rs
a = rs.coerce3dvector( ( 11, 22, 33 ) )
print( a )
EDIT:
Questo pero’ non e’ vero.
rhinnoscriptsyntax in ogni caso importa Rhino, perche’ e’ la libreria che usa.
Poi nell’istruzione che mostri stai usando un oggetto Rhino.Geometry.Curve, che e’ definito in RhinoCommon (cioe’ in “Rhino”).
Se vuoi eseguire quella istruzione, la libreria “Rhino” la devi utilizzare.
vedi perché ho chiesto se c’era un’altro modo, essendo che già con uno solo e vado in confusione
(coerce3dvector) ci dovevo arrivare da solo
riguardo alle librerie, comprendo e condivido ciò che dici,
qui mi collego a quanto detto sopra, nel senso,
meglio padroneggiare al meglio una sola libreria,
che districarsi in diverse ma senza usarle al pieno,
sul fatto del caricare rhinnoscriptsyntax si va ad importare sempre Rhino,
pensavo che fosse una parte della libreria principale cioè Rhino o sbaglio?
invece mi stai dicendo che importando rhinnoscriptsyntax carico anche Rhino?
non saprei, a questo punto sono confuso ancor di più
mi domando: come mai si necessita di importarle entrambe?
Volevo dire che rhinoscriptsyntax importa “Rhino”, quindi la libreria deve essere disponibile.
Pensavo che tu parlassi di eseguire lo script in un ambiente diverso da Rhino, quindi senza poter accedere a “Rhino”. Ma se siamo sembra in ambito Rhino, non ci sono problemi, rhinoscriptsymtax puo’ importare quello che gli serve e tu non devi preoccuparti.
RhinoCommon (cioe’ il modulo “Rhino”) e’ una libreria per dotNET.
E’ scritta in C# ma si puo’ utilizzare anche con Python (non indaghiamo sul come perche’ divagheremmo )
rhinoscriptsyntax e’ una libreria scritta in Python, non puoi usarla con altri linguaggi.
Ed e’ scritta richiamando le classi di “Rhino”.
Puoi vedere tu stesso qui:
rhinoscriptsyntax/Scripts/rhinoscript at rhino-6.x · mcneel/rhinoscriptsyntax · GitHub
Clicca sui vari files per vedere il codice delle varie funzioni rhinoscriptsyntax.
Credo sia solo il modo in cui funziona Python.
Ogni libreria che richiami dal codice deve essere importata.
Quindi se tu nel tuo script usi una funzione rhinoscriptsyntax, cioe’ se da qualche parte scrivi, ad esempio
rs.CurrentLayer()
devi importare la libreria, proprio perche’ hai scritto “rs”.
Stesso discorso per RhinoCommon, se tu nello script scrivi
Rhino.Geometry.Vector3d( 1, 2, 3 )
devi importare la libreria Rhino, perche’ nello script hai scritto “Rhino”
Il fatto che a sua volta rhinoscriptsyntax utilizzi RhinoCommon non e’ influente.
Emilio, ho capito che è meglio non addentrarsi in questi meandri oscuri