Klr Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 Bonjour à tous, Voilà mon problème : j'ai récupéré des polylignes 3D représentant les bordures de toit de bâtiments : chaque sommet de polyligne est connu en coordonnées XYZ (polyligne en élévation). J'ai récupéré les poylignes 3D de ces bordures de toit projetés sur le sol : polylignes 3D dont chaque sommet est aussi connu en coordonnées XYZ. J'ai aussi dessiné toutes les faces 3D reliant ces deux polylignes et qui forment toutes les faces 3D du bâtiment (= les murs).Ma question est la suivante : quelle est la meilleure solution pour calculer la hauteur des bâtiments ? Je sais qu'il faut simplement soustraire l'altitude du bord de toit à l'altitude au sol, mais il y a quelques 30000 bâtiments à calculer !!! Existe-il un logiciel 3D qui donne des longueurs d'arête ? ou faut-il que je développe une routine en lisp ou en vba ? Je ne connais pas la 3D sous Autocad... Par avance merci KLr
Tramber Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 850x190http://perso.wanadoo.fr/abcad/XCP/divers/Baden1.jpg[/img] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Tramber Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 J'ai récupéré les poylignes 3D de ces bordures de toit projetés sur le sol : polylignes 3D dont chaque sommet est aussi connu en coordonnées XYZ. Si elles sont projetées, elles sontdonc en 2D, ... Tu es bien sur que tous ces éléments dont tu parles sont des polys3D ? Bref,...ici, c'est le résultat d'un lisp. Il y avait des poly2D et du texte, c'est tout. L'altitudeétait donnée par du texte qui donnait le NGF. Tu n'as pas de textes?! il faut lire les altitudes sur des entités, c'est cà ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Klr Posté(e) le 12 mai 2004 Auteur Posté(e) le 12 mai 2004 En fait, je ne veux pas faire une représentation 3D...il faut que je réussisse à calculer les hauteurs de bâtiments en ne disposant au départ que de polyligne 3D des bordures de toit. J'ai projeté ces polylignes sur un Modèle Numérique de Terrain, c'est-à-dire des facettes 3D du terrain naturel et donc je ne dispose que de polyligne 3D au sol !!! Et en bonus j'ai les mur construits en faces 3D....
Tramber Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 OK, donc, vue en plan, tes 2 poly 3D (la non-projettée et la projettée), se superposent. Elles ont le même nombre de points ? Elles sont sur des calques différents ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
CDL Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 Salut Tramber ton LISP a l'air pas malC'est téléchargable ?Peut etre avec un fichier de de Klr je cherche une solution !A+
Tramber Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 J'ai redimensionné l'image (en BBCode). Il faut un bloc toit de 1 sur 1 sur 1. Puis lancer ce prog. Saisir la polyligne, la ligne de tuile faitière est accompagnée d'un texte, la ligne de gouttière aussi ainsi que le bord du bâtiment représenatant l'altitude du bas du bâtiment. Ainsi on clique:La poly,Le texte 1Le texte 2Le texte 3. Et zou,.... Mais bon, il faudra surement l'adapter. (defun lire (/ elev elev1 elev2 ent0) (setq texte (ssget)) (setq ent0 (ssname texte 0)) (command "chprop" ent0 "" "co" 241 "") (setq elev (atof (cdr (assoc 1 (entget ent0)))))) ;;;(defun poin () (defun c:batc (/ elev elevt) (setq *osmode2* (getvar "osmode")) (setq elev0 (lire) ) (setq elev1 (lire) ) (setq elev2 (lire) ) (setq elev (- elev1 elev2)) (setq elevt (- elev0 elev1)) (setq listel (list 0 0 elev2)) (command "_extrude" pause "" elev "") (command "_move" "_l" "" listel "" ) (setq pt0 (getpoint)) (setq pt1 (getpoint)) (setq pt2 (getpoint)) (command "_ucs" "n" "3" pt0 pt1 pt2) (setvar "osmode" 0) (setq XX (car (trans pt1 0 1))) (setq yy (cadr (trans pt2 0 1))) (setq ptins (list 0 0 elev1)) (command "_insert" "toit" ptins "XYZ" xx yy elevt 0) (command "_ucs" "g" ) (setvar "osmode" *osmode2*) ) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
didier Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 hello Klrce serait bien d'avoir un exemple de dwgpour réfléchir.si tu me contactes par message privé,je t'envoie mon adresse mail pour le télécharger.au vu de ce que tu as comme entitésil sera aisé de réaliser quelque choseensuite çà peut servir d'exemple de Lisp pour le sitebonne soirée à Toi.amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
CDL Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 Merci Tramber ! Deux mains je test !( je tape avec deux doit)sur mes bases (DWG) j'attend ce lui de Klr
Klr Posté(e) le 13 mai 2004 Auteur Posté(e) le 13 mai 2004 Bonjour Tramber, Je réponds à ta question : oui, vu en plan, les 2 polylignes 3D se superposent parfaitement, même nombre de pts et elles sont sur deux calques différents.As tu une idée de la méthode à appliquée ? Je fais un peu de lisp et de vba, donc je veux bien essayer de développer et de chercher aussi mais je bloque sur la méthode à employer !
Tramber Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 Envoies une image absolument, nous t'aiderons mais réponds aussi à la question des calques. webmaster_spam@cadxp.com pour l'image, si je ne me trompe. enlève le "_spam" Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Tramber Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 et qui forment toutes les faces 3D du bâtiment (= les murs). Je m'interroge.Donc tous les batiments sont constitués de murs qui ressemblent + à des trapèzes voire à des quadrilatères quelconques, plutôt qu'à des rectangles ? Déjà des questions sur un calcul final En lisp, il doit bien être possible d'extraire des infos de ces faces latérales, c'est sans doute la solution la + évidente.Cependant, il faut que les points de saisies soient réguliers dans le principe. J'ai aussi dessiné toutes les faces 3D reliant ces deux polylignes Mais tu as du utiliser une commande de maillage, tu n'as pas fait 30000x4 mini saisies de points ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
didier Posté(e) le 16 mai 2004 Posté(e) le 16 mai 2004 hello KLRil m'a été impossible de me pencher sur ton soucipour une raison simplej'ai perdu AutoCad toute la journée de samedivoir mon message de demande de secourset de plus, vu le traitement de chevalque j'ai fait subir à mon PCje n'ai pas de trace de l'envoi que tu m'as faitsi tu es toujours dans le besoin, je vais te demanderde me refaire le message avec l'exemple associédésolé, mais je vais essayer de rattraper le temps perduamicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant