Stralli in Python

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

Moderators: Arkimed, natas, visualtricks, cappellaiomatto

  • Advertising
User avatar
abe3d
Posts: 1116
Joined: Mon Dec 07, 2009 1:48 pm

Stralli in Python

Post by 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) Viewed 1490 times
Posso fruttare le tab index di mograph invece delle spline text?
stralli.JPG
stralli.JPG (145.86 KiB) Viewed 1490 times
Potrei usare il tag Annotation, ma non sarebbe altrettanto comodo.
Attachments
stralli2.JPG
stralli2.JPG (68.7 KiB) Viewed 1481 times
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
User avatar
cappellaiomatto
Moderatore
Posts: 1572
Joined: Mon May 07, 2012 5:12 pm

Re: Stralli in Python

Post by cappellaiomatto »

Ciao abe
Ma quale é lo scopo della missione?
Quale é il problema che vuoi risolvere?
User avatar
abe3d
Posts: 1116
Joined: Mon Dec 07, 2009 1:48 pm

Re: Stralli in Python

Post by 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.
User avatar
cappellaiomatto
Moderatore
Posts: 1572
Joined: Mon May 07, 2012 5:12 pm

Re: Stralli in Python

Post by 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
User avatar
abe3d
Posts: 1116
Joined: Mon Dec 07, 2009 1:48 pm

Re: Stralli in Python

Post by 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.
User avatar
cappellaiomatto
Moderatore
Posts: 1572
Joined: Mon May 07, 2012 5:12 pm

Re: Stralli in Python

Post by cappellaiomatto »

abe3d wrote: Sun Oct 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
User avatar
abe3d
Posts: 1116
Joined: Mon Dec 07, 2009 1:48 pm

Re: Stralli in Python

Post by 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.
User avatar
cappellaiomatto
Moderatore
Posts: 1572
Joined: Mon May 07, 2012 5:12 pm

Re: Stralli in Python

Post by 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
User avatar
abe3d
Posts: 1116
Joined: Mon Dec 07, 2009 1:48 pm

Re: Stralli in Python

Post by 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.
Attachments
T7.JPG
T7.JPG (142.93 KiB) Viewed 1393 times
T6.JPG
T6.JPG (132.66 KiB) Viewed 1393 times
T5.JPG
T5.JPG (146.21 KiB) Viewed 1393 times
T4.JPG
T4.JPG (94.52 KiB) Viewed 1393 times
T3.JPG
T3.JPG (139.58 KiB) Viewed 1393 times
T2.JPG
T2.JPG (155.81 KiB) Viewed 1393 times
T1.JPG
T1.JPG (90.11 KiB) Viewed 1393 times
Se le dimensioni del seno di una donna non sono direttamente proporzionali alla sua massa corporea, allora sono sicuramente inversamente proporzionali alla sua intelligenza.
User avatar
cappellaiomatto
Moderatore
Posts: 1572
Joined: Mon May 07, 2012 5:12 pm

Re: Stralli in Python

Post by cappellaiomatto »

bel lavoro!
  • Advertising
Post Reply