(premessa: qui riguarda RCommon a prescindere dal linguaggio di programmazione)
qualcuno mi potrebbe dare qualche precisazioni su questa riflessione:
import Rhino
import scriptcontext
def HatchCurve():
go = Rhino.Input.Custom.GetObject()
go.SetCommandPrompt("Select closed planar curve")
go.GeometryFilter = Rhino.DocObjects.ObjectType.Curve
go.GeometryAttributeFilter = Rhino.Input.Custom.GeometryAttributeFilter.ClosedCurve
go.SubObjectSelect = False
go.Get()
if go.CommandResult()!=Rhino.Commands.Result.Success: return
curve = go.Object(0).Curve()
if (not curve or not curve.IsClosed or not curve.IsPlanar()): return
hatch_name = scriptcontext.doc.HatchPatterns[scriptcontext.doc.HatchPatterns.CurrentHatchPatternIndex].Name
rc, hatch_name = Rhino.Input.RhinoGet.GetString("Hatch pattern", True, hatch_name)
if rc!=Rhino.Commands.Result.Success or not hatch_name: return
index = scriptcontext.doc.HatchPatterns.Find(hatch_name, True)
if index<0:
print "Hatch pattern does not exist."
return
hatches = Rhino.Geometry.Hatch.Create(curve, index, 0, 1)
for hatch in hatches:
scriptcontext.doc.Objects.AddHatch(hatch)
if hatches: scriptcontext.doc.Views.Redraw()
if __name__=="__main__":
HatchCurve()
abbiamo il metodo Rhino.Input.Custom.GetObject() che assegna un oggetto alla variabile go
poi vengono assegnati i vari parametri per filtrare ecc fino a go.Get() che va a prendere lāoggetto
Fin qui ci siamo mossi utilizzando Rhino.Input.Custom
curve = go.Object(0).Curve()
nella riga sopra invece, alla variabile curve viene assegnato lāoggetto stesso usando
go.Object(0) che fa sempre parte di Rhino.Input.Custom
anzi piĆ¹ precisamente ĆØ un metodo della classe GetObject()
ma viene anche aggiunta la classe Curve() che fa parte di Rhino.Geometry
if (not curve or not curve.IsClosed or not curve.IsPlanar()): return
per poi (nella riga sopra) verificare se la curva sia chiusa utilizzando per lāappunto IsClosed
che ĆØ una proprietĆ sempre della classe Curve() menzionata alla riga precedente
mi chiedo, a parte il fatto di andarsi a cercare un esempio per ogni azione che si voglia compiere
e quindi guardare la sintassi e adattarla nel proprio caso, ma oltre a ciĆ², a priori, qualāĆ© la
logica per sapere quale parte del codice puĆ² essere aggiunta ad unāaltra?