albator44 Posté(e) le 23 août 2017 Posté(e) le 23 août 2017 Bonjour à tous,je cherche à faire une commande (en lisp, vba ou autre: j'ai pas de préférence, je connais aucun de ces langages pour le moment).le sujet est récurent, il faudrait importer des points d'un fichier texte (NXYZC), en faire un mnt et pouvoir extraire un profil selon une polyligne.je sais que ça a déjà été fait, j'ai trouvé plein d'exemples mais je m'en sors pas.aujourd'hui je fais tout ces imports et plong avec mensura mais je suis le seul à l'avoir et nous avons de plus en plus de techniciens qui n'ont qu' autocad (complet c'est déjà ça).Quelqu'un a t il des pistes pour moi, des liens, des conseils?Merci d'avance.
lecrabe Posté(e) le 23 août 2017 Posté(e) le 23 août 2017 Hello 1) Alors depuis un fichier externe de Points XYZ, pour generer des Points graphiques AutoCAD (ou autre chose) tu pourras utiliser l'excellent Point Manager de Lee-Mac ... http://www.lee-mac.com/ptmanager.html Voir aussi InsTopo de Gilles ... http://gile.pagesperso-orange.fr/LISP/InsTopo.lsp 2) Maintenant ayant N points graphiques XYZ, tu pourras utiliser l'excellent TRIANGULATE de Elpanov (ou son equivalent en DotNet par Gilles) ... http://elpanov.com/index.php?id=6J'ai pousse "a fond" la routine de Elpanov et donc sa limite semble etre a environ 1 000 000 de Points XYZ dans AutoCAD si tu as ASSEZ de memoire pour le traitement !? L'equivalent en DotNet par Gilles ... http://cadxp.com/topic/37959-mnt-avec-autocad/ Maintenant tu as un joli MNT 3D compose de N 3DFaces triangulees ... RAPPEL : Algo NORMAL de traitement sans gestion des Lignes de rupture ! 3) Desole mais depuis cet ensemble de 3DFaces, je ne connais aucune routine capable de generer des Profils (A partir d'une Polyligne de "Parcours" 2D au sol ou 3D au dessus du MNT 3D), puis de les coter et de les habiller ... avec tous les parametres que l'on peut imaginer !?-- SVP si tu as, "nous" sommes preneurs !! 4) Conseil: UNE licence COVADIS sur l'un des tes AutoCAD 201X ou AutoCAD MAP 201X ou AutoCAD Architecture 201X, pourrait s'averer TRES UTILE !? Un GRAND MERCI a Lee-Mac, Elpanov et Gilles ! Bye, lecrabe Autodesk Expert Elite Team
albator44 Posté(e) le 23 août 2017 Auteur Posté(e) le 23 août 2017 Merci lecrabe,j'avais trouvé sur un post le lisp d'Elpanov mais je n'ai pas su faire marcher la version de (gile) --> commande inconnue...penses tu qu'insTopo peut être modifié pour insérer un code (attribut supplémentaire) aux points? pour le point 3, effectivement ça aurait été trop beau et pour le point 4... je crois que je vais continuer à le faire avec mensura... merci pour tous ces liens.
DenisHen Posté(e) le 24 août 2017 Posté(e) le 24 août 2017 Salut. Je doute que ce soit "facile" de modifier le programme de (gile). Mais j'ai ça (commande : "DHPtTopo" pour configurer et importer les points) qui pourrais t'aider. La structure de ton fichier doit être : Matricule X Y Z Code. Attention, placer le .LSP et le .DCL dans un répertoire connu d'AutoCAD et charger le .LSP avec "appload". Pourrais-tu me faire un retour si ça fonctionne, je ne l'ai testé qu'une seule fois... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
albator44 Posté(e) le 24 août 2017 Auteur Posté(e) le 24 août 2017 salut et merci,j'ai dû louper un truc: A la première utilisation tout est ok jusqu'au moment de l'import --> pas de création de calques ni de pts, rien ne se produit en fait.Dès la seconde utilisation, la boite de dial s'ouvre et se referme aussitôt : il faut fermer/ouvrir autocad pour retourner à ... une première utilisation. J'ai utilisé un fichier de 150 pts de type N;X;Y;Z;Code.j'ai placé le lsp et dcl dans un dossier connu (chemin de recherche des fichiers support) et ai chargé le lisp avec appload ou par "outils/charger une appli..." des fois que... voilà tout ce que je peux te dire, t'as une idée?
DenisHen Posté(e) le 24 août 2017 Posté(e) le 24 août 2017 Merci du retour. Je ne vois pas où ça peut déconner... Tu as bien sélectionner le bon séparateur ? Si non, tu peux toujours m'envoyer ton fichier points et je t'enverrais le dwg avec l'import... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
albator44 Posté(e) le 24 août 2017 Auteur Posté(e) le 24 août 2017 merci de ta proposition mais c'était pour dépanner mes collègues qui n'ont pas mensura.il me faut une solution à long terme pas un dépannage.par contre je peux peut être t'envoyer le fichier de points pour voir si c'est chez moi que ça bloque, que nos fichiers sont mal foutu ou ...ok? mais comment on joint un fichier?
DenisHen Posté(e) le 24 août 2017 Posté(e) le 24 août 2017 Tu peux me l'envoyer par MP ? Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
albator44 Posté(e) le 25 août 2017 Auteur Posté(e) le 25 août 2017 Salut,apparemment mon poste ne veux pas joindre de fichier aujourd'hui.ci dessous un extrait de mon fichier, si ça peut aider: 1;5000;5000;9.7255;Commencer2;5001.949;5011.59;11.7115;clou-amont3;4976.623;4959.682;9.4585;clou-aval4;4996.006;4973.983;8.3775;lde5;5017.775;4983.285;11.2025;clou1-pass6;5007.742;4998.174;11.0435;clou2-pile7;4998.891;4994.219;7.6855;fe8;4998.95;4994.256;8.3885;lde
DenisHen Posté(e) le 25 août 2017 Posté(e) le 25 août 2017 Salut. Effectivement, ma routine déconne... Désolé. Je tente de regarder ça au plus tôt... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 25 août 2017 Posté(e) le 25 août 2017 Salut. Je t'ai écris ce bout de code vite fait qui devrait fonctionné (car il fonctionne chez moi sur AutoCAD MAP 2018), la commande est : DHImportPTTopo(defun c:DHImportPTTopo () (setq Separateur ";") ;caractère de séparation des données (setq HautCode 0.6) ;hauteur du texte Code = 0.6 (setq HautAlti 1) ;hauteur du texte Altitude = 1 (setq HautMatri 0.8) ;hauteur du texte Matricule = 0.8 (setq CalqXY "TOPO_PT_XY") ;Nom du calque pour les points en 2D (juste X et Y) (setq CalqXYZ "TOPO_PT_XYZ") ;Nom du calque pour les points en 3D (X, Y et Z) (setq CalqMatri "TOPO_PT_MATRI") ;Nom du calque pour les matricules (setq CalqAlti "TOPO_PT_ALTI") ;Nom du calque pour les altitudes (setq CalqCode "TOPO_PT_CODE") ;Nom du calque pour les codes (if (not (tblsearch "layer" CalqXY)) (command "-calque" "n" CalqXY "") ) ;_ Fin de if (if (not (tblsearch "layer" CalqXYZ)) (command "-calque" "n" CalqXYZ "") ) ;_ Fin de if (if (not (tblsearch "layer" CalqMatri)) (command "-calque" "n" CalqMatri "") ) ;_ Fin de if (if (not (tblsearch "layer" CalqAlti)) (command "-calque" "n" CalqAlti "") ) ;_ Fin de if (if (not (tblsearch "layer" CalqCode)) (command "-calque" "n" CalqCode "") ) ;_ Fin de if (if (not (tblsearch "style" "Matricule")) (command "-style" "Matricule" "Simplex.shx" "0" 0.8 "0" "Non" "Non" "Non") ) ;_ Fin de if (if (not (tblsearch "style" "Altitude")) (command "-style" "Altitude" "Simplex.shx" "0" 1 "0" "Non" "Non" "Non") ) ;_ Fin de if (if (not (tblsearch "style" "Code")) (command "-style" "Code" "Simplex.shx" "0" 0.6 "0" "Non" "Non" "Non") ) ;_ Fin de if (setq Fichier (getfiled "Sélectionner un fichier point" "" "*;*" 0)) (if (/= (findfile Fichier) "") (progn (princ "\nImportation des points Topo *************************") (setq File (open Fichier "r")) (while (setq Lign (read-line File)) (setq LignList (str2lst Lign Separateur)) (setvar "Clayer" CalqXY) (command "point" (strcat (nth 1 LignList) "," (nth 2 LignList)) "") (setvar "Clayer" CalqXYZ) (command "point" (strcat (nth 1 LignList) "," (nth 2 LignList) "," (nth 3 LignList) "")) ;_ Fin de command (setvar "Clayer" CalqMatri) (command "_.-TEXT" "S" "Matricule" "J" "D" (strcat (nth 1 LignList) "," (nth 2 LignList)) HautMatri 100 (nth 0 LignList)) ;_ Fin de command (setvar "Clayer" CalqAlti) (command "_.-TEXT" "S" "Altitude" "J" "BG" (strcat (nth 1 LignList) "," (nth 2 LignList)) HautAlti 100 (rtos (atof (nth 3 LignList)))) ;_ Fin de command (setvar "Clayer" CalqCode) (command "_.-TEXT" "S" "Code" "J" "HG" (strcat (nth 1 LignList) "," (nth 2 LignList)) HautCode 100 (nth 4 LignList)) ;_ Fin de command ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de defun ;; STR2LST (de (gile)) ;; Transforme un chaine avec séparateur en liste de chaines ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur ;; Exemples ;; (str2lst "a b c" " ") -> ("a" "b" "c") ;; (str2lst "1,2,3" ",") -> ("1" "2" "3") ;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep)) ;_ Fin de cons (list str) ) ;_ Fin de if ) ;_ Fin de defun Tu peux copier/coller la totalité du code dans un fichier avec l’extension LSP et tu le charge. Le code fini par une erreur, mais tous les points sont bien importés... Les premières lignes servent à paramétrer les données : Separateur est le caractère séparateur entre guillemets. HautCode sera la hauteur de texte contenant le code (sans guillemets). HautMatri et HautAlti seront pour le matricule et l'altitude. Et CalqXY sera le nom du calque contenant les points en 2D (entre guillemets), CalqXYZ en 3D (avec le Z).CalqMatri contiendra les matricules, CalqAlti et CalqCode pour les Altitudes et les Codes. Par contre, je ne sais pas si ça fonctionnera sur Mensura... Le fichier DCL est inutile. N'hésite pas si tu as des problèmes et tiens-moi au courant... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
albator44 Posté(e) le 25 août 2017 Auteur Posté(e) le 25 août 2017 Bah merci bien.ça fonctionne parfaitement.comme je te l'avais dit, je vais le placer sur les postes de mes collègues, ça va pas mal nous dépanner.A+
DenisHen Posté(e) le 25 août 2017 Posté(e) le 25 août 2017 Cool, content d'avoir aidé... N'oublie pas de noté [Résolu] à ton entête du premier message (en mode "Utiliser l'éditeur complet")... A+ Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
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