Stralli in 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
abe3d
Messaggi: 1110
Iscritto il: lun dic 07, 2009 1:48 pm

Stralli in Python

Messaggio da abe3d »

Sto scrivendo questo script in phyton che genera e controlla i classici cavi dei ponti strallati ( relazioni di cronaca puramente casuali ) e mi è sorta una curiosità che risolverebbe gran parte del carico dello script.
index mograph.JPG
index mograph.JPG (81.73 KiB) Visto 1487 volte
Posso fruttare le tab index di mograph invece delle spline text?
stralli.JPG
stralli.JPG (145.86 KiB) Visto 1487 volte
Potrei usare il tag Annotation, ma non sarebbe altrettanto comodo.
Allegati
stralli2.JPG
stralli2.JPG (68.7 KiB) Visto 1478 volte
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
Avatar utente
cappellaiomatto
Moderatore
Messaggi: 1571
Iscritto il: lun mag 07, 2012 5:12 pm

Re: Stralli in Python

Messaggio da cappellaiomatto »

Ciao abe
Ma quale é lo scopo della missione?
Quale é il problema che vuoi risolvere?
Avatar utente
abe3d
Messaggi: 1110
Iscritto il: lun dic 07, 2009 1:48 pm

Re: Stralli in Python

Messaggio da abe3d »

Ciao Cappellaio, è un piacere "sentirti"... lo scopo è quello di visualizzare le coordinate dei punti di ancoraggio come delle label piuttosto che con delle spline text, in teoria avrei risolto ( grazie a Maesano sul post di facebook, perché io credevo non ci fosse) con il BaseDraw.DrawHUDText
https://developers.maxon.net/docs/Cinem ... rawHUDText

anche se per il momento non riesco ancora a utilizzarlo, nel senso che non ho capito come programmarne i parametri ( colore del testo background e il resto ) e un semplice

import c4d
#Welcome to the world of Python
def main():
doc = c4d.documents.GetActiveDocument()
bd = doc.GetActiveBaseDraw()
text = ("text")
bd.DrawHUDText( 600, 400 , text )

non basta... sto leggendo!!
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
Avatar utente
cappellaiomatto
Moderatore
Messaggi: 1571
Iscritto il: lun mag 07, 2012 5:12 pm

Re: Stralli in Python

Messaggio da cappellaiomatto »

Ciao abe
Piacere mio risentirti
Allora vado a memoria, sono sul cell e non è il massimo navigare ma ti dovrei riuscire ad aiutare lo stesso.
Il drawhud effettivamente potrebbe fare al tuo caso ma secondo me ti stai incartando su un punto.
Il drawhud ovviamente si basa su coordinate 2d della viewport quindi devi convertire le coordinate 3d dei punti della mesh o quello che vuoi "misurare" e trasformarla in 2d rispetto alla viewport.
A quel punto le puoi passare al drawhud.
Guarda nelle funzioni e sicuramente trovi qualcosa, mi ricordo di aver visto qualcosa.

Inoltre mi sa che il drawhud va usato in una funzione che viene richiamata continuamente ad ogni refresh tipo in un plugin tool o qualcosa del genere (ora non ricordo il nome tecnico)....se lo script è un comando one shot probabilmente non ti accorgi nemmeno del risultato perché lui disegna sulla viewport ma cinema appena muovi il mouse o fai partire un evento di refresh ci ridisegna sopra.

Per finire disegnare sulla viewport in 2d a seconda di come giri il modello ovviamente rischi di vedere tutte le scritte appiccicate una sopra l'altra ma quello ci puoi fare poco, li devi trovare una inquadratura buona che ti faccia vedere i valori.

Spero di averti indirizzato bene, nel caso sono qui
Avatar utente
abe3d
Messaggi: 1110
Iscritto il: lun dic 07, 2009 1:48 pm

Re: Stralli in Python

Messaggio da abe3d »

