kataryna2001 Posté(e) le 19 mai Posté(e) le 19 mai Bonjour, J'essai de faire la topographie avec les courbes de niveaux de Gérone. J'ai un fichier DWG avec des points géomètre que je voudrai exporter en .txt afin de modéliser la topographie sur Archicad. Cependant, j'ai un soucis. Mes points ne sont pas des blocs, et chaque point a les positon X et Y de remplis, mais la position Z est nulle, donc je ne peux pas extraire mes données. J'ai dans la partie Texte Index la bonne altimétrie, mais en géométrie la position Z est nulle. Est-ce que vous avez une astuce pour copier le texte de l'altimétrie et le coller dans la partie position Z ? Ou comment puis-je faire ? Je ne veux pas remplir ces milliers de points à la main. Merci d'avance. Je vous joins le fichier. DESSIN POINT TOP GERONE.dwg Citer
Dilack33 Posté(e) le 19 mai Posté(e) le 19 mai Bonjour, ci joint tes point topo en 2D et 3D ainsi que la liste de tes points, Il y a 13621 pts pour 13679 textes. A toi de faire les contrôles. Comme les textes n’avaient pas nécessairement le même point d'insertion au niveau des points AutoCAD il a fallu faire plusieurs passes. J'ai utilisé Covadis après avoir cherché une solution en Lisp (recherche vite faite, sans trop de résultats) Cdt DESSIN POINT TOP GERONE.csv DESSIN POINT TOP GERONE_3D.dwg DESSIN POINT TOP GERONE_2D.dwg 1 Citer
didier Posté(e) le 19 mai Posté(e) le 19 mai Bonjour @kataryna2001 Voici ma version, en 3D avec des blocs points et attributs. Ah zut ! je ne peux plus déposer de fichiers... désolé Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Fraid Posté(e) le 20 mai Posté(e) le 20 mai Bonjour, Un petit challenge. Voici une solution qui en traite 13004. On peut ajouter des positions relatives dans la liste aux milieux du code. (vl-load-com) ; txt2z, Eleve un bloc selon le texte situé à une position relative au bloc. ; Le dessin ne doit contenir que les textes et les blocs concernés. (defun c:txt2Z ( / acobj acdc model ltext pt ld ind pos z cpt d pr) (prompt "\n Traitement en cours ...") (setq acobj (vlax-get-acad-object) acdc (vla-get-activedocument acobj) model (vla-get-modelspace acdc) ltext '() cpt 0) ; Création de la liste d'association ltext '((position_relative . z) ...) (vlax-for obj model (if (= (vla-get-ObjectName obj) "AcDbText") (setq pos (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))) ltext (append ltext (list (cons (strcat (rtos (car pos)) "," (rtos (cadr pos))); Position plus pratique en texte. (vla-get-textstring obj))))); Z ) ) ; Pour chaque bloc on cherche si il a une association avec la liste ltext. (vlax-for obj model (if (= (vla-get-ObjectName obj) "AcDbBlockReference") (progn (setq pt (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))) ; Liste des positions observées. ld '((0.5 0.15) (0.501 0.15) (0.5 0.151) (0.501 0.151) (0.499 0.15) (0.5 0.149) (0.499 0.149) (0.497 0.101) (0.496 0.105) ) ind 0 z nil) ; Tant qu'une position ne soit trouvée ou aucune. (while (not z) (setq d (nth ind ld) pr (strcat (rtos (+ (car pt) (car d))) "," (rtos (+ (cadr pt) (cadr d))))) (if (setq z (cdr (assoc pr ltext))) (progn ; Elévation du bloc (vla-put-InsertionPoint obj (vlax-3d-point (list (car pt) (cadr pt) (atof z)))) ; Suppression de la position dans la liste. (vl-remove pr ltext) (setq cpt (1+ cpt)) ) ) (setq ind (1+ ind)) (if (= ind (length ld)) (setq z T)) ) ) ) ) (princ (strcat "\n Nombre de blocs traités -> " (itoa cpt))) ) Taper txt2z attendre un peux ... 2 Citer https://github.com/Fraiddd
lili2006 Posté(e) le 20 mai Posté(e) le 20 mai Bonsoir à toutes et tous, Avec le MNT,.. Adresse du fichier => https://ca-a1-2022.kroqi.fr/shared/#/file/d6c6799994327afc9597c1f3ce2e0bc6e17abdce565d866b8b7dec76e4c2f1ad Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Fraid Posté(e) le 21 mai Posté(e) le 21 mai J'ai modifié le lisp précédant. Beaucoup plus rapide, avec une boucle while qui permet d'économiser des itérations, et un allégement progressif de la liste d'association. Une partie des textes on été posés comme des étrons à coté de leur pot, donc intraitables de cette façon. Il est surement possible de traiter tout les blocs en cherchant le texte le plus près. Cela doit être super long et peux comporter de nombreuses erreurs quand les blocs sont rapprochés. Tcho Citer https://github.com/Fraiddd
Messages recommandés