Cartographie de fissures dans le volume.

Forum destiné aux questions et discussions en français
Forum rules
Règles du forum et informations utiles.

VEUILLEZ LIRE CECI AVANT DE DEMANDER DE L'AIDE
ron_fraizer
Posts: 4
Joined: Mon May 17, 2021 1:12 pm

Cartographie de fissures dans le volume.

Postby ron_fraizer » Mon May 17, 2021 1:54 pm

Bonjour à tous,

dans le cadre de mon boulot, je suis amené à rechercher des fissures de gros bandeaux en acier de l'ordre de 100mm d'épaisseur, le tout par ultrasons. Pour donner une idée plus claire, le bandeau est un cylindre de 5 m de diamètre, 1m de hauteur et donc 100mm d'épaisseur. Jusqu'à maintenant, je représentais les fissures trouvées en 2D: un dessin du bandeau vu de haut, la position des fissures par rapport à une origine, puis un deuxième dessin vu de côté pour essayer d'être le plus précis dans la cartographie.

J'aimerais faire évoluer ces représentations et passer à la 3D. Ce qui est intéressant avec Freecad, c'est que je peux facilement automatiser la création des schéma de cartographie avec un script. J'entre les dimensions de mon cylindre, les coordonnées des fissures, et paf, j'ai un rendu assez parlant pour le client dans lequel il peut se balader. C'est con, mais c'est le genre de truc qu'ils aiment bien dans mon métier.

Pour l'aspect purement technique, ça ne devrait pas poser de problème. Je sais créer un cylindre, que ce soit à la main ou en ligne de commande. Pour les fissures, je pensais m'organiser de la sorte:
- Je donne les coordonnées X,Y et Z du premier point, idem pour le 2ème, et ainsi de suite. Je relie ces points et j'ai ma représentation. Je ne sais pas si c'est la meilleure manière de faire, mais ça me semble assez simple. Je suis ouvert à toute proposition.

Là où je bloque un peu, c'est sur la manière de représenter tout ça. Voici la manière dont j'imagine le rendu:

- le bandeau est représenté de manière transparente, mais tout de même visible
- les fissures sont représentées dans le volume. En général elles ont une hauteur et une longueur, mais l'épaisseur est négligeable. Donc en gros elles sont représentées comme des polygones plans.

Est-ce que vous avez des idées de projets desquels je pourrais m'inspirer pour le rendu? Parce que je bloque un peu sur les termes de recherche sur Google pour trouver quelque chose qui pourrait se rapprocher de ça.

Merci d'avance,

Ron
User avatar
flachyjoe
Posts: 948
Joined: Sat Mar 31, 2012 12:00 pm
Location: Limoges, France

Re: Cartographie de fissures dans le volume.

Postby flachyjoe » Tue May 18, 2021 7:15 am

Salut,
le plus simple est d'utiliser des Draft_Wire pour représenter les fissures.

Pour la visualisation, regarde l'onglet Vue de la vue combinée : exemple avec
  • pour le tube
    • transparency=75
    • Display Mode = Shaded
  • pour le wire
    • line width =5
Capture d’écran_2021-05-18_09-07-54.png
Capture d’écran_2021-05-18_09-07-54.png (11.94 KiB) Viewed 424 times
Tu peux aussi ajuster l’apparence du tube avec clic-droit/Apparence (Ctrl+D)
Last edited by flachyjoe on Wed May 19, 2021 9:07 am, edited 1 time in total.
- Flachy Joe -
alias FFW @ irc.freenode.net #freecad et #freecad-fr
"Puisqu’on ne peut changer la direction du vent, il faut apprendre à orienter les voiles." Anonyme
ron_fraizer
Posts: 4
Joined: Mon May 17, 2021 1:12 pm

Re: Cartographie de fissures dans le volume.

Postby ron_fraizer » Tue May 18, 2021 12:28 pm

Salut,

merci de ta réponse, ça rend vraiment pas mal. Petite question, parce que j'ai un peu de mal à reproduire. Tu as commencé par faire ton cylindre et ta draftline dans Draft, puis tu es passé à Part pour générer la 3D c'est ça?
User avatar
flachyjoe
Posts: 948
Joined: Sat Mar 31, 2012 12:00 pm
Location: Limoges, France

Re: Cartographie de fissures dans le volume.

Postby flachyjoe » Tue May 18, 2021 3:32 pm

Le cylindre vient de l'atelier Part, ensuite j'ai fait le wire via l'atelier Draft. Le Wire est automatisable facilement via macro :

Code: Select all

v=[] #liste des points

v.append(App.Vector(0,0,0))
v.append(App.Vector(0,100,0))

# utilisation de donnée brute
data=[[0,100,50], [10,200,100]]
v.extend([App.Vector(*d) for d in data])
# etc…

import Draft
Draft.makeWire(v)
App.ActiveDocument.recompute()
- Flachy Joe -
alias FFW @ irc.freenode.net #freecad et #freecad-fr
"Puisqu’on ne peut changer la direction du vent, il faut apprendre à orienter les voiles." Anonyme