# RCommon Input Oggetti

**URL:** <https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955>\
**Category:** Scripting e Programmazione\
**Created:** [2 Aprile 2024, 2:14pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955 "2024-04-02T14:14:19Z")\
**Posts on this page:** 20\
**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 Aprile 2024, 2:14pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/1 "2024-04-02T14:14:19Z")

</div>

```auto
import Rhino

rc, obj_ref = Rhino.Input.RhinoGet.GetOneObject("Select curve", True, Rhino.DocObjects.ObjectType.Curve)
print obj_ref

objj = Rhino.Input.Custom.GetObject()
objj.Get()
print objj.Object(0)

```

in **objj.Object(0)** ha bisogno di un argomento e di consueto viene usato lo **0**  
ma anche cambiando lo 0 con un altro valore il risultato è sempre lo stesso.

---

<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 Aprile 2024, 5:43pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/2 "2024-04-02T17:43:26Z")

</div>

> [@0904](#):
>
> cambiando lo 0 con un altro valore il risultato è sempre lo stesso

Non su Rhino 6.  
Comunque, dato che Get() seleziona un solo oggetto, non ha senso andare a vedere cosa restituisce Object() con indici maggiori di zero.

---

<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 Aprile 2024, 8:14pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/3 "2024-04-02T20:14:29Z")

</div>

> [@emilio](#):
>
> Non su Rhino 6.

torna un errore?

---

<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 Aprile 2024, 8:16pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/4 "2024-04-02T20:16:48Z")

</div>

Tu dici che il risultato e’ lo stesso.  
Mostralo.

---

<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 Aprile 2024, 8:19pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/5 "2024-04-02T20:19:57Z")

</div>

```auto
Select object
<Rhino.DocObjects.ObjRef object at 0x000000000000002B [Rhino.DocObjects.ObjRef]>

Select object
<Rhino.DocObjects.ObjRef object at 0x000000000000002C [Rhino.DocObjects.ObjRef]>

Select object
<Rhino.DocObjects.ObjRef object at 0x000000000000002D [Rhino.DocObjects.ObjRef]>

```

```auto
print objj.Object(0)

print objj.Object(1)

print objj.Object(2)

```

---

<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 Aprile 2024, 8:20pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/6 "2024-04-02T20:20:26Z")

</div>

a me sembra lo stesso risultato. . .

---

<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 Aprile 2024, 8:21pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/7 "2024-04-02T20:21:44Z")

</div>

Io vedo 3 indirizzi diversi.

> [@0904](#):
>
> `0x000000000000002B`

> [@0904](#):
>
> `0x000000000000002C`

> [@0904](#):
>
> `0x000000000000002D`

---

<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 Aprile 2024, 8:24pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/8 "2024-04-02T20:24:05Z")

</div>

questo lo vedo anch’io, ma se è quella la differenza cambiando il valore a cosa serve ciò?

---

<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 Aprile 2024, 8:27pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/9 "2024-04-02T20:27:16Z")

</div>

comunque non vedo corrispondenza

`<Rhino.DocObjects.ObjRef object at 0x000000000000002E [Rhino.DocObjects.ObjRef]>`

sopra il risultato di `print objj.Object(12)`

quindi sembra che continua la sequenza che precede

---

<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 Aprile 2024, 8:32pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/10 "2024-04-02T20:32:03Z")

</div>

