Triangolare Nurbs

Ciao a tutti, chiedo scusa se la domanda è banale e se quindi esiste proprio un comando od un plug-in esterno.
Ho una polisuperficie chiusa composta da sole facce quadrangolari piane. La deformo, ottenendo sempre una polisuperficie chiusa a facce quadrangolari ma NON piane.
Quello che mi occorre fare, per produrre l’oggetto in elementi piani di metallo, è di suddividere ogni faccia quadrangolare in due facce triangolari. Questo perchè una faccia triangolare è sempre planare.
Passerei quindi da una polisuperficie di 18 facce quadrangolari ad una di 36 facce triangolari piane.

Ho notato che la mesh dispone di comandi che potrebbero sembrare utili, ma passare da nurbs a mesh mi crea troppi triangoli ed a caso.

Non ho ancora provato ma pensavo che forse potrei estrarre il wireframe della polisuperficie e generare da li una mesh imponendo il minor numero di facce disponibili.

Esiste in alternativa un comando od un plug in che fa questo o che risolve il mio problema?
Grazie a tutti

Scusa, non capisco se vuoi ottenere mesh o superfici …

In ogni caso la suddivisione delle facce in due triangoli la farei a mano disegnano le nuove superfici,
anche dato il fatto che la faccia quadrangolare la puoi dividere in due modi diversi, ottenendo due forme diverse.
Una volta disegnate le superfici triangolari, se vuoi puoi convertire in mesh, tanto ormai la forma non cambia piu’, anche se ogni superficie triangolare fosse rappresentata da piu’ facce mesh.

Ma forse qualcuno esperto di mesh puo’ suggerirti una via diversa … :slight_smile:

Si, è quello che ho fatto, mi sono cancellato una ad una le facce quadrangolari sostituendole con due triangolari.
Ovviamente per ogni faccia quadrangolare hai due possibili suddivisioni. Se esistesse una procedura pyhton od un comando od un plug in che lo facesse sarebbe grandioso e suppongo che se è venuto in mente a me deve essere per forza essere venuto in mente ad altri.

A cosa serve:
devo poter sviluppare la polisuperficie, in modo da avere una polisuperficie piana. Questa la realizzarò in lamiera.
I bordi dei triangoli di cui è composta la polisuperficie saranno le piege da realizzare sulla lamiera per poter costruire l’oggetto.

Questo script per ogni superficie quandrangolare selezionata disegna due superfici triangolari usando la diagonale minore.


import rhinoscriptsyntax as rs

def main():
  qus = rs.GetObjects( 'Superfici da dividere ?', 8, preselect = True )
  if not qus:
    return
  tris = []
  for qu in qus:
    bos = rs.DuplicateSurfaceBorder( qu )
    if not bos:
      continue
    bor = bos[ 0 ]
    rs.SimplifyCurve( bor )
    pt = rs.CurvePoints( bor )
    rs.DeleteObject( bor )
    if pt[ 0 ].DistanceTo( pt[ 2 ] ) < pt[ 1 ].DistanceTo( pt[ 3 ] ):
      tris.append( rs.AddSrfPt( pt[ 0 : 3 ] ) )
      tris.append( rs.AddSrfPt( pt[ 2 : ] ) )
    else:
      tris.append( rs.AddSrfPt( [ pt[ 3 ], pt[ 0 ], pt[ 1 ] ] ) )
      tris.append( rs.AddSrfPt( pt[ 1 : 4 ] ) )
    print( 'Divise %d superfici' % ( len( tris ) / 2 ) )

main()
4 Mi Piace

Vox clamantis in deserto? :thinking:

Perché? :face_with_hand_over_mouth:

Eh, almeno un cenno di riscontro a Emilio. :thinking:

1 Mi Piace

mi scusi avvocato ma ho provveduto tempo fa a mettere il like. Non avendo avuto modo di testare lo script rimando i ringraziamenti definitivi.
riguardo lei scriva pure qua l’IBAN

Urka. :joy:
Scusa tu, non avevo mica visto il like. :thinking:

Io faccio da tesoriere del gruppo, può intestare l’assegno direttamente a me oppure le faccio avere un numero di conto corrente svizzero dove può appoggiare le donazioni… :joy::joy:

2 Mi Piace