Naturalmente grazie come sempre per l'aiuto.
Ti riporto lo stato dei lavori: la conversione delle coordinate 3D/2d é già in cantiere ma ancora non me ne preoccupo proprio perché sono convinto che avrò di che preoccuparmi prima :D, idem per il refresh della viewport che già procede in un loop continuo per via della spline ( stralli ) che appunto viene aggiornata continuamente, tramite un <MSG_UPDATE>.
Al momento estrapolato dal contesto, avevo postato l'esempio sopra perché in effetti il risultato non è una label ma un rettangolino bianco senza vita della giusta misura e nella giusta posizione, quindi credo che abbia bisogno d'altro che non trovo.
... se provi ad eseguirlo ti sarà subito più chiaro quello che intendo
mi fai venire il dubbio che forse è proprio perché sto cercando di fare questa chiamata dal generatore !!! (??????)

edit:
Parlavi di questo " EVMSG_UPDATEBASEDRAW" ??
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
Avatar utente
cappellaiomatto
Moderatore
Messaggi: 1571
Iscritto il: lun mag 07, 2012 5:12 pm

Re: Stralli in Python

Messaggio da cappellaiomatto »

abe3d ha scritto: dom ott 07, 2018 10:25 pm mi fai venire il dubbio che forse è proprio perché sto cercando di fare questa chiamata dal generatore !!! (??????)
mi sa che il punto è proprio qui, ho fatto una prova al volo.
Il generatore per evitare di far scoppiare la cpu, viene in qualche modo eseguito solo se strettamente necessario.

Il basedraw invece va eseguito continuamente
tanto è vero che prendendo il tuo esempio lui disegna ma appena cambi inquadratura sparisce tutto perchè cinema ridisegna l'interfaccia.

butta un occhio qui
questo è un tool plugin e dentro ha una chiamata draw che viene richiamata dal sistema prima di disegnare l'interfaccia

https://github.com/PluginCafe/cinema4d_ ... ainter.pyp


Stai sbagliando approccio se vuoi usare il basedraw.....a questo punto ti conviene scrivere con lo splinetext.....decisamente meno sbattimento
Avatar utente
abe3d
Messaggi: 1110
Iscritto il: lun dic 07, 2009 1:48 pm

Re: Stralli in Python

Messaggio da abe3d »

... ho dato uno sguardo al tool ma lo studierò più a fondo, stanotte ho anche fatto qualche prova per la proiezione delle coordinate e anche su questo il generatore da non pochi problemi di aggiornamento ( immagino per la stessa ragione ) .
concordo su una più semplice gestione delle splinetext, anche se non mi arrendo ( a costo di riconvertire tutto in plugin :roll: :) )

grazie per l'aiuto, vi aggiornerò a breve!
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
Avatar utente
cappellaiomatto
Moderatore
Messaggi: 1571
Iscritto il: lun mag 07, 2012 5:12 pm

Re: Stralli in Python

Messaggio da cappellaiomatto »

Occhio che il tool plugin è un tool......e quindi funziona se lo abiliti.....non è detto sia quello che serve a te.....
Guardati tra tutte le tipologie di plugin chi implementa il metodo draw come il tool plugin
Avatar utente
abe3d
Messaggi: 1110
Iscritto il: lun dic 07, 2009 1:48 pm

Re: Stralli in Python

Messaggio da abe3d »

...continua... in dirittura d'arrivo, manca qualche limatura e una bella pulizia del codice...
lo Script può riprodurre la quasi totalità di tipi di ponti strallati e sospesi, rendendo quasi superflue le lunghe ore a posizionare cavi nelle giuste posizioni, grazie ad una semplice gestione delle equazioni e delle parabole.
Allegati
T7.JPG
T7.JPG (142.93 KiB) Visto 1390 volte
T6.JPG
T6.JPG (132.66 KiB) Visto 1390 volte
T5.JPG
T5.JPG (146.21 KiB) Visto 1390 volte
T4.JPG
T4.JPG (94.52 KiB) Visto 1390 volte
T3.JPG
T3.JPG (139.58 KiB) Visto 1390 volte
T2.JPG
T2.JPG (155.81 KiB) Visto 1390 volte
T1.JPG
T1.JPG (90.11 KiB) Visto 1390 volte
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
Avatar utente
cappellaiomatto
Moderatore
Messaggi: 1571
Iscritto il: lun mag 07, 2012 5:12 pm

Re: Stralli in Python

Messaggio da cappellaiomatto »

bel lavoro!
  • Advertising
Rispondi