Chanoine Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 Bonjour à tous,j'ai récupéré sur le site du cadastre des fichiers .text (bloc-note) avec des coordonnées en X et en Y, ainsi que le numéroi de saisie des points.J'aimerai savoir comment les importer sous autocad 2006 pour qu'ils apparaissent sous forme de points dans un dessin. Cela me permettra de modéliser les parcelles cadastrales.Merci de votre aide. ;)
(gile) Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 Salut, Penser à utiliser la recherche, le sujet a été maintes fois abordé... Par exemple ici Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Chanoine Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 Merci beaucoup, je m'en vais essayer ça...Honnêtement, je pensais qu'il y avait une manip directement dans autocad, bref sans besoin d'un lisp.Mais c'est très bien comme ça :) :)
Chanoine Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 Ca marche pas... J'ai pourtant bien mis le point virgule où il fallait dans le lisp car les points sont en 2d, mais ça ne me donne aucun point sur mon fichier, quelque soit le calque...Y aurait-il une manip à faire en plus de choisir fichier puis choisir fichier texte et séparateur dans fichier?Faut-il bidouiller les fichiers fournis par le cadastre pour que le lisp fonctionne?
(gile) Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 Effectivement, le LISP est prévu pour des points 3dDonne les premières lignes de ton fichiers que je vois comment il est fait.Tu veux importer des blocs avec le matricule comme attribut ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Chanoine Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 /* CDIF : PARIS OUEST - Commune : PARIS 15 (75) */1 596864,58 126796,892 596858,92 126805,063 596841,42 126829,554 596840,76 126831,225 596827,43 126821,566 596828,76 126819,897 596833,92 126819,068 596861,58 126780,069 596870,42 126788,89 En effet, pouvoir les importer avec leur matricule comme attribut serait parfait...
(gile) Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 Voilà,C'est du sur mesure parce que ton fichier point est curieusement foutu (points 2d, séparateur décimal = virgule et séparateur de données = espace)Le LISP crée une définition de bloc s'il ne trouve pas de bloc nommé "PointBloc". Si tu préfères faire un bloc selon tes désir il suffit qu'il soit présent dans la collection du dessin avant de lancer le LISP. (defun c:ptfins (/ makeblock filename space file line lst insert) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*))) (defun makeblock (/ block) (vl-load-com) (setq block (vla-add *blocks* (vlax-3d-point '(0. 0. 0.)) "PointBloc" ) ) (vla-addPoint block (vlax-3d-point '(0. 0. 0.))) (vla-addAttribute block (getvar "TEXTSIZE") acAttributeModePreset "" (vlax-3d-point (list (/ (getvar "TEXTSIZE") 2) 0 0)) "MATRICULE" "0.0" ) ) (if (setq filename (getfiled "Sélectionner un fichier point" "" "txt" 0) ) (progn (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list *blocks* "PointBloc") ) ) (makeblock) ) (setq space (vla-get-ModelSpace *acdoc*) file (open filename "r") ) (while (setq line (read-line file)) (setq lst (mapcar 'read (str2lst (vl-string-translate "," "." line) "\t"))) (if (vl-every 'numberp lst) (progn (setq insert (vla-InsertBlock space (vlax-3d-point (list (cadr lst) (caddr lst) 0.)) "PointBloc" 1.0 1.0 1.0 0.0 ) ) (vla-put-TextString (car (vlax-invoke insert 'getAttributes)) (itoa (car lst)) ) ) ) ) (close file) ) ) (princ) ) ;; str2lst ;; 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) ) (list str) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Chanoine Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 Merci beaucoup (gile), je vais essayer ça de suite...Ce sont les fichiers que l'on peut exporter depuis le site du cadastre... :)
Chanoine Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 J'obtiens seulement un point 0,0 et aucun des points de mon fichier .txt.Mais il est possible que cela vienne de moi et que je ne sache pas me servir du lisp.Désolé du dérangement, :( , mais je n'ai que 48 points à rentrer, je vais le faire à la main, histoire de pas pousser le bouchon trop loin.)Merci à toi pour l'effort fourni (en tout cas, chapeau pour le temps de réaction et la vitesse d'acriture du lisp, je suis bluffé!!!). ;)
rebcao Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 Bonsoir, Un moyen simple que j'utilise ! Comme le formattage des fichiers changent souvent j'utilise EXCEL pour ouvrir le fichier de points... Ensuite j'utilise un fichier EXCEL pour générer des points (BLOCS) dans AutoCAD... voici ce sujet... Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
(gile) Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 J'obtiens seulement un point 0,0 et aucun des points de mon fichier .txt. Très curieux, je viens de faire un nouveau test dans un profil vierge de toute personnalisation sans souci.Dans un dessin vierge, tu charges le LISP, tu lances PTFINS, tu choisis le fichier txt depuis la boite de dialogue, Ouvrir et l'insertion des blocs est automatique. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Chanoine Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 Ben, moi ça marche pô! :calim: C'est peut-être du à ma version (la 2006)?
bonuscad Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 Salut, Tu peux essayer la routine TOPO sur ma page Celle ci fonctionne pour toutes les versions 200X (lisp classique avec des "command", je ne l'ai pas encore actualisé) Il te faudra juste supprimer la 1er ligne (/* CDIF : PARIS OUEST - Commune : PARIS 15 (75) */) de ton fichier XYZ et déclarer la virgule comme séparateur décimal dans la boite de dialogue lors de l'utilisation de la routine.PS: Génère des points et non des blocs Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Chanoine Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 Pour christian, ce serait avec plaisir si on ne nous avait pas enlevé excell, sous prétexte qu'Open Office était gratuit... :casstet: Et les macros qu'on avait sous les vieux fichiers, on a du se les recoletiner une par une... :mad: En plus, on a pas Ooo dernière version, même si c'est gratos, mais la 2.1! :mad: :casstet: :mad: Enfin bref, je risque pas :yltype: d'utiliser les outils fournis comme compatibles avec excell, et c'est bien dommage... :calim:
Chanoine Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 Ok Bonuscad, j'essaye.Merci de l'info ;) ...
(gile) Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 Je viens de tester sur une 2006, pas de souci avec le bout de fichier que tu as posté.Essaye de recopier te recharger le code... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Chanoine Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 Pour Bonuscad: ça marche pas... Je n'ai aucun point malgré que les deux fichiers soient correctement installés...Pour (gile), je vais essayer ça dès mon retour au boulot.Je commence à me demander si je n'ai pas un problème avec mon autocad. Pourtant les lisp ont toujours correctement fonctionné jusqu'ici. Va falloir sinon que je m'intéresse aux variables, histoire de voir si une mauvaise valeur sur l'une d'elle ne gène pas son utilisation.Merci pour le temps passé sur mon problème ;) ;) ;)
Chanoine Posté(e) le 28 janvier 2009 Auteur Posté(e) le 28 janvier 2009 Hum! Ben, j'ai recopié le code et je l'ai rechargé, j'ai essayé et ça ne marché toujours pas. Au mieux j'obtiens un bloc 0,0 et rien d'autre. Aucun des points de mon fichier...Tous mes lisps fonctionnent sauf celui là, et celui de Bonuscad...Je commence à croire que mon autocad ne permet pas l'import de points... pour une raison qui m'est inconnue... :casstet: Agaçant, hein? :casstet: :casstet: :casstet:
Chanoine Posté(e) le 28 janvier 2009 Auteur Posté(e) le 28 janvier 2009 CA MARCHE!!!!!!!! :D :D :D J'ai compris le problème: en fait, le document .txt fourni par le cadastre est mal configuré.Ton lisp marchait très bien car tu as récupéré les informations de mon message et tu les as recopiés dans un .txt.Dans le document du cadastre, les espaces sont configurés différemment: il faut les suprimer puis les restaurer.UN GRAND MERCI A TOUS (et à (gile) et Bonuscad et Rebcao en particuliers!!!!! :D
bonuscad Posté(e) le 28 janvier 2009 Posté(e) le 28 janvier 2009 Tous mes lisps fonctionnent sauf celui là, et celui de Bonuscad... Etrange, j'ai fais un essai avec ton extrait (en enlevant la 1ere ligne)et pas de soucis. Arrive tu jusqu'à la boite de dialogue qui te permet de choisir l'échelle et les calques de destinations.Si oui, le dessin des points à du se faire (mais il faut faire un zoom étendu après la routine pour voir les points.) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Chanoine Posté(e) le 28 janvier 2009 Auteur Posté(e) le 28 janvier 2009 Merci à toi, mais en fait c'est le .txt du cadastre qui me met dedans: il faut que je supprime puis restaure tous les espaces des .txt fournis par le cadastre. C'est toujours moins long que de rentrer tous les points à la main... ;) Merci à vous!!! ;)
(gile) Posté(e) le 28 janvier 2009 Posté(e) le 28 janvier 2009 Y a-t-il un message sur la ligne de commande ?Le fichier txt est-il exactement tel que tu l'as donné plus haut (dans un des premiers messages tu parles de séparateur point virgule) ? "0.0" est la valeur par défaut de l'attribut. Un bloc est donc bien inséré, mais la routine plante à la mise à jour de l'attribut. Peux tu m'envoyer le fichier txt (ou me donner un lien).gilecantel (at) orange.fr Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Chanoine Posté(e) le 28 janvier 2009 Auteur Posté(e) le 28 janvier 2009 Voici le fichier envoyé, même si le sujet est résolu... J'ignore pourquoi leur fichier .txt est bidouillé comme ça, mais un minimum de retravail dessus permet de gagner beaucoup de temps grace à vous... :)
(gile) Posté(e) le 28 janvier 2009 Posté(e) le 28 janvier 2009 Salut, en fait le séparateur de données n'est pas l'espace mais la tabulation.J'ai modifié le code de ptfins, ça fonctionne maintenant sans avoir besoin de remplacer les tabulations par des espaces. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Chanoine Posté(e) le 28 janvier 2009 Auteur Posté(e) le 28 janvier 2009 Ouah! C'est génial!!!Bravo au roi du lisp!!! :D
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