Aller au contenu

Messages recommandés

Posté(e)

Celui là, c'est pour les champions et le résultat pourra être placé dans les routines LISP

il s'agit de modéliser un terrain à partir de points topographiques XYZ

un des algorythmes utilisables est l'algorythme de Delaunay expliqué brièvement sur l'image ci dessous

http://xs215.xs.to/xs215/07221/Image5.jpg

 

petit truc pour aider au début :

le premier triangle peut être aisément remplacé par un rectangle qui englobe l'ensemble des point et qu'on partage immédiatement en 2 triangles selon une diagonale.

 

Petit (gros) bonus pour les acharnés : c'est plus beau de gérer les triangles en mémoire dans une liste et de ne tracer l'ensemble des 3Dfaces qu'à la fin...

 

 

ci dessous une liste de points 3D

 

(261.341 151.864 118.208)

(261.341 231.435 109.913)

(261.341 209.625 108.910)

(261.341 187.688 111.296)

(261.341 165.778 113.907)

(261.341 143.880 116.624)

(244.612 132.933 108.374)

(243.423 154.766 106.772)

(241.139 176.734 106.750)

(238.306 198.775 107.633)

(235.467 220.854 109.054)

(233.168 242.068 117.193)

(231.955 262.027 127.368)

(217.871 252.288 122.565)

(220.615 231.858 112.188)

(209.367 221.134 107.400)

(214.361 198.875 104.777)

(219.337 176.621 102.725)

(223.547 154.569 101.787)

(216.735 132.933 103.892)

(234.937 143.767 103.828)

(203.039 154.269 104.912)

(207.431 132.933 106.385)

(197.267 176.411 103.857)

(205.387 187.703 103.276)

(187.490 210.195 103.050)

(193.993 232.177 108.430)

(189.535 252.556 117.659)

(202.315 262.170 126.142)

(173.809 262.194 117.792)

(164.878 242.899 106.257)

(171.578 221.549 101.145)

(178.817 198.952 101.696)

(186.007 176.286 102.897)

(192.557 154.095 104.319)

(191.341 132.933 102.500)

(159.324 262.036 114.489)

(147.683 252.928 109.743)

(142.111 232.567 105.030)

(151.193 209.795 100.863)

(160.463 186.318 98.751)

(169.390 163.156 97.382)

(177.457 141.252 96.924)

(172.529 129.088 98.047)

(165.095 146.289 98.761)

(155.429 169.761 100.321)

(145.163 194.366 102.781)

(134.813 218.814 105.983)

(124.887 241.373 112.746)

(115.932 260.565 121.039)

(109.996 241.818 119.556)

(120.270 221.286 111.719)

(131.002 198.100 106.516)

(141.817 174.008 102.930)

(152.343 150.337 100.258)

(162.230 128.369 98.760)

(160.981 114.926 97.683)

(149.770 131.893 98.662)

(139.007 154.257 101.776)

(127.937 177.594 106.119)

(116.761 200.720 111.263)

(105.668 222.123 118.729)

(84.476 229.970 128.232)

(86.329 201.978 120.898)

(101.851 202.030 116.291)

(104.356 171.573 110.850)

(110.269 160.843 108.148)

(122.011 139.311 103.400)

(133.694 118.449 99.885)

(145.386 100.825 98.046)

(131.700 98.445 100.217)

(119.510 121.967 102.855)

(136.209 135.679 100.425)

(107.406 142.350 106.768)

(95.226 162.809 111.760)

(82.834 182.555 117.777)

(70.107 200.654 124.910)

(74.028 219.401 128.642)

(53.139 198.237 128.582)

(49.695 179.781 124.721)

(66.612 181.718 121.429)

(70.129 154.294 115.697)

(83.388 136.275 111.165)

(96.505 117.955 107.528)

(109.602 100.336 104.789)

(123.860 83.493 102.695)

(108.510 85.160 105.805)

(94.972 102.330 107.748)

(80.299 120.882 110.578)

(67.467 136.623 113.921)

(53.483 153.237 118.530)

(32.264 177.067 128.000)

(235.681 132.933 104.717)

 

 

Et normalement à la fin il faut enlever ce qui reste du premier triangle

 

 

 

Posté(e)

 

Bon Matin

 

Magnifique challenge, si quelqu'un arrive à "pondre" un algo PERFORMANT sur des milliers de points en Lisp, ce sera magnifique !

 

On peut trouver des routines sur le Web, mais elles sont très lentes en général

dès que le nombre de points est plus ou moins important ...

 

La routine en Lisp / V-Lisp / VBA doit pouvoir fonctionner sur AutoCAD / MAP / Autodesk Architectural Desktop et produire soit un maillage de 3D Faces (PMesh), soit un ensemble de N 3DFaces

 

Le challenge complèmentaire :

A partir de ces triplets de points XYZ produire N polylignes 2D sur des calques différents, à des élévations différentes qui seraient en fait les courbes de niveaux espacées de 5 / 10 / etc m.

 

C'est un paramètre (Elévation) à demander ainsi que le nombre de calques différents :

- Courbes secondaires sur le calque CN_1

- Courbes principales de 10 en 10 par exemple sur le calque CN_2

- Super courbes de 50 en 50 par exemple sur le calque CN_3

 

A mon avis, 3 calques de courbes d eniveaux sont largement suffisants !

 

Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

.... vous voulez nous faire refaire COVADIS c'est ça ???... :exclam:

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

 

Hello

 

COVADIS de Geomedia (www.geo-media.com) est (A mon avis) un Super Logiciel qui n'a pas de concurrent sur la plateforme AutoCAD / Autodesk dans SON domaine d'application

 

Le cout de Covadis est d'environ 4 000 Euros HT en version 2D/3D complète

(A ajouter à votre AutoCAD / MAP / CIVIL )

 

AutoCAD CIVIL 3D 2007 / 2008 (Cout = 6 250 Euros HT) a des inconvénients et des avantages, je ne suis pas du tout spécialiste mais il faut bien comprendre que ces 2 logiciels ne se recoupent que FAIBLEMENT contrairement à ce que l'on pourrait penser ...

 

Le recoupement entre les 2 logiciels dépend en fait des métiers et des projets !

 

Les 2 routines qui sont utiles de temps en temps, c bien sur le maillage 3D à partir de points XYZ et la génération de courbes de niveaux !

 

! C'est pourquoi elles sont TRES demandées ! ( avec les profils bien sur )

 

Car acheter un CIVIL ou un COVADIS pour faire de temps en temps un MNT 3D ou les Courbes de Niveaux, c un peu CHER !

 

Le Decapode

 

 

Autodesk Expert Elite Team

Posté(e)

On peut trouver des routines sur le Web, mais elles sont très lentes en général

dès que le nombre de points est plus ou moins important ...

 

Tout à fait de cet avis...

 

C'est pour ça que je pense que pour une fois le lisp n'est pas adapté a ce genre de d'analyse.

Je n'ai aucune connaissance en C++ mais je pense que programmer avec ce langage pour produire un ARX serait là meilleure solution pour traité un nombre (généralement conséquent) de points.

 

Moi je me suis tourné vers un programme tierce (licence libre, mais Copyright 1996 Jonathan Richard Shewchuk) pour faire ce genre de traitement.

Voir ma page.

Trinod.lsp pourrais être largement amélioré, ce qui serait bien, c'est de contourné les appels à "SHELL" qui pose des problèmes suivant les versions de Windows et/ou d'Autocad.

 

Les paramètres de triangle.exe sont un peu compliqués, mais ont peut faire des maillages de tout type. Il sait géré les notions de trous dans le maillage à l'aide de lignes de contour en 3D.

 

J'ai fais une traduction automatique de l'aide de triangle que j'ai révisé au mieux.

Si ça intéresse quelqu'un, je la rajouterais sur ma page (s'est une doc des versions précédente de la version actuelle)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)
.... vous voulez nous faire refaire COVADIS c'est ça ???... :exclam:

 

C'est vrai, on se calme, c'est juste un exercice pour un challenge, il ne s'agit pas de refaire un logiciel comme COVADIS

 

Effectivement, dans ce genre de calcul, en C, c'est beaucoup plus rapide qu'en LISP ;

Il ne s'agit pas non plus de pouvoir traiter des grosses quantités de points, juste se prendre un peu la tête sur la gestion des listes de données.

 

J'avais fait un essai il y a fort longtemps et j'ai égaré le code ; à l'époque, il n'y avait pas les fonctions performantes de Visual Lisp comme vl-remove ou vl-member-if

peut-être que ce n'est pas si déplorable que çà en temps.

 

 

 

Posté(e)

Bonjour,

 

Didier as-tu besoin d'un lisp MNT ou c'est simplement pour le challenge (car sinon j'en ai récupéré un sur le site mais je ne sais pas s'il fonctionne).

Posté(e)

Non, c'était juste un challenge,

d'ailleurs, mes souvenirs de l'algorythme Delaunay étaient très vagues quand j'ai lancé ce challenge....

La preuve : j'ai écrit la routine selon l'algorythme décrit en début de challenge,

çà donne çà :

http://xs216.xs.to/xs216/07225/Image6.jpg

Pas terrible hein ?

J'ai d'abord cru à une erreur de programmation et puis je suis allé vérifier l'algorythme sur Internet et c'est un peu plus complexe qu'annoncé au début

la même liste de points devrait donner ceci

http://xs216.xs.to/xs216/07225/Image7.jpg

 

mais çà m'a piqué au vif et j'y reviendrai avec la routine et des explications

 

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité