Pages: 1
- Sujet précédent - Création du point d'intersection entre une ligne 3D et une face 3D - Sujet suivant
#1 Thu 19 February 2009 11:04
Création du point d'intersection entre une ligne 3D et une face 3D
Bonjour,
Nous avons des données AutoCAD Map composées d'une part de lignes 3D (profils en travers) et d'autre part de faces 3D (provenant d'un MNT).
Nous cherchons à obtenir les points 3D correspondants aux intersections de ces deux types d'objets.
En utilisant le transformer Intersector, nous avons les nodes mais en 2D seulement et seulement ceux des extrémités des profils en travers si le champs duplicate node at elevation mis sur Yes. Si ce paramètre est mis sur No, on obtient alors non les intersections entre les faces et les profils 3D mais les intersections en projection verticale (ce qui ne nous intéresse pas).
Quelqu'un aurait-il déjà rencontré le même problème et, dans le meilleur des cas, trouvé une solution ?
Cordialement
Véronique
Hors ligne
#2 Thu 19 February 2009 15:20
- Pierre Dolez
- Participant assidu
- Lieu: Proville
- Date d'inscription: 14 Aug 2008
- Messages: 519
- Site web
Re: Création du point d'intersection entre une ligne 3D et une face 3D
Bonjour,
Etes-vous sûr que vous travaillez réellement en 3D ?
En fait, je pense que vous êtes en 2D1/2, c'est à dire que vos surfaces sont définies en plan, avec un Z. Les profils en travers sont, par définition, l'intersection d'un plan vertical avec une surface. C'est à dire que ce sont des lignes 2D dans le plan vertical.
En fait vous cherchez probablement ce qu'on appelle les "entrées en terre". C'est pas très facile.
Si c'est ça votre question, je pense que la meilleure (seule) solution est de dessiner (ou générer) les coupes en travers qui sont l'intersection du plan vertical correspondant à chaque profil avec le surface constituée des différentes faces. Chaque intersection de la projection du profil avec les lignes définissant les faces est un point caractéristique dont peut calculer de Z. C'est ça le principe.
Cordialement.
Hors ligne
#3 Thu 19 February 2009 15:42
Re: Création du point d'intersection entre une ligne 3D et une face 3D
Bonjour,
C'est en effet bien ça (entrées en terre).
Y a-t-il déjà quelqu'un qui a essayé de faire cette suite d'opération via des transformer de FME (ou du moins une partie ?)
Véronique
Hors ligne
#4 Thu 19 February 2009 16:01
Re: Création du point d'intersection entre une ligne 3D et une face 3D
Je tenterais personnellement une autre approche :
1.générer un mnt avec l'altitude du sol (surfacemodeller)
2.générer un second mnt avec l'altitude de la ligne (grille contenant des zéros sauf à l'emplacement de la ligne)
3.calculer la différence d'altitude entre chaque cellule des deux grilles (RasterExpressionEvaluator)
Les cellules pour lesquelles cette distance = 0 doivent correspondre aux points d'entrée en terre.
A voir également :
VectorOnRasterOverlayer
PointOnRasterValueExtractor
Hors ligne
#5 Thu 19 February 2009 16:51
Re: Création du point d'intersection entre une ligne 3D et une face 3D
Merci pour la marche à suivre, mais nous avons eu un peu de mal avec le point 2. Pourriez-vous nous expliquer ce que vous entendez par "grille contenant des zéros sauf à l'emplacement de la ligne" ?
En tout cas, un tout grand merci pour les pistes données
Véronique
Hors ligne
#6 Thu 19 February 2009 17:12
- jaykayone
- Participant actif
- Date d'inscription: 15 Feb 2007
- Messages: 95
Re: Création du point d'intersection entre une ligne 3D et une face 3D
Bonjour,
est-ce que vous avez essayé le surfacedraper ?
Jeff
Hors ligne
#7 Thu 19 February 2009 17:16
Re: Création du point d'intersection entre une ligne 3D et une face 3D
Oui nous avons essayé, mais ça ne répondait pas à la demande. Ce que nous avons en entrée, ce sont des lignes 3D (profils en travers) et des faces 3D. Alors soit nous avons mal compris le transformer surfacedraper (ce qui est bien possible je le concède volontiers) mais comme en sortie nous voulions des points (noeuds), nous n'avons pas obtenus satisfaction avec ce transformer.
Mais je vais creuser un peu plus la documentation dessus pour voir si avec les bons paramètres, c'est possible.
Véronique
Hors ligne
#8 Thu 19 February 2009 22:18
Re: Création du point d'intersection entre une ligne 3D et une face 3D
Vous pouvez utiliser Rasteriser pour créer une grille (raster) à partir de votre ligne 3D (utilisez Densifier pour augmenter le nombre de vertex)
Utilisez SurfaceModeller pour générer une grille équivalente à partir de vos données d'altitude du sol.
Hors ligne
#9 Thu 19 February 2009 22:54
- lefred
- Participant occasionnel
- Lieu: Sophia Antipolis
- Date d'inscription: 3 Jul 2008
- Messages: 42
Re: Création du point d'intersection entre une ligne 3D et une face 3D
La solution proposée par Olivier me parait intéressante, particulièrement si l'on souhaite calculer plusieurs points "d'entrée en terre" simultanément (ce qui semble être le cas).
Il faut envoyer les faces dans un SurfaceModeller, envoyer les lignes 3D dans un Rasterizer (voir http://www.fmepedia.com/index.php/Vecto … er_Example) dont le raster doit avoir les mêmes caractéristiques (dimensions et taille de pixel) que le modèle de surface précédemment généré, calculer la différence des 2 rasters (voir http://www.fmepedia.com/index.php/Raste … r_Examples) et récupérer les points pour lesquels la valeur du pixel est 0.
Si vous fournissez un petit jeu de données test, on doit pouvoir lancer un FME contest :-)
Frederic
--
Frédéric Eichelbrenner
Ellipso Facto - Sophia Antipolis
Hors ligne
#10 Fri 20 February 2009 12:36
- Pierre Dolez
- Participant assidu
- Lieu: Proville
- Date d'inscription: 14 Aug 2008
- Messages: 519
- Site web
Re: Création du point d'intersection entre une ligne 3D et une face 3D
Bonjour,
La solution de créer 2 raster et de faire la différence est intéressante, mais elle comporte un petit risque. La fonction définie par un raster n'est pas une fonction continue. Il en résulte que la différence entre 2 rasters ne passe pas forcément par zéro. Il y a donc le risque d'avoir des entrées en terre inconnues.
Un solution consisterait à agrandir le pas de précision en Z. Mais, étant donné que les lignes d'entrée en terre sont des talus, il faudrait avoir un pas en Z du même ordre que le pas en X et Y.
Je pense que pour un traitement automatique, une technique comportant une certaine probabilité de ne pas avoir de résultat est à éviter.
Je résume la technique habituelle en la matière:
A droite et à gauche de chaque profil, il y un segment qui représente le talus d'entrée en terre. Les extrémités de ce segment ont une altitude projet. On calcule pour ces deux points l'altitude TN et on détermine la distance et l'altitude de l'intersection. Ne pas oublier qu'on travaille en géométrie cotée et non en géométrie dans l'espace.
Pour de type de problème, il y deux inconnues
1- l'entrée en terre est en déblai ou en remblai?
2- la longueur du segment correspondant au talus, avant calcul doit être correctement fixée.
Pour résoudre ces deux inconnues, on commence par étudier la position par rapport au TN de l'extrémité du segment la plus proche de l'axe, et on en déduit le sens du talus et une longueur approximative majorée.
Je prend naturellement l'hypothèse que votre Modèle Numérique de Terrain comporte la fonction qui calcule l'altitude d'un point connaissant sa position en plan.
Cordialement.
Hors ligne
#11 Mon 23 February 2009 09:42
Re: Création du point d'intersection entre une ligne 3D et une face 3D
Bonjour
Alors on va tester vos méthodes, mais malheureusement pas tout de siute.
Dès qu'on a des nouvelles on vous en fait part sans fautes.
Merci encore à tous pour les informations
Véronique
Hors ligne
#12 Thu 26 February 2009 08:52
Re: Création du point d'intersection entre une ligne 3D et une face 3D
J'avais oublié DEMDistanceCalculator. C'est sans doute la méthode la plus simple pour l'approche raster puisqu'elle calcule directement la distance verticale entre une ligne 3D et un MNT.
Hors ligne
Pages: 1
- Sujet précédent - Création du point d'intersection entre une ligne 3D et une face 3D - Sujet suivant