Message: list is not callable non capisco ....dove sia l' errore

Ho voluto tradurre in Python un Rhinoscript
Ma ottengo questo messaggio di errore e non capisco quale sia il problema.

Message: list is not callable
Traceback:
_ line 13, in Adagia, “I:\lavori\a_esempi\divano\adagia.py”_
_ line 18, in , "I:\lavori\a_esempi\divano\adagia.py_

=========================================

import rhinoscriptsyntax as rs

def Adagia():
surface_id = rs.GetObject(“Seleziona superice su cui adaggiare”, rs.filter.surface)
if surface_id is None : return

strObjects = rs.GetObjects("Seleziona Oggetti da adaggiare su superfice")
if strObjects is None: return
rs.EnableRedraw (False)
for sObject in strObjects :
    arrBox = rs.BoundingBox(sObject)
    arrPoints = [arrBox(0),arrBox(1),arrBox(2),arrBox(3)]
    arrTargets = rs.ProjectPointToSurface(arrPoints, surface_id, [0, 0, -1])
    rs.OrientObject(sObject, arrPoints, arrTargets)
rs.EnableRedraw (True)

if name == “main”: ( qui discourse mi ha eliminato gli underscore su name e main …ma ci sono)
Adagia()

Ciao Mario

Hai ancora l’occhio da VBS … :slightly_smiling:
L’indice delle array o liste che dir si voglia deve essere tra parentesi quadre.

Ciao !

P.S.

per formattare meglio gli script puoi inserirli tra due linee:
quella iniziale con 3 ‘backticks’, uno spazio e poi 'python’
quella finale solo i 3 ‘backticks’

Questo e’ il risultato

import rhinoscriptsyntax as rs

def Adagia():
    surface_id = rs.GetObject("Seleziona superice su cui adaggiare", rs.filter.surface)
    if surface_id is None : return

    strObjects = rs.GetObjects("Seleziona Oggetti da adaggiare su superfice"
        if strObjects is None: return
        rs.EnableRedraw (False)

    for sObject in strObjects :
        arrBox = rs.BoundingBox(sObject)
        arrPoints = [arrBox[0],arrBox[1],arrBox[2],arrBox[3]]
        arrTargets = rs.ProjectPointToSurface(arrPoints, surface_id, [0, 0, -1])
        rs.OrientObject(sObject, arrPoints, arrTargets)
        rs.EnableRedraw (True)
    
Adagia()

Hmmmm … oggi Discourse e’ in fase ‘Disgrace’ … incasina anche questa formattatura … va beh

Grazie Emilio…

Ogni linguaggio ha i suoi Array …ma come al solito quelli della MIcrosoft sono diversi dagli altri.
In effetti Php Javascript usano le parentesi quadre per gli indici …non ci avevo pensato.

Scusa Emilio…

C’e’ modo di inserire gli script di Python in un bottone come per VB ?
Sembrerebbe di no…ma speso di sbagliarmi

Certo che si
Nello apposito spazio per i comandi del buttun.

inizi con:
!-RunPythonScript
Apri la “parente” (
schiaffi lo scrippete

Chiudi la "parente )

e l’omo campa

RunPythonScript
Credo funzioni alla stessa maniera…

Che il Giuspa mi ha battuto sul tempo

…mmmmazza… roba da vecchio NG…:ok_hand:
…ma come abbiamo fatto per anni a vivere senza le…faccccccineee…:pray:

emmelodiciamme! ma te metto le mani sulle faccine!!! :raised_hands: :joy:

Hehe
Pero’ se non sbaglio e’ proprio il caro (per qualcuno) vecchio Basic che e’ fatto cosi’.

Oddio … credo di aver difeso Microsoft … la vecchiaia fa brutti scherzi … :confounded: