Blender Italia forums Coding Tutorial Python Corso Python Alek Mugnozzo – Lezione 5

Taggato: , ,

Stai visualizzando 12 post - dal 1 a 12 (di 12 totali)
  • Autore
    Post
  • #849007

    Ciao! Ecco il file della lezione di stasera:

    lezione-5


    Mugnozzo – creative open source technologies
    BruDem
    Partecipante
    @brunodemasi
    #849008

    Ciao Alek,

    volevo chiederti se, nelle prossime lezioni,  puoi mostrarci come importare, all’interno nello script, una sedia modellata nella scena (per praticità può essere anche un cubo).

    #849063

    Ciao Bruno!

    Cosa intendi dire di preciso con importare all’interno dello script?

    Vuoi trasformare in codice python una cosa già modellata? Di preciso per cosa ti servirebbe? Ti faccio queste domande per capire al meglio il tuo problema e trovare la soluzione migliore.


    Mugnozzo – creative open source technologies
    BruDem
    Partecipante
    @brunodemasi
    #849064

    Ciao Alek,

    volevo vedere come fai a leggere i dati nella scena: vertici , edge, face per inglobarli nello script.

    Immaginavo un processo inverso, invece di creare l’oggetto nello script lo crei nella scena e poi lo porti nello script per renderlo ripetibile.

     

    BruDem
    Partecipante
    @brunodemasi
    #849078

    Alek, l’idea è quella di avere un unico oggetto con un’unica origine, così è più facile da posizionare.

    Nella lezione precedente, la tua sedia era composta da 5 oggetti con 5 origini . Strategia che per imparare è ottima ma un po’ macchinosa.

    Inoltre è molto facile confondersi.

    Dal mio punto di vista è molto più semplice modellare nella scena perchè ho tutta una serie di strumenti che mi aiutano a visualizzare e controllare quello che faccio.

     

    #849152

    Ciao Bruno,

    Scusa se ti rispondo solo ora.

    Per quanto riguarda la tua prima domanda, se vuoi creare un oggetto in una scena e renderlo ripetibile ti conviene non importarlo vertice per vertice nello script (cosa che potresti fare semplicemente andando a leggere dentro bpy.data.object[‘nomeoggetto’].data) ma andare a duplicarlo in Python, senza stare ad accedere a tutti i singoli vertici/spigoli/facce.

    La questione dell’oggetto unico o oggetti multipli è un po’ soggettiva. Puoi fare in entrambi i modi ma devi vedere quale torna meglio a te. Io personalmente ritengo molto migliore fare oggetti diversi (al massimo raggruppati in collezioni e sottocollezioni per accedere meglio ad essi e spostarli/posizionarli).

    Riconosco che creare varie sedie al centro della scena come oggetti unici e posizionarle poi nei punti intorno al tavolo possa essere più veloce, però con un piccolo sforzo in più posso crearla (sempre al centro) con oggetti separati, raggrupparli dentro un Empty e muovere quello. Questo comporta una piccola azione in più (il raggruppamento nell’Empty) ma mi da il vantaggio di poter accedere poi alle singole parti della sedia. Mettiamo che io voglia rompere un gambo, staccare un pezzo, o roba simile. Con un oggetto unico devo andare a ricercare i vertici giusti da muovere, mentre con gli oggetti separati ho accesso alle singole parti della sedia.

    Ti ripeto, è una cosa molto soggettiva, quindi comprendo il tuo punto di vista. Dipende molto sia da chi scrive il codice che dall’uso che poi dovrà fare dell’oggetto.

    Nella prossima lezione useremo le classi per creare il sistema tavolino/sedie e useremo gli empty per raggruppare le parti di un tavolo o di una sedia e muoverli meglio.


    Mugnozzo – creative open source technologies
    BruDem
    Partecipante
    @brunodemasi
    #849155

    Ciao Alek,

    grazie per la risposta.

    Ti ho chiesto quella soluzione perchè occupandomi si stampa 3D, legata alla ceramica, per me è vitale l’ordine dei vertici perchè  determinano i percorsi di stampa.

    Quindi sono interessato a capire come funziona il  modulo Bmesh di Blender per potere manipolare i vertici e ordinarli secondo delle regole.

     

     

    #849164

    Ciao! Nella lezione di Lunedì prossimo lavoreremo anche sulle mesh che, ti anticipo, si trovano sotto bpy.data.meshes.

    Prova intanto a navigare bpy.data.meshes, i suoi sotto-oggetti e i suoi metodi. Noterai che dentro bpy.data.meshes[‘nomeoggetto’].polygons trovi le facce, mentre sotto edges e vertices trovi gil edge e i vertici.

    Fammi sapere se hai difficoltà. Poi Lunedì vediamo.


    Mugnozzo – creative open source technologies
    BruDem
    Partecipante
    @brunodemasi
    #849167

    Ciao Alek,

    un po’ ci ho già guardato però  il problema da risolvere non è così immediato perchè l’ordine dei vertici e la direzione determinano i percorsi di stampa.

    Capisco che è un problema  che esula dal corso però sarei curioso di vedere come approcci il problema.

    https://blender.stackexchange.com/questions/36577/how-are-vertex-indices-determined

    #849176

    Comunque da Python puoi (ri)assegnare l’ordine dei vertici. È macchinoso ma una volta automatizzato è facile. Più tardi faccio 2 prove e ti scrivo.
    Però con i software di slicing che ho usato io il gCode viene creato in maniera ottimizzata per la stampa, senza guardare come sono messi i vertici.


    Mugnozzo – creative open source technologies
    DIAPASON76
    Partecipante
    @maurola76
    #849268

    Salve a tutti ! E’ possibile utilizzare il comando input  per inserire dati dalla console ? Se lo utilizzo mi da  RuntimeError lost sys.stdin !

    BruDem
    Partecipante
    @brunodemasi
    #849271

    Asking for user input in using scripting from blenderpython

Stai visualizzando 12 post - dal 1 a 12 (di 12 totali)
  • Devi essere connesso per rispondere a questo topic.