# GetPoint RCommon

**URL:** <https://it.discourse.mcneel.com/t/getpoint-rcommon/5042>\
**Category:** Scripting e Programmazione\
**Created:** [25 Marzo 2023, 12:42pm UTC](https://it.discourse.mcneel.com/t/getpoint-rcommon/5042 "2023-03-25T12:42:35Z")\
**Posts on this page:** 8\
**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:** [25 Marzo 2023, 12:42pm UTC](https://it.discourse.mcneel.com/t/getpoint-rcommon/5042/1 "2023-03-25T12:42:35Z")

</div>

```auto
go = rh.Input.Custom.GetPoint()
go.SetCommandPrompt("Select Point")
go.AcceptNothing(True)
go.Get()

```

> AcceptNothing(self: GetBaseClass, enable: bool)  
> If you want to allow the user to be able to press enter in order to  
> skip selecting a something in GetPoint.Get(), GetObject::GetObjects(), etc., then call AcceptNothing( true ) beforehand.
> 
> ```
> enable: true if user is able to press enter in order to skip selecting.
> 
> ```

ma usando **AcceptNothing** non dovrebbe accettare e gestire un valore nullo premendo il tasto **Invio**?

---

<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:** [25 Marzo 2023, 3:25pm UTC](https://it.discourse.mcneel.com/t/getpoint-rcommon/5042/2 "2023-03-25T15:25:47Z")

</div>

Con **AcceptNothing** l’input accetta il tasto **Enter** come risposta.  
Il risultato dell’operazione di input lo verifichi tramite il metodo  
[GetBaseClass.CommandResult Method (rhino3d.com)](https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Input_Custom_GetBaseClass_CommandResult.htm)  
oppure con  
[GetBaseClass.Result Method (rhino3d.com)](https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Input_Custom_GetBaseClass_Result.htm)

Ad esempio **GetPoint** di **rhinoscriptsyntax** utilizza **CommandResult**

```python
def GetPoint(message=None, base_point=None, distance=None, in_plane=False):
    gp = Rhino.Input.Custom.GetPoint()
    if message: gp.SetCommandPrompt(message)
    base_point = rhutil.coerce3dpoint(base_point)
    if base_point:
        gp.DrawLineFromPoint(base_point,True)
        gp.EnableDrawLineFromPoint(True)
        if distance: gp.ConstrainDistanceFromBasePoint(distance)
    if in_plane: gp.ConstrainToConstructionPlane(True)
    gp.Get()
    if gp.CommandResult()!=Rhino.Commands.Result.Success:
        return scriptcontext.errorhandler()
    pt = gp.Point()
    gp.Dispose()
    return pt

```

---

<div class="post-metadata">

**Author:** ![Sergio\_Alessi](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/sergio_alessi/32/22676_2.png) [@Sergio\_Alessi](https://it.discourse.mcneel.com/u/Sergio_Alessi)\
**Post date:** [25 Marzo 2023, 5:29pm UTC](https://it.discourse.mcneel.com/t/getpoint-rcommon/5042/3 "2023-03-25T17:29:07Z")

</div>

Per rendere il plugin user friendly lo sviluppatore memorizza e ripropone un valore  
di input inserito in precedenza. Di conseguenza il codice successivo al get deve essere  
molto più strutturato. Ma … non vedo il problema. Tutto quello che vien dopo lo devi  
gestire tu …

---

<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:** [25 Marzo 2023, 6:16pm UTC](https://it.discourse.mcneel.com/t/getpoint-rcommon/5042/4 "2023-03-25T18:16:03Z")

</div>

> [@0904](#):
>
> `go.AcceptNothing(True)`

ok provando con **CommandResult()** qui cambia il risultato, e quindi va gestito  
mentre invece se viene omesso **CommandResult()** il punto viene riportato comunque  
(credevo che venisse gestito internamente in automatico senza dover poi usare **CommandResult()**)

ths @emilio @Sergio_Alessi 👍

---

<div class="post-metadata">

**Author:** ![Sergio\_Alessi](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/sergio_alessi/32/22676_2.png) [@Sergio\_Alessi](https://it.discourse.mcneel.com/u/Sergio_Alessi)\
**Post date:** [25 Marzo 2023, 6:25pm UTC](https://it.discourse.mcneel.com/t/getpoint-rcommon/5042/5 "2023-03-25T18:25:20Z")

</div>

> [@0904](#):
>
> se viene omesso **CommandResult()** i

NON DEVI OMETTERLO!

---

<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:** [25 Marzo 2023, 9:19pm UTC](https://it.discourse.mcneel.com/t/getpoint-rcommon/5042/6 "2023-03-25T21:19:08Z")

</div>

> [@Sergio\_Alessi](#):
>
> NON DEVI OMETTERLO!

infatti lo sto usando in tutti i codici, quella stavo facendo una prova per vedere come funzionasse  
`go.AcceptNothing(True)` come già detto, credevo che il punto non venisse proprio accettato  
mentre invece il punto viene accettato, ma **CommandResult()** ritorna **cancel**

---

<div class="post-metadata">

**Author:** ![Sergio\_Alessi](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/sergio_alessi/32/22676_2.png) [@Sergio\_Alessi](https://it.discourse.mcneel.com/u/Sergio_Alessi)\
**Post date:** [25 Marzo 2023, 10:38pm UTC](https://it.discourse.mcneel.com/t/getpoint-rcommon/5042/7 "2023-03-25T22:38:48Z")

</div>

Continua a provare! 👍

---

<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:** [25 Marzo 2023, 10:48pm UTC](https://it.discourse.mcneel.com/t/getpoint-rcommon/5042/8 "2023-03-25T22:48:20Z")

</div>

certamente già sono andato oltre, questa ormai è archiviata.