> [@0904](#):
>
> questo lo vedo anch’io

Quindi non e’ lo stesso risultato.

> [@0904](#):
>
> a cosa serve ciò?

Non credo di capire di cosa parli …

Comunque, come sappiamo **Object(0)** restituisce l’ **ObjRef** dell’oggetto selezionato.  
Gli altri valori sono praticamente … “monnezza”.  
RhinoCommon non ci dice niente di quei valori, non sappiamo niente di loro, non c’e’ motivo di usarli.

Per passare dal sesso degli angeli alle cose concrete … hai provato, per esempio, a ricavare la geometria da quei 3 valori ?

---

<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 Aprile 2024, 8:43pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/11 "2024-04-02T20:43:04Z")

</div>

> [@emilio](#):
>
> hai provato, per esempio, a ricavare la geometria da quei 3 valori ?

```auto
print objj.Object(0)
print objj.Object(0).Object()
print objj.Object(0).Object().Geometry

```

se intendi tipo questo sopra si:

```auto
<Rhino.DocObjects.ObjRef object at 0x0000000000000043 [Rhino.DocObjects.ObjRef]>
CurveObject: (unnamed) (0)
<Rhino.Geometry.NurbsCurve object at 0x0000000000000044 [Rhino.Geometry.NurbsCurve]>

```

sopra il risultato ritornato.

dici che è inutile avere la risposta alla domanda che ho posto. . .

---

<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 Aprile 2024, 8:47pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/12 "2024-04-02T20:47:39Z")

</div>

> [@0904](#):
>
> sopra il risultato ritornato.

OK.  
Ma hai provato a fare lo stesso con **Object(1)** e **Object(2)**?

> [@0904](#):
>
> domanda che ho posto. . .

Non ho capito qual e’ la domanda di cui parli.  
Puoi ripeterla per favore ?

---

<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 Aprile 2024, 8:51pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/13 "2024-04-02T20:51:51Z")

</div>

volevo sapere a cosa servisse

```auto
print objj.Object(0)

```

cambiando il valore dello **0**  
il risultato è sempre lo stesso:

```auto
[Rhino.DocObjects.ObjRef]

```

ipotizzo: magari cambia con il **GetMultiple**?

---

<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 Aprile 2024, 8:54pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/14 "2024-04-02T20:54:31Z")

</div>

> [@0904](#):
>
> il risultato è sempre lo stesso:

Ripeti tutti e 3 i **print** che hai scritto per **Object(0)**  
Compresi RhinoObject e Geometry

---

<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 Aprile 2024, 8:57pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/15 "2024-04-02T20:57:41Z")

</div>

> [@emilio](#):
>
> Ripeti tutti e 3 i **print** che hai scritto per **Object(0)**  
> Compresi RhinoObject e Geometry

```auto
objj = Rhino.Input.Custom.GetObject()
objj.Get()
print objj.Object(0)
print objj.Object(0).Object()
print objj.Object(0).Object().CurveGeometry

```

```auto
<Rhino.DocObjects.ObjRef object at 0x0000000000000065 [Rhino.DocObjects.ObjRef]>
CurveObject: (unnamed) (0)
<Rhino.Geometry.NurbsCurve object at 0x0000000000000066 [Rhino.Geometry.NurbsCurve]>

```

sembra come prima cambia sempre indirizzo di memoria dovrebbe essere. . .

---

<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 Aprile 2024, 9:01pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/16 "2024-04-02T21:01:28Z")

</div>

> [@0904](#):
>
> ipotizzo: magari cambia con il **GetMultiple**?

sembra proprio questo il punto cardine:

```auto
objj = Rhino.Input.Custom.GetObject()
objj.GetMultiple(1,0)
print objj.Object(0).Object()
print objj.Object(1).Object()

```

```auto
CurveObject: (unnamed) (0)
PointObject: (unnamed) (0)

```

mah, quindi in teoria utilizzando **objj.Get()** non ci sarebbe bisogno di nessun parametro. . .

ps (magari serve con gli oggetti raggruppati o cose simili)

---

<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 Aprile 2024, 9:04pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/17 "2024-04-02T21:04:46Z")

</div>

> [@0904](#):
>
> sembra come prima cambia

Salvio, come te lo devo dire ?  
Prova a ricavare la geometria da Object(1) e Object(2).

Cosi’ verifichi se danno lo stesso risultato di Object(0)

---

<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 Aprile 2024, 9:15pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/18 "2024-04-02T21:15:40Z")

</div>

> [@emilio](#):
>
> Prova a ricavare la geometria da Object(1) e Object(2).

con la geometria da un errore

```auto
print objj.Object(10).Object().CurveGeometry

```

sopra è esempio che ho fatto, che torna errore

se invece intendi altro, posta la riga che dici di mandare in print

---

<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 Aprile 2024, 9:25pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/19 "2024-04-02T21:25:22Z")

</div>

> [@0904](#):
>
> con la geometria da un errore

Appunto.  
Quindi e’ confermato che, se usiamo Get(), Object(0) fa quello che dice RhinoCommon: ci permette di ottenere l’oggetto selezionato.  
Object(1) ecc. non servono a niente … e non e’ scritto da nessuna parte che abbiano un qualche significato o utilizzo.  
Non sono per niente la stessa cosa di Object(0).

> [@0904](#):
>
> magari cambia con il **GetMultiple**?

Ovviamente, se selezioni piu’ di un oggetto, cambia il numero di oggetti che puoi ottenere tramite Object(), usando i vari indici.

Object() funziona sempre allo stesso modo, cambiano l’indice ottieni gli oggetti selezionati.  
Certo se selezioni 3 oggetti non puoi ottenerne 4, cosi’ come se selezioni un oggetto non puoi ottenerne 2 o 3.

Poi se Object() ti turba, usa Objects(), cosi’ ottieni direttamente una array con tutti gli oggetti selezionati.

[https://developer.rhino3d.com/api/rhinocommon/rhino.input.custom.getobject/objects](https://developer.rhino3d.com/api/rhinocommon/rhino.input.custom.getobject/objects)

---

<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 Aprile 2024, 9:42pm UTC](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955/20 "2024-04-02T21:42:22Z")

</div>

> [@emilio](#):
>
> Non sono per niente la stessa cosa di Object(0).

ok, era proprio questa prova che volevo ottenere, che non sono la stessa cosa  
e per questo, che secondo me errore avrebbe dovuto verificarsi anche con:

```auto
print objj.Object(10)

```

e non solo con:

```auto
print objj.Object(10).Object().CurveGeometry

```

ricapitolando, se queste tre strighe non sono la stessa cosa:

```auto
print objj.Object(0)
print objj.Object(1)
print objj.Object(2)

```

una volta che il valore è diverso da 0 dovrebbe ritornare errore,  
per lo meno è quello che seguendo il ragionamento degli indici.

(ma di sicuro manca qualcosa che non so)

[Pagina seguente](https://it.discourse.mcneel.com/t/rcommon-input-oggetti/5955.md?page=2)
