PDA

Voir la version complète : prendre des côtes et les afficher



heraclite
08/02/2014, 15h21
Bonjour à tous,
je cherche à prendre des côtes dans C4D d'arêtes d'un lowpoly afin de le réaliser en miniature et en bois. problème, c'est que j'aimerais pouvoir donner à chacune de mes arêtes une côte qui s'afficherait donc sur ces dernières .


quelqu'un aurait il une idée???

merci à tous :icon_mrgreen::icon_mrgreen:

rik25
08/02/2014, 15h33
Tu as un outils dans c4d qui existe.

Vas voir : outils - mesure et construction

heraclite
08/02/2014, 16h08
merci à toi je connais l'outil, mais pour te donner la complexité de la tâche j'ai 440 objets à mesurer :icon_cry:.
En fait je pense que pour mon projet (c'est une structure en filaire) il me faudrait :


donner une couleur à tous mes objets différentes sans créér une texture pour chaque afin de les repérer facilement
trouver a longueur des arêtes sans passer par cet outil mesure et construction qui est plutôt long (plugin ?, aide d'un génie de lampe connaissant le xpresso ?)



voilà je peux faire suivre mon fichier si quelqu'un veut jeter un oeil.

merci encore

Sir Gong
08/02/2014, 16h25
aide d'un génie de lampe connaissant le xpresso ?Tu veux parler de Base 80 ?

http://www.base80.com/index.php/2006/02/20/measures_setup_tut

heraclite
08/02/2014, 16h35
merci sir gong
effectivement, ca a l'air de coller à ce que je cherche sauf que je panne rien à l'x presso et en plus c'est de l'anglais.
peux tu me donner les grandes lignes pour m'y prendre et surtout est ce que c'est faisable pour un débutant ??

merci encore vraiment

Sir Gong
08/02/2014, 16h53
C'est à dire que tout est expliqué sur le sujet de Base 80.
Je n'ai pas le temps de traduire l'ensemble ni d'essayer de t'apprendre l'anglais dans l'immédiat, désolé...

Sinon il y a peut-être QuickDimension Tool chez Jack.de :
http://www.c4d-jack.de/site/en/downloads/cat_view/34-xpresso/46-modelling.html

Mais je n'ai pas testé, je ne sais pas si ça répond à ta demande.

pxlntwrk
08/02/2014, 17h59
Sinon pour mesurer ya ca aussi,

http://c4dtools.net/quickmeasure/ (http://c4dtools.net/quickmeasure/)

je ne sais pas ce que ca vaut...

heraclite
08/02/2014, 18h12
top ton dernier truc GONG, en plus il y a la mesure d'angle ... merci à tous je vais pouvoir je pense me débrouiller avec ca.

bon week end

oli_d
08/02/2014, 18h40
Je suis entrain de donner un cours python à un pote, on va prendre ton problème comme exercice. Si jamais tu peux nous faire péter le fichier ce serait pas mal ....

heraclite
08/02/2014, 19h00
attend je m'accroche à ma chaise, sinon je vais faire un malaise ....pas de soucis ... c'est pour un projet artistique (j'ai déjà sortie une maquette avec imprimante 3D), je pourrai en dire plus en MP si tu es d'accord, je pense que c'est vraiment un truc qui peut servir. j'étais justement en train de chercher un dev x presso ou phyton sur la toile
j'ai plein de questions pour la réalisation (y compris la mesure d'angle)

sinon sur le site je suis tombé la dessus :

http://caleidos4d.blogspot.it/2014/01/fast-measure-10.html (http://caleidos4d.blogspot.it/2014/01/fast-measure-10.html)


mes fichiers :

http://www.mediafire.com/download/dzde8tmx561ld0m/projet_heraclite.zip

il y a le fichier de travail et le fichier final avec lequel, il faut que je fasse une sortie de tous mes objets côtés et si possible donner à chacun le nom des points auxquels ils sont reliés (plusieurs objets sont reliés à un même point qu'il faut identifier) afin lors du montage de ne pas galérer (je sais pas si je suis clair).

tiens moi au jus et Merci vraiment.

oli_d
08/02/2014, 19h32
Teste déjà ce script, tu sélectionnes tous les objets à coter et tu lances le script. Il va te mettre en enfant de chaque objet un neutre avec toutes les cotes sous forme de spline texte au centre de chaque arrête (passe en filaire si tu veux les voir).

Si le texte est trop petit ou trop grand, annule puis modifie la constante HAUTEUR_TXT au début du code et relance



import c4d

HAUTEUR_TXT = 10

def cotEdges(op):
nbr = c4d.utils.Neighbor()
nbr.Init(op)

vadr = op.GetAllPolygons()

res = c4d.BaseObject(c4d.Onull)
res.SetName('cotes')

for i in xrange(op.GetPolygonCount()):
pli = nbr.GetPolyInfo(i)

for side in xrange(4): # # test all 4 sides of a polygon
# Only proceed if edge has not already been processed
# and edge really exists (for triangles side 2 from c..d does not exist as c==d)

if pli["mark"][side] or side==2 and vadr[i].c==vadr[i].d: continue

# One can also skip the side==2 && vadr[i].c==vadr[i].d test as pli["mark"][2] is always True for triangles

if side==0:
a=vadr[i].a; b=vadr[i].b
elif side==1:
a=vadr[i].b; b=vadr[i].c
elif side==2:
a=vadr[i].c; b=vadr[i].d
elif side==3:
a=vadr[i].d; b=vadr[i].a
va = op.GetPoint(a)
vb = op.GetPoint(b)
longueur = (va-vb).GetLength()
centre = (va+vb)/2.0
txt = c4d.BaseObject(c4d.Osplinetext)
txt[c4d.PRIM_TEXT_TEXT] = str(longueur)
txt[c4d.PRIM_TEXT_HEIGHT] = HAUTEUR_TXT
txt[c4d.PRIM_TEXT_ALIGN] = c4d.PRIM_TEXT_ALIGN_MIDDLE
txt.SetRelPos(centre)
txt.InsertUnder(res)

return res

def main():
doc.StartUndo()
for o in doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_0):
res = cotEdges(o)
res.InsertUnder(o)
doc.AddUndo(c4d.UNDOTYPE_NEW, res) # Support redo the insert operation
doc.EndUndo()
c4d.EventAdd()

if __name__=='__main__':
main()

heraclite
08/02/2014, 20h09
merci bien mais n'ayant jamais utilisé de commande script peux tu me donner la marche à suivre pour lancer le bazar ?

merci bien

ps: le reste te semble faisable ou pas ?

oli_d
08/02/2014, 20h27
Je viens de voir que tu as la r11, donc pas de python ...

Si tu charges la version d'évaluation de la R15, tu vas dans le menu Script/gestionnaire de scripts puis quand tu as le gestionnaire ouvert tu cliques dans le menu du gestionnaire Fichier/nouveau et tu colles le script puis bouton Exécuter en bas à droite

heraclite
08/02/2014, 21h07
j'ai pas actualisé mon profil mais je suis sous R13
ca marche ou pas ?

oli_d
08/02/2014, 22h06
R13 ça devrait marcher ...

heraclite
08/02/2014, 23h47
merci à toi encore,
j'ai bine placé le script et sélectionné tous les objets , mais j'ai rien.
j'ai changé la taille de la typo, rien. peut être que l script vu le nombre d'objet mais un certains temps à calculer ?

merci encore on se tient au jus

heraclite
08/02/2014, 23h57
super ca fonctionne ! reste plus qu'a trouver le moyen de m'organiser un peu !
je en sais pas si tu souhaites continuer sur ta lancée mais déjà

mille mercis :icon_mrgreen: