# Difficolta nell'uso di rs.command in uno script Pyton

**URL:** <https://it.discourse.mcneel.com/t/difficolta-nelluso-di-rs-command-in-uno-script-pyton/821>\
**Category:** Scripting e Programmazione\
**Created:** [1 Marzo 2016, 3:41pm UTC](https://it.discourse.mcneel.com/t/difficolta-nelluso-di-rs-command-in-uno-script-pyton/821 "2016-03-01T15:41:56Z")\
**Posts on this page:** 6\
**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:** [1 Marzo 2016, 3:41pm UTC](https://it.discourse.mcneel.com/t/difficolta-nelluso-di-rs-command-in-uno-script-pyton/821/1 "2016-03-01T15:41:56Z")

</div>

buongiorno e buon anno , visto che scrivo per la prima volta nel 2016.

devo proiettare alcune curve su una superficie sviluppabile e poi sviluppare il tutto in piano:  
dopo aver fatto la proiezione di ogni singola curva e creato le nuove curve proiettate  
da tastiera e’ semplice fare lo sviluppo :

-premi il tasto “unroll”  
-seleziona la superficie  
-seleziona le curve  
-enter  
e va tutto a posto

Allora ho fatto uno script in python.Nella prima parte seleziono le curve da proiettare e la superficie, e le proietto una alla volta mettendo i nuovi Guid in un lista.  
Nella seconda parte tento di sviluppare in piano la superficie e le nuove curve su di essa proiettate .  
ecco lo script:

################################  
import rhinoscriptsyntax as rs  
import scriptcontext  
import math  
import Rhino  
import Rhino.Geometry as rg  
import System  
import time

n=0  
listac=[]

curvids = rs.GetObjects(“seleziona le curve” , 4)  
surfid = rs.GetObject(“seleziona una superficie”,8)

_########## qui sotto proietto ogni curva sulla superficie_  
for c in curvids:  
cmd1 = "\_Pull " + "\_Selid " + str© + "L=No D=No O=Current " + “\_Enter” + " \_Selid " + str(surfid) + " \_Enter"  
rs.Command(cmd1)  
listac.append(rs.FirstObject())  
rs.UnselectAllObjects()  
rs.ClearCommandHistory()  
n=n+1  
print "proiettata “+ str(n) +” di " + str(len(curvids))

_##### qui sotto sviluppo la superficie e le curve proiettate i cui guid sono elencati in “listac”_

cmd2="~\_UnrollSrf “+”\_Selid " + str(surfid) + " \_Selid" + str(listac) + " \_Enter"  
rs.Command(cmd2)

_############ fine_

Risultato : riesco ad eseguire solo la prima parte del "cmd2 " ( penultima ed ultima riga), cioe’ sviluppo in piano la superficie, ma non ho notizia delle curve . Tutte le variazioni sul tema non hanno dato frutti.

Si tratta di scoprire come scrivere la frase cmd2 affiche vengano prese in considerazione le curve della “listac”.  
Avete qualche idea su come uscirne ?

un fiducioso 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:** [1 Marzo 2016, 3:50pm UTC](https://it.discourse.mcneel.com/t/difficolta-nelluso-di-rs-command-in-uno-script-pyton/821/2 "2016-03-01T15:50:52Z")

</div>

Ciao Franco

… Sono di fretta, scusa, dico solo una cosa …

Se non prendo abbagli …  
Se i Guid sono in listac non pui dire Selid str( listac )  
Devi selezionare con Selid ognuna delle curve comprese nella lista  
Con un ciclo dovrebbe essere semplice costruire la stringa voluta da passare a rs.Command()

Ciao

---

<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:** [1 Marzo 2016, 4:07pm UTC](https://it.discourse.mcneel.com/t/difficolta-nelluso-di-rs-command-in-uno-script-pyton/821/3 "2016-03-01T16:07:10Z")

</div>

ciao Emilio,  
ho fatto un piccolo ciclo ed ora funziona . eccolo:

import rhinoscriptsyntax as rs  
import scriptcontext  
import math  
import Rhino  
import Rhino.Geometry as rg  
import System  
import time

n=0  
listac=[]  
cmd3=""  
curvids = rs.GetObjects(“seleziona le curve” , 4)  
surfid = rs.GetObject(“seleziona una superficie”,8)

# qui sotto proietto ogni curva sulla superficie

for c in curvids:  
cmd1 = "\_Pull " + "\_Selid " + str© + "L=No D=No O=Current " + “\_Enter” + " \_Selid " + str(surfid) + " \_Enter"  
rs.Command(cmd1)  
listac.append(rs.FirstObject())  
rs.UnselectAllObjects()  
rs.ClearCommandHistory()  
n=n+1  
print "proiettata “+ str(n) +” di " + str(len(curvids))

# qui sotto sviluppo la superficie e le curve proiettate i cui guid sono elencati in “listac”

for e in listac:  
cmd3 = cmd3 + " \_Selid " + str(e)  
print cmd3

cmd2="~\_UnrollSrf “+”\_Selid " + str(surfid) + cmd3 + " \_Enter"  
rs.Command(cmd2)

Grazie Ciao  
franco

---

<div class="post-metadata">

**Author:** ![giuseppe](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/giuseppe/32/16416_2.png) [@giuseppe](https://it.discourse.mcneel.com/u/giuseppe)\
**Post date:** [1 Marzo 2016, 4:59pm UTC](https://it.discourse.mcneel.com/t/difficolta-nelluso-di-rs-command-in-uno-script-pyton/821/4 "2016-03-01T16:59:12Z")

</div>

Ciao Franco!  
…solo per mandarti un saluto!!!

---

<div class="post-metadata">

**Author:** ![vittorio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/vittorio/32/16755_2.png) [@vittorio](https://it.discourse.mcneel.com/u/vittorio)\
**Post date:** [1 Marzo 2016, 6:30pm UTC](https://it.discourse.mcneel.com/t/difficolta-nelluso-di-rs-command-in-uno-script-pyton/821/5 "2016-03-01T18:30:58Z")

</div>

Ciao Franco  
Ti consiglio di non usare rs.Command ma usa le funzioni rs…  
Qui sotto lo script in sole 11 righe . Molto semplice e più chiaro

```auto

import rhinoscriptsyntax as rs.
def a():
    curve=rs.GetObjects("seleziona curve da proiettare",4)
    surf=rs.GetObject("seleziona superficie",8)
    newcrv=[]
    for crv in curve:
       crvpull= rs.PullCurve(surf,crv)
       newcrv.append(crvpull)
    rs.UnrollSurface(surf,False,newcrv)
a()

```

Vittorio

---

<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:** [2 Marzo 2016, 4:05pm UTC](https://it.discourse.mcneel.com/t/difficolta-nelluso-di-rs-command-in-uno-script-pyton/821/6 "2016-03-02T16:05:53Z")

</div>

Grazie Vittorio,  
molto semplice ed elegante.  
A forza di incaponirsi su una soluzione ci si complica la vita da soli.  
ne approfitto per salutare Giuseppe: Ciao  
franco
