[RESOLU] déplier série d'edges en gardant leurs dimensions?

Ici on parle de modélisation

Modérateurs : frez, Yadoob, stilobique, Matpi, ModSquad

[RESOLU] déplier série d'edges en gardant leurs dimensions?

Message par Mareck » 24 Juil 2015, 15:32

Salut,

J'ai besoin de faire des profils altimétriques de parcours GPS, j'utilise l'addon io_import_scene_gpx.py quelle communauté magnifique ^^.

Image
Donc je cherche à déplier le parcours sur l'axe x sans changer la distance entre chaque points, je ne sais pas si je suis clair.
Vu de dessus je dois avoir une ligne droite et de profile les altitudes ne doivent pas changer, en gros les edges qui composent mon parcours ne doivent pas s'étirer mais pivoter par rapport au vertex sur l'axe z (vue de dessus).

Je pensais a du sculpt mais je n'ai pas trouvé la brosse ou le réglage qu'il me faut, je suis ouvert à toutes les idées sauf le faire à la main (j'en ai quelques uns à faire).
Dernière édition par Mareck le 24 Juil 2015, 20:45, édité 1 fois.
Graphiste 3D - Site web: http://www.studios-cad.fr/
Avatar de l’utilisateur
Mareck
 
Message(s) : 332
Inscription : 20 Déc 2013, 16:18
Localisation : Alsace

Re: comment déplier série d'edges en gardant leurs dimension

Message par lapineige » 24 Juil 2015, 15:40

Tu veux dire que tout veux tout tes points alignés sur un même axe, mais en gardant les informations sur l'altitude ?
Si c'est bien ça, S > L'axe voulu > 0
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3716
Inscription : 25 Juin 2014, 07:06

Re: comment déplier série d'edges en gardant leurs dimension

Message par kagi » 24 Juil 2015, 16:19

Ta solution va bêtement écraser la courbe, alors que Mareck veut (de ce que j'ai compris) que la distance entre chaque point soit respectée, comme si tu étirais le tracé comme un fil, pour qu'il devienne droit.
Avatar de l’utilisateur
kagi
 
Message(s) : 277
Inscription : 19 Juil 2015, 09:03

Re: comment déplier série d'edges en gardant leurs dimension

Message par Mareck » 24 Juil 2015, 16:28

Merci Lapi mais ça modifie la longueur des edges, de mon point A a mon point B qui constitue un edge j'ai une longueur l et je veux conserver cette longueur l. Ma trace gps va de mon point A a mon point Z et je veux que les points de A à Z soient callés sur l'axe x.
En gros le chemin inverse c'est de prendre une feuille de la plier pour avoir un accordéon, que tu la plie ou la déplie ni la longueur absolue ni sa hauteur ne change, c'est ça que j'aimerai ^^.


Edit exactement Kagi.
Graphiste 3D - Site web: http://www.studios-cad.fr/
Avatar de l’utilisateur
Mareck
 
Message(s) : 332
Inscription : 20 Déc 2013, 16:18
Localisation : Alsace

Re: comment déplier série d'edges en gardant leurs dimension

Message par lapineige » 24 Juil 2015, 16:32

Ah ok, Javépaskonpri ^^
Hum... j'ai pas d'idée comme ça, à part un script.
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3716
Inscription : 25 Juin 2014, 07:06

Re: comment déplier série d'edges en gardant leurs dimension

Message par kagi » 24 Juil 2015, 16:51

lapineige a écrit :Ah ok, Javépaskonpri ^^
Hum... j'ai pas d'idée comme ça, à part un script.


Si t'as le savoir faire, je suis intéressé aussi :mrgreen:
Avatar de l’utilisateur
kagi
 
Message(s) : 277
Inscription : 19 Juil 2015, 09:03

Re: comment déplier série d'edges en gardant leurs dimension

Message par lapineige » 24 Juil 2015, 18:35

Bon ben comme on a pas d'autre idées...
Image

C'est bien ce comportement là qui est recherché ? (si je place les points différemment sur l'axe Z, ça marche aussi, sans toucher aux Z)

Mon code de test, qui aplati sur les X en étirant sur les Y:
Code : Tout sélectionner
import bpy
import bmesh
from math import sqrt

obj = bpy.context.object
bm = bmesh.from_edit_mesh(obj.data)

list_vert_x = list()

for vert in bm.verts:
    list_vert_x.append(vert)
list_vert_x.sort(key=lambda v: v.co.x)

for idx_vert in range(len(list_vert_x)):
    if idx_vert == 0:
        dist = sqrt( (list_vert_x[idx_vert].co[0] - list_vert_x[idx_vert+1].co[0])**2 + (list_vert_x[idx_vert].co[1] - list_vert_x[idx_vert+1].co[1])**2 )
        list_vert_x[idx_vert].co[0] = 0
    else:
        if not idx_vert == len(list_vert_x)-1:
            new_dist = sqrt( (list_vert_x[idx_vert].co[0] - list_vert_x[idx_vert+1].co[0])**2 + (list_vert_x[idx_vert].co[1] - list_vert_x[idx_vert+1].co[1])**2 )
        list_vert_x[idx_vert].co[0] = 0
        list_vert_x[idx_vert].co[1] = list_vert_x[idx_vert -1 ].co[1] + dist
        dist = new_dist
       

obj.data.update()


Si c'est bien ça, je peut te le faire pour tout les axes, voir en faire un add-on pour que tu ai tout le temps l'outil :)

