Ciao , cè un metodo per poter visualizzare ad esempio su una polisuperficie composta da tipo 400 superfici quante di queste sono tagliate e poter sapere quali sono tutte rapidamente tramite un comando , oppure vanno analizzate una ad una ? Oppure cè un metodo tramite script ?
CIao Grazie
Se esplodi la poli-superficie puoi usare _SelTrimmedSrf e _SelUntrimmedSrf
Grazie , mille per il consiglio, piu tardi provo .
Ciao Grazie buon lavoro .
CIao ,ho provato ed è ottimo mi evidenzia tutte le superfici trimmate in modo poter valutare , infatti mi ricordo mi dicesti che le eviti come la peste , infatti mi sembra che spesso quando vengono tagliate siano piu approsimative e nella zona di taglio , cosi cerco di trovare un modo di rifarle piu gradite dal calcolo matematico , sperando di incontrare poi meno imprevisti.
Ciao Grazie
Sicuro che ti abbia detto una cosa del genere?
Oramai la memoria mi sta abbandonando, ma credo avessi parlato della forzatura della unione dei bordi.
Non ho nulla contro le superfici trimmate, anzi.
Stavo già cominciando a preoccuparmi di questo “razzismo” verso le superfici trimmate… sono tutte uguali le superfici, non dobbiamo fare distinzioni di genere!!!
Ci mancherebbe.
Scherzi a parte, direi che senza le superfici trimmate sarebbe complicato rappresentare svariate geometrie in maniera efficiente.
Se non erro Rhino considera trimmate tutte le superfici, non tratta diversamente trimmate e intere.
Siamo noi che a volte troviamo piu’ comodo avere superfici trimmate e altre volte averle intere.
Ciao , Si hai ragione il discorso era sui raccordi non sulle superfici la mia memoria va indietro
incollo qui sotto la vecchia risposta
Se va ha le gambe.
Io di solito evito la forzatura dell’unione dei bordi come la peste bubbonica.
Lavoro con modelli con migliaia di micro-bordi e alla fine ti assicuro che si paga.
Discorso sull unione dei bordi .
Ciao Grazie
Allora si va di trimmamento , gooo , molto utile e fantastico il metodo .
Ciao Grazie
Perdonami ma spesso trimmo e ho l impressione che rimanga piu spazio fra la superficie e il bordo allora ho collegato a memoria cose non corrette, mi sono posto il dubbio a questo punto sbagliato non era per razzismo ma solamente Lucio per poca esperienza .
Ciao e grazie
Tagli con una curva o una superficie ?
E rimane dello spazio tra il bordo della trimmata e l’oggetto usato per trimmare ?
In genere non dovrebbe, entro i limiti della tolleranza …
Se succede conviene esaminare la situazione, eventualmente postando sul forum …
Ciao
Ciao Claudio, “più spazio” rispetto a cosa?
Intendi che la superficie tagliata eccede i limiti di taglio??
Sarebbe una cosa stranissima … e pericolosissima.
Si concordo, diciamo che ha volte mi sembra discosti dal bordo con cui è stata creata , non so se è una questione di tolleranza solo visiva , per Rhino va bene e l oggetto viene unito senza nessun problema e dice valido .
Appena mi succede e se mi succede al limite lo posto, ma se mi dite voi che la cosa è anomala sicuramente è un problema mio di qualche errore personale.
Indubbiamente devo imparare a creare delle curve ottimali specialmente nei cambi di direzione ( devo ancora capire il tuo quesito curva ) , ma ci sono circostanze molto scomode spesso se hai vincoli di passaggi obbligati.
Ciao Grazie
Mi viene in mente che se zoomi “troppo” potresti vedere delle difformità, che sono solo visuali … stai ingrandendo l’infinitesimo.
Se non ci fossero saremmo tutti provetti modellatori 3D.
Penso che siano buone possibilità che la causa sia questa.
Voi siete sicuramente professionisti , alla fine se fosse troppo facile non sarebbe nemmeno interessante , godiamoci la liberta di ragionarci sbagliando che porta alla crescita.
Ciao Grazie
Non so cosa possa fare Rhino 8, ma tempo addietro, data appunto la difficolta’ di rilevare rapidamente le distanze, usavo uno script.
Nel caso serva, e’ qui:
Permette di misurare la distanza da un oggetto (curva, superficie, … ) di diversi punti.
Basta cliccare un nuovo punto e Rhino mostra la nuova distanza.
Con Enter terminiamo il ciclo.
EDIT:
Scusate, ricopio il file, prima non era completo
/ EDIT
import Rhino
import scriptcontext
def main():
drawline = False
showline = True
surfonly = False
curvonly = False
while True:
scriptcontext.escape_test()
gob = Rhino.Input.Custom.GetObject()
gob.AcceptNothing( True )
gob.SetCommandPrompt( 'Object for distance ?' )
if surfonly:
gob.GeometryFilter = Rhino.DocObjects.ObjectType.Surface
elif curvonly:
gob.GeometryFilter = Rhino.DocObjects.ObjectType.Curve
sliind, sliopt = gob.AddOptionToggle( 'ShowLine',
Rhino.Input.Custom.OptionToggle( showline, 'No', 'Yes' ) )
linind, linopt = gob.AddOptionToggle( 'DrawLine',
Rhino.Input.Custom.OptionToggle( drawline, 'No', 'Yes' ) )
surind, suropt = gob.AddOptionToggle( 'GetSurface',
Rhino.Input.Custom.OptionToggle( surfonly, 'No', 'Yes' ) )
curind, curopt = gob.AddOptionToggle( 'GetCurve',
Rhino.Input.Custom.OptionToggle( curvonly, 'No', 'Yes' ) )
gob.Get()
res = gob.Result()
if res == Rhino.Input.GetResult.Option:
opind = gob.OptionIndex()
if opind == sliind:
showline = sliopt.CurrentValue
elif opind == linind:
drawline = linopt.CurrentValue
elif opind == surind:
surfonly = suropt.CurrentValue
elif opind == curind:
curvonly = curopt.CurrentValue
elif res == Rhino.Input.GetResult.Nothing:
return
elif res == Rhino.Input.GetResult.Object:
obref = gob.Object( 0 )
break
linid = None
dotid = None
while True:
scriptcontext.escape_test()
res, pnt = Rhino.Input.RhinoGet.GetPoint( 'Point for distance ?', True )
if res != Rhino.Commands.Result.Success:
break
if pnt == Rhino.Geometry.Point3d.Unset:
break
obpt = None
# surface
sur = obref.Surface()
if sur:
ok, uu, vv = sur.ClosestPoint( pnt )
if not ok:
print 'Unable to find point'
break
obpt = sur.PointAt( uu, vv )
else:
# curve
cur = obref.Curve()
if cur:
ok, uu = cur.ClosestPoint( pnt )
if not ok:
print 'Unable to find point'
break
obpt = cur.PointAt( uu )
else:
# point
point = obref.Point()
if point:
obpt = point.Location
else:
# brep
rep = obref.Brep()
if rep:
obpt = rep.ClosestPoint( pnt )
if obpt == Rhino.Geometry.Point.Unset:
print 'Unable to find point'
break
else:
# mesh
mesh = obref.Mesh()
if mesh:
obpt = mesh.ClosestPoint( pnt )
if obpt == Rhino.Geometry.Point.Unset:
print 'Unable to find point'
break
vec = obpt - pnt
dotp = ( obpt + pnt ) / 2
dotp.Z += 10
rows = []
rows.append( 'DIST %.4f' % vec.Length )
rows.append( 'DX %.4f' % vec.X )
rows.append( 'DY %.4f' % vec.Y )
rows.append( 'DZ %.4f' % vec.Z )
text = '\n'.join( rows )
rows.append( ' -- PICKED: DX %.4f' % pnt.X )
rows.append( 'DY %.4f' % pnt.Y )
rows.append( 'DZ %.4f' % pnt.Z )
rows.append( ' -- CLOSEST: DX %.4f' % obpt.X )
rows.append( 'DY %.4f' % obpt.Y )
rows.append( 'DZ %.4f' % obpt.Z )
info = ', '.join( rows )
print info
if dotid:
Rhino.RhinoDoc.ActiveDoc.Objects.Delete( dotid, True )
if linid:
Rhino.RhinoDoc.ActiveDoc.Objects.Delete( linid, True )
dotid = Rhino.RhinoDoc.ActiveDoc.Objects.AddTextDot( text, dotp )
if drawline:
Rhino.RhinoDoc.ActiveDoc.Objects.AddLine( obpt, pnt )
Rhino.RhinoDoc.ActiveDoc.Views.Redraw()
elif showline:
linid = Rhino.RhinoDoc.ActiveDoc.Objects.AddLine( obpt, pnt )
Rhino.RhinoDoc.ActiveDoc.Views.Redraw()
if dotid:
Rhino.RhinoDoc.ActiveDoc.Objects.Delete( dotid, True )
if linid:
Rhino.RhinoDoc.ActiveDoc.Objects.Delete( linid, True )
Rhino.RhinoDoc.ActiveDoc.Views.Redraw()
main()
Ciao
Scusa ma non è che per caso queste difformità sul bordo le vedi in modalità ombreggiata?
Grazie dell aiuto, lo provo.
Ciao