Codice Python

Forum per: Modellazione, Texturing, Animazione, Composting e tutto quello che riguarda il normale utilizzo di Cinema4D.

Moderatori: Arkimed, natas, visualtricks, cappellaiomatto

  • Advertising
Avatar utente
nemesi
Messaggi: 525
Iscritto il: lun mar 28, 2005 4:22 am
Località: ascoli piceno

Re: Codice Python

Messaggio da nemesi »

visualtricks ha scritto:se lo hai istallato tra gli script dovrebbe apparirti nello script manager, io lo vedo da li..
grazie anche a te Visual...il tordo sono io :D
Estrudi da questo corpo!
Avatar utente
nemesi
Messaggi: 525
Iscritto il: lun mar 28, 2005 4:22 am
Località: ascoli piceno

Re: Codice Python

Messaggio da nemesi »

allora anche se ormai inutile, per via della segnalazione di Visual, ho voluto provare lo stesso a fare questo script anche sbirciando quello di Rui

gira che ti rigira, per me, il problema è qui:

Codice: Seleziona tutto

ModFFD[c4d.FFDOBJECT_SIZE]=(BRad*2)
ho provato anche con un qualsiasi altro vettore tipo:

Codice: Seleziona tutto

ModFFD[c4d.FFDOBJECT_SIZE]=c4d.Vector (100,200,300)
il modificatore FFD presenterà questi numeri nelle sue proprietà, ma sarà grande sempre 300,300,300 e non so perché

ho provato a fare lo stesso con un'altro modificatore (il Bend per la precisione) e lui invece non da nessun problema anzi senza volerlo ho rifatto praticamente questa plugin che già era in giro:
http://vimeo.com/35846372 ;)

ho scopiazzato il codice di Flow, ma l'ho reimpostato da zero a testa mia e ne è uscito fuori questo

Codice: Seleziona tutto

import c4d
from c4d import gui

def main():

    if not op:
        gui.MessageDialog('Devi selezionare un oggetto')    
     
        
    else:
        c4d.CallCommand(1011982) #centro asse oggetto selezionato 
        dim = op.GetRad()*2 #dimensione oggetto (raggio * 2)
        modificatore = c4d.BaseObject(5128) #crea modificatore BEND

        doc.InsertObject(modificatore,op)#inserisci modificatore al centro dell'oggetto
        
        modificatore[c4d.DEFORMOBJECT_SIZE] = dim #dimensiona modificatore
        
        modificatore[c4d.DEFORMOBJECT_STRENGTH] = 0.87266 #altre opzioni
        modificatore[c4d.BENDOBJECT_KEEPYAXIS] = 1 #altre opzioni
        
        op.DelBit(c4d.BIT_ACTIVE)#deseleziona tutto
        modificatore.SetBit(c4d.BIT_ACTIVE)#seleziona modificatore
        c4d.EventAdd()

if __name__=='__main__':
    main()
funziona perfettamente! anche con un oggetto poligonale ruotato a caso e con asse decentrato!

lo stesso non si può dire se lo si usa con l'FFD...saremo incapaci noi? può darsi...sarà un bug?? non lo so, ma chi ci capisce è bravo hehehe

il codice incriminato è:

Codice: Seleziona tutto

import c4d
from c4d import gui

def main():

    if not op:
        gui.MessageDialog('Devi selezionare un oggetto')    
     
        
    else:
        c4d.CallCommand(1011982) #centro asse oggetto selezionato 
        dim = op.GetRad()*2 #dimensione oggetto (raggio * 2)

        modificatore = c4d.BaseObject(5108) #crea modificatore FFD
        
        
        
        doc.InsertObject(modificatore,op)#inserisci modificatore al centro dell'oggetto
        
        modificatore[c4d.FFDOBJECT_SIZE] = dim #dimensiona modificatore
    
        op.DelBit(c4d.BIT_ACTIVE)#deseleziona tutto
        modificatore.SetBit(c4d.BIT_ACTIVE)#seleziona modificatore
        
        c4d.EventAdd()
        print modificatore

if __name__=='__main__':
    main()
Estrudi da questo corpo!
Avatar utente
flowbox
Messaggi: 2545
Iscritto il: mar mag 20, 2008 8:29 pm
Località: Repubblica Dominicana

Re: Codice Python

Messaggio da flowbox »

allora il problema mi pare di capire che è il codice python, cioe l'istruzione [c4d.FFDOBJECT_SIZE] non da la dimensione alla griglia ma scrive solo i dati nel object properties.... mentre se si guarda nel pannello coordinates la vera dimensione è quella standard del ffd

come si risolva non ne ho idea.. io sicuramente sono "incapace"

va beh rimango sommessamente nella mia mediocrita ed utilizzero lo script del buon Rui 8-) 8-)
Non ho piu freddo e NON PAGO PIU LE TASSE.... vivo qui:

http://www.infolasgaleras.com
________

http://www.websolutionsdf.com
______________________________
Avatar utente
flowbox
Messaggi: 2545
Iscritto il: mar mag 20, 2008 8:29 pm
Località: Repubblica Dominicana

Re: Codice Python

Messaggio da flowbox »

in coffee il cambio di dimensioni con lo stesso comando funziona!

questo crea un ffd delle dimensioni inserite nello script

Codice: Seleziona tutto

CallCommand(5108);
var i;
for (i=0; object(i); i++)
{
  doc->AddUndo(UNDOTYPE_CHANGE_SMALL,object(i));
  object(i)#FFDOBJECT_SIZE=vector(100,300,50);
  object(i)#FFDOBJECT_XSUB=4;
  object(i)#FFDOBJECT_YSUB=2;
  object(i)#FFDOBJECT_ZSUB=8;
  object(i)->Message(MSG_UPDATE);
}
Non ho piu freddo e NON PAGO PIU LE TASSE.... vivo qui:

http://www.infolasgaleras.com
________

http://www.websolutionsdf.com
______________________________
Avatar utente
nemesi
Messaggi: 525
Iscritto il: lun mar 28, 2005 4:22 am
Località: ascoli piceno

Re: Codice Python

Messaggio da nemesi »

si confermo in coffee no problem
ma ho trovato una conversazione su plugincafe in cui si pongono (e forse si risolvono...devo finire a leggere) gli stessi quesiti

http://www.plugincafe.com/forum/forum_p ... p?TID=6013

continuo a leggete..ormai così per sfizio ;)
Estrudi da questo corpo!
Avatar utente
visualtricks
Moderatore
Messaggi: 3565
Iscritto il: gio set 23, 2004 5:13 pm
Località: Pistoia

Re: Codice Python

Messaggio da visualtricks »

io credo proprio sia un bug in python..
Immagine
๏_www.visualtricks.it_๏ .:: COMPUTER SAYS NO ::.
Avatar utente
nemesi
Messaggi: 525
Iscritto il: lun mar 28, 2005 4:22 am
Località: ascoli piceno

Re: Codice Python

Messaggio da nemesi »

infatti Visual...anche su plugincafe si parla di bug e poi ho provato anche con la demo della 14 e fa lo stesso difetto
comunque come nell'intuizione di Flow vengono usate le scale...viste così non sembrano impossibili da utilizzare :)
Estrudi da questo corpo!
Avatar utente
visualtricks
Moderatore
Messaggi: 3565
Iscritto il: gio set 23, 2004 5:13 pm
Località: Pistoia

Re: Codice Python

Messaggio da visualtricks »

eh ho visto, ma è intuitivo come pilotare un boeing747 :) a scala 1:1:1 corrispondono le dimensioni di default che invece sono 300:300:300, devi farti tutte le proporzioni solo per capire di quanto moltiplicare la scala per avere le dimensioni corrette.. fattibile, certo, ma molto macchinoso!
Immagine
๏_www.visualtricks.it_๏ .:: COMPUTER SAYS NO ::.
Avatar utente
flowbox
Messaggi: 2545
Iscritto il: mar mag 20, 2008 8:29 pm
Località: Repubblica Dominicana

Re: Codice Python

Messaggio da flowbox »

penso che effettivamente sia un bug di python.... ma cavoli, una volta che faccio una cosa io incappo subito in un bug... e a quanto vedo irrisolto dal 2011 !!!!

ma che sf..
Non ho piu freddo e NON PAGO PIU LE TASSE.... vivo qui:

http://www.infolasgaleras.com
________

http://www.websolutionsdf.com
______________________________
Avatar utente
nemesi
Messaggi: 525
Iscritto il: lun mar 28, 2005 4:22 am
Località: ascoli piceno

Re: Codice Python

Messaggio da nemesi »

ci riununcio :( c'ho provato con queste scale...maaaa
eheheh hai ragione Visual mi darò al volo con i 747 :lol: :lol: :lol: forse avrò più successo :)
Flow ritenta: magari la prossima volta sarai più fortunato ;)
Estrudi da questo corpo!
  • Advertising
Rispondi