PS: ça marche en edit mode seulement.
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3716
Inscription : 25 Juin 2014, 07:06

Re: comment déplier série d'edges en gardant leurs dimension

Message par kagi » 24 Juil 2015, 20:24

Ca me parait bien ça. A voir ce qu'en pense Mareck.

Puis oué [mode feignasse on] je veux bien un add-on avec la possibilité de choisir de bloquer ou non, un ou plusieurs axe(s) (pour préserver l'altitude ou non, comme sur l'exemple de Mareck)[/mode feignasse qui en demande trop off]

Comment ça, j'abuse :P

...Parce que mine de rien, ce truc serait super utile pour animer un câble ou tout autre truc qui utilise une courbe (ou pseudo courbe)
Avatar de l’utilisateur
kagi
 
Message(s) : 277
Inscription : 19 Juil 2015, 09:03

Re: comment déplier série d'edges en gardant leurs dimension

Message par Mareck » 24 Juil 2015, 20:43

Nannnn sérieux t'as fais ça, c'est exactement le comportement que je cherche.
:cry: je suis ému ^^
Merci Lapi.
Encore un exemple qui fait que malgré les ptits défauts de blender, ce qui peut lui manquer, ce qui est des fois pas évident dans la logique du soft, pour moi il reste de loin le meilleur.
Pour la philosophie derrière le rideau (transparent le rideau^^) et l'implication de la communauté à aider les autres.

Flower Power!
A non la je m’éloigne ^^ n’empêche qu'un monde open source ça ferait du bien.

Je passe en résolu et je test ça illico.


Edit: ah oui je me suis un peu emballé le code n'est pas testable ^^
Graphiste 3D - Site web: http://www.studios-cad.fr/
Avatar de l’utilisateur
Mareck
 
Message(s) : 332
Inscription : 20 Déc 2013, 16:18
Localisation : Alsace

Re: [RESOLU] déplier série d'edges en gardant leurs dimensio

Message par lapineige » 24 Juil 2015, 20:55

Edit: ah oui je me suis un peu emballé le code n'est pas testable ^^

C'est pas un add-on: copie le dans un text editor, et exécute ;)

Content si ça te dépanne :)

Puis oué [mode feignasse on] je veux bien un add-on avec la possibilité de choisir de bloquer ou non, un ou plusieurs axe(s) (pour préserver l'altitude ou non, comme sur l'exemple de Mareck)[/mode feignasse qui en demande trop off]

Comment ça, j'abuse :P

...Parce que mine de rien, ce truc serait super utile pour animer un câble ou tout autre truc qui utilise une courbe (ou pseudo courbe)

Tu fais un up en fin de semaine que je m'en souvienne ? ;)
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3716
Inscription : 25 Juin 2014, 07:06

Re: [RESOLU] déplier série d'edges en gardant leurs dimensio

Message par cedric » 24 Juil 2015, 20:58

Avec autocomplete t'en fait un addon en 1 clic, feignasse ^^
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7049
Inscription : 03 Août 2013, 21:36

Re: [RESOLU] déplier série d'edges en gardant leurs dimensio

Message par kagi » 24 Juil 2015, 21:13

lapineige a écrit :Tu fais un up en fin de semaine que je m'en souvienne ? ;)


Ok, on va essayer :D
Avatar de l’utilisateur
kagi
 
Message(s) : 277
Inscription : 19 Juil 2015, 09:03

Re: [RESOLU] déplier série d'edges en gardant leurs dimensio

Message par lapineige » 24 Juil 2015, 21:35

cedric a écrit :Avec autocomplete t'en fait un addon en 1 clic, feignasse ^^

Et bien tu as le code, essaye, tu va voir que c'est pas si simple :-P

C'est pas très long, mais j'ai déjà trop de truc en retard désolé.
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3716
Inscription : 25 Juin 2014, 07:06

Re: [RESOLU] déplier série d'edges en gardant leurs dimensio

Message par Mareck » 24 Juil 2015, 23:13

Ne t'excuse pas Lapi c'est déjà super sympa ce bout de code.
Bon j'ai un gros tracé donc ça donne un truc un peu étrange, je post mon blend au cas ou t'ai un moment pour tester sur plus de points: http://www.pasteall.org/blend/37259
Il faudra que je vérifie plus en profondeur c'est peu être lié à la trace .gpx convertie en mesh.
A+
Graphiste 3D - Site web: http://www.studios-cad.fr/
Avatar de l’utilisateur
Mareck
 
Message(s) : 332
Inscription : 20 Déc 2013, 16:18
Localisation : Alsace

Re: [RESOLU] déplier série d'edges en gardant leurs dimensio

Message par lapineige » 24 Juil 2015, 23:52

Que ça s'étire beaucoup c'est normal (tout cumulé, la distance est importante).
Par contre il me semble en testant avec moins de point que ça ne marche pas correctement. J'ai l'impression que le tri n'est pas bon... je regarde demain ;)

En fait pour tester simplement il me faudrait un exemple concret du résultat final, là je tâtonne un peu, j'ai pas trop d'éléments de comparaison pour voir si ça marche. Je vais me faire ça.
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3716
Inscription : 25 Juin 2014, 07:06

Suivant

Retour vers Modélisation

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité