buonasera a tutti,
CurveContourPoints
Returns the 3-D point locations calculated by contouring a curve object.
ho fatto delle prove con questo comando ma non ho capito in che modo imposta la distanza dei vari punti?
buonasera a tutti,
CurveContourPoints
Returns the 3-D point locations calculated by contouring a curve object.
ho fatto delle prove con questo comando ma non ho capito in che modo imposta la distanza dei vari punti?
Câeâ il quarto parametro opzionale
interval Optional. Number. The distance between contour curves. If omitted, the interval will be equal to the diagonal distance of the objectâs bounding box divided by 50.
ciao Emilio grazie x la risposta
ma per quanto riguarda Rhino.DivideCurveLength che differenza câè con Rhino.DivideCurve?
DivideCurveLength divide la curva in tratti della misura impostata e lâultimo tratto sarĂ di lunghezza diversa a meno che la lunghezza sia un multiplo esatto del valore impostato.
Ciao Salvio
Come dice Vittorio, la differenza eâ esattamente quella che câeâ anche tra le due opzioni del comando Divide
grazie Vittorio e grazie Emilio per le risposte
leggendo la guida sono daccordo con voi,
ma tengo a precisare che ho provato i due comandi e si comportano nello stesso identico modo. preciso che io ho inserito in entrambi i casi solo i due parametri obbligatori.
ora provo anche combinando i paramentri opzionali può darsi che cambia qualcosa?
ora provo anche combinando i paramentri opzionali può darsi che cambia qualcosa?
mi sa mi sa che è cosi, ho provato usando solo la stringa del comando inserendo True prima opzione
la cosa non mi torna con lâesempio della guida aggiungendo i punti tramite Rhino.AddPoint in for eachâŚ
A me sembra che funzioni tutto.
Se vuoi, disegna due curve uguali lunghe 50
e poi esegui questo.
Clicca prima una curva e poi lâaltra.
import rhinoscriptsyntax as rs
obj = rs.GetObject("Select a curve")
if rs.IsCurve(obj):
points = rs.DivideCurveLength(obj, 15.0)
for point in points: rs.AddPoint(point)
obj = rs.GetObject("Select another curve")
if rs.IsCurve(obj):
points = rs.DivideCurve(obj, 15)
for point in points: rs.AddPoint(point)
Forse dovresti prima impratichirti col comando Divide.
(Il pulsantino mostrato sopra. Prova i comandi tasto Dx e tasto SX)
Una volta capito come funzionano le due varianti del comando, vedrai che rhinoscriptsyntax fa la stessa cosa.
grazie per lo script Emilio ma credo che chi ha scritto la guida abbia fatto uno scherzzetto da prete ahahahah
non so se avevi dato unâocchiata alla guida ma per impostare la lunghezza usa questa sintassi:
dblLength = Rhino.CurveLength(strObject) / 4
arrPoints = Rhino.DivideCurveLength(strObject, dblLength)
quindi ovviamente con le due stringhe insieme si ottiene lo stesso risultato di
arrPoints = Rhino.DivideCurve(strObject, 4)
e vabbè di sicuro stare tante ore vicino al pc a programmare già cose semplici come faccio io non è facile
figuriamoci per chi lo fa tutto il giorno ogni giorno si debbono pure divertire un pochino ogni tanto
(scusate il disturbo per la domanda frivola)
ps ma il comando CurveContourPoints è un bel pò contorto eeee
Hehe ⌠direi tipica documentazione RMA âŚ
Dovrebbe essere analogo al comando Contour ⌠credo.
Credo che il problema sia âquantoâ, chi programma, conosca i comandi di Rhino.
Alla fine gli script replicano quello che faresti âa manoâ con i comandi classici e, quindi, ci si aspetta che la funzione richieda e restituisca gli stessi parametri del comando (entro la sfera del possibile).
Se il programmatore ha scarsa dimestichezza con il comando rhino e parte direttamente dalla funzione script, allora si che diventa unâimpresaâŚ
Poi esistono le eccezioni dove (e qui non ho idea quale sia il motivo) un comando viene replicato con funzioni che lavorano in maniera abbastanza diversa (e li smadonni un sacco per trovare lo stesso risultato del comando).
Concordo.
Anche percheâ i comandi sono documentati meglio.
Eâ piuâ semplice imparare da zero un comando.
A volte i comandi sono piuttosto âintelligentiâ, quindi piuâ semplici da usare.
Mentre i metodi/funzioni per gli script sono piuâ ârozziâ e richiedono, come dice Lucio, del lavoro aggiuntivo per ottenere quanto si ottiene dal comando.
A volte conviene scrivere una macro direttamente sul pulsante. Lâesempio qui sotto disegna un tronco di cono impostando lâangolo di inclinazione. Nel comando normale non esiste questa opzione
_circle _pause _r _pause _sellast
_ExtrudeCrvTapered _cap=_yes _r _s _y _pause _pause _delete
_SelNone