# Indicare un vettore in Py

**URL:** <https://it.discourse.mcneel.com/t/indicare-un-vettore-in-py/4386>\
**Category:** Scripting e Programmazione\
**Created:** [2 Febbraio 2022, 4:02pm UTC](https://it.discourse.mcneel.com/t/indicare-un-vettore-in-py/4386 "2022-02-02T16:02:43Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [2 Febbraio 2022, 4:02pm UTC](https://it.discourse.mcneel.com/t/indicare-un-vettore-in-py/4386/1 "2022-02-02T16:02:43Z")

</div>

```auto
> 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?

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [2 Febbraio 2022, 5:25pm UTC](https://it.discourse.mcneel.com/t/indicare-un-vettore-in-py/4386/2 "2022-02-02T17:25:04Z")

</div>

Ciao Salvio

Puoi scrivere

```python
import Rhino.Geometry.Vector3d as v3

a = v3( 11, 22, 33 )
print( a )

```

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [2 Febbraio 2022, 8:30pm UTC](https://it.discourse.mcneel.com/t/indicare-un-vettore-in-py/4386/3 "2022-02-02T20:30:36Z")

</div>

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. . . .

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [2 Febbraio 2022, 9:23pm UTC](https://it.discourse.mcneel.com/t/indicare-un-vettore-in-py/4386/4 "2022-02-02T21:23:18Z")

</div>

Importando rhinoscriptsyntax anziche’ Rhino:

```python
import rhinoscriptsyntax as rs

a = rs.coerce3dvector( ( 11, 22, 33 ) )
print( a )

```

EDIT:

> [@0904](#):
>
> in pratica non aver bisogno della libreria “Rhino”

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.

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [3 Febbraio 2022, 12:27am UTC](https://it.discourse.mcneel.com/t/indicare-un-vettore-in-py/4386/5 "2022-02-03T00:27:38Z")

</div>

> [@emilio](#):
>
> ```auto
> import rhinoscriptsyntax as rs
> 
> a = rs.coerce3dvector( ( 11, 22, 33 ) )
> print( a )
> 
> ```

🤦‍♂️ 🤦‍♂️

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?

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [3 Febbraio 2022, 8:48am UTC](https://it.discourse.mcneel.com/t/indicare-un-vettore-in-py/4386/6 "2022-02-03T08:48:57Z")

</div>

> [@0904](#):
>
> invece mi stai dicendo che importando rhinnoscriptsyntax carico anche Rhino?

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. 🙂

> [@0904](#):
>
> pensavo che fosse una parte della libreria principale cioè Rhino o sbaglio?

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](https://github.com/mcneel/rhinoscriptsyntax/tree/rhino-6.x/Scripts/rhinoscript)  
Clicca sui vari files per vedere il codice delle varie funzioni rhinoscriptsyntax.

> [@0904](#):
>
> come mai si necessita di importarle entrambe?

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

```python
rs.CurrentLayer()

```

devi importare la libreria, proprio perche’ hai scritto “rs”.  
Stesso discorso per RhinoCommon, se tu nello script scrivi

```python
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.

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [3 Febbraio 2022, 2:11pm UTC](https://it.discourse.mcneel.com/t/indicare-un-vettore-in-py/4386/7 "2022-02-03T14:11:50Z")

</div>

🤯 🤯

Emilio, ho capito che è meglio non addentrarsi in questi meandri oscuri 🤣 🤣
