# Curva che non vuole chiudersi

**URL:** <https://it.discourse.mcneel.com/t/curva-che-non-vuole-chiudersi/996>\
**Category:** Scripting e Programmazione\
**Created:** [16 Settembre 2016, 5:20pm UTC](https://it.discourse.mcneel.com/t/curva-che-non-vuole-chiudersi/996 "2016-09-16T17:20:44Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![franco](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/franco/32/16348_2.png) [@franco](https://it.discourse.mcneel.com/u/franco)\
**Post date:** [16 Settembre 2016, 5:20pm UTC](https://it.discourse.mcneel.com/t/curva-che-non-vuole-chiudersi/996/1 "2016-09-16T17:20:45Z")

</div>

saluti serali !

mi trovo con delle curve non perfettamente chiuse che derivano da offsets. Le due estremita’ sono molto vicine , ma non coincidono.

Ho provato a chiuderle con:

if not rs.IsCurveClosed© and rs.IsCurveClosable©:  
rs.CloseCurve(c, tolerance=-0.01 )

ma non si chiudono, almeno non tutte.

c’e’ qualche comando poco conosciuto che puo’ far coincidere le due estremita’ ?  
o si deve ricorrere all’ ostico rs.Command ?

scorato vi saluto  
franco

---

<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:** [16 Settembre 2016, 10:12pm UTC](https://it.discourse.mcneel.com/t/curva-che-non-vuole-chiudersi/996/2 "2016-09-16T22:12:42Z")

</div>

Ciao Franco  
Senza vedere la curva … non saprei.  
Poi bisogna vedere se hai dei vicoli, per esempio di tangenza o di forma/curvatura o altro.  
Mi sembra comunque un problema interessante da scriptare. 🙂  
Come intendi usare rs.Command eventualmente ?

---

<div class="post-metadata">

**Author:** ![franco](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/franco/32/16348_2.png) [@franco](https://it.discourse.mcneel.com/u/franco)\
**Post date:** [19 Settembre 2016, 7:18am UTC](https://it.discourse.mcneel.com/t/curva-che-non-vuole-chiudersi/996/3 "2016-09-19T07:18:00Z")

</div>

ciao Emilio,

Ho risolto ricorrendo ai grips:

import rhinoscriptsyntax as rs

obj = rs.GetObject(“Select object”)

rs.EnableObjectGrips (obj, enable=True) # mostra i grips di obj

if rs.ObjectGripsOn(obj): #verifica se i grips sono visibili =\> bool  
n\_grips= rs.ObjectGripCount(obj) # numero di grips in obj =\> int

# preleva i punti estremi

p\_iniziale=rs.ObjectGripLocation(obj, 0)  
p\_finale=rs.ObjectGripLocation(obj, (n\_grips-1))

# forza il grip iniziale a coincidere con quello finale

rs.ObjectGripLocation (obj, 0, point=p\_finale)

rs.EnableObjectGrips (obj, enable=False) # disabilita i grips

Come vedi forzo un estremita’ a coincidere con l’altra.

posso fare delle varianti :

a) calcolare il punto medio Pm fra le due estremita’ e forzale entrambi su Pm

b) estrarre il secondo ed il penultimo punto e proiettare il Pm sulla loro congiungente : continuita’ in tangenza

c) estrarre in terzo e terzultimo punto, allineare il secondo,pm ed il penultimo : continuita in curvatura

d) ed altri giochetti simili.

E cosi non si deve ricorrere al “Command”

ciao  
franco

---

<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:** [19 Settembre 2016, 10:00am UTC](https://it.discourse.mcneel.com/t/curva-che-non-vuole-chiudersi/996/4 "2016-09-19T10:00:19Z")

</div>

Grazie per aver postato lo script !

Ciao Franco
