CLOTHO Posté(e) le 10 mai 2016 Posté(e) le 10 mai 2016 Bonjour, J'ai reçu un fichier avec des points 2D (entités points) et des textes qui devrait être des attributs de blocs.Le but est de convertir les points 2D en 3D avec comme Z la côte mentionnée dans le texte à côté (le plus proche). Tous les logiciels de conception routière sont capable de le faire si c'étaient des attributs de blocs.Je me demande s'il y a un lisp qui le fait? Je joins un extrait du fichier autocad.Merci de vos réponses.Points 2D.zip Autopiste & Covadis V14 - Mensura V7 - Autocad Civil3D 2013
Olivier Eckmann Posté(e) le 10 mai 2016 Posté(e) le 10 mai 2016 Bonsoir, comme tu as mis Covadis dans ta signature, prends le menu "Covadis Edition / Points topographiques / Affecte Z selon texte" qui est la fonction dédiée pour ta problématique. Olivier
didier Posté(e) le 11 mai 2016 Posté(e) le 11 mai 2016 Coucou Eh oui ! tu es tombé sur quelqu'un qui pourrit bien son fichier avant de le livrer, c'est souvent le cas chez certaines professions dont une a le siège de son ordre 40 avenue Hoche en particulier !!! Les solutions sont bancales car tu n'as pas les points en 3D (ils auraient pû oublier de descendre les points en les décomposant) donc il va falloir travailler à la pince à épiler puisque dans ton cas ils ont poussé le vice à déplacer le texte par rapport au point ce qui ne permet pas facilement de lier texte et point. J'ai fait (dans le temps) un lisp qui permettait de cliquer texte puis point et d'en faire un bloc en 3D avec le Z en valeur attributaire.Covadis le permet aussi mais comme les écarts (texte et point) ne sont pas constants le résultat sera erratique. Dernière solution, téléphoner à l'auteur, prendre une voix douce et lui demander le fichier natif, ou un listing des points par exemple. Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
Olivier Eckmann Posté(e) le 11 mai 2016 Posté(e) le 11 mai 2016 Bonjour, @didier, Cette commande Covadis a pas mal évolué. Une fois la commande lancée, le résultat s'affiche dans un dialogue avec un code couleur indiquant si autour du point 0, 1 ou plus d'un texte ont été trouvés, en cliquant sur chaque ligne de la grille (chaque point), ça zoome sur le point avec la matérialisation du rayon de recherche et l'indication de la valeur trouvée. Si ce n'est pas le bon texte qui a été trouvé, il suffit de cliquer sur l'icône du choix pour sélectionner le bon texte à récupérer.C'est bien un traitement à la pince à épiler, mais quand même un peu plus automatique et qui permet de garder le contrôle total de ce que fait la machine si l'utilisateur le souhaite vraiment. Olivier
didier Posté(e) le 11 mai 2016 Posté(e) le 11 mai 2016 Coucou Merci de rendre à Géomédia ce qui appartient à Géomédia et de me remettre dans le droit chemin par la même occasion.Sache que je ne dis pas de mal de ce progiciel. Il est vrai que je n'ai plus utilisé cette commande depuis des lustres n'ayant que très rarement à travailler avec des fichiers provenant de l'extérieur, j'ai mes topos sous la main et je traite directement les fichiers. À l'occasion j'irai voir les évolutions de cette commande pour ne plus fourvoyer les gens avec mes réponses. Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 12 mai 2016 Posté(e) le 12 mai 2016 Coucou J'ai regardé ce que tu disais et ça confirme l'utilisation de la pince à épiler dans bien des cas.Souhaitons que CLOTHO ait pu contacter le saboteur l'auteur du fichier et retrouver sa 3D. Amicalement Éternel débutant… Mon site perso : Programmer dans AutoCAD
zebulon_ Posté(e) le 12 mai 2016 Posté(e) le 12 mai 2016 Bonjour, en plus le fichier a des unités en pieds...J'ai traité le fichier avec ce lisp, en changeant au préalable les unités en mètres et en rajoutant un bloc qui s'appelle TopoPoint qui contient 3 attributs : le matricule, l'altitude et le code symbole (defun c:pt2d3d () (setvar "CLAYER" "17-TOPOALT") (setq sspt (ssget "_X" '((0 . "POINT")))) (setq sstx (ssget "_X" '((0 . "TEXT") (8 . "17-TOPOALT")))) (setq I 0) (repeat (sslength sspt) (setq PT (ssname sspt I)) (setq I (1+ I)) (setq PTINS (cdr (assoc 10 (entget PT)))) (setq lstd nil) (setq J 0) (repeat (sslength sstx) (setq TX (ssname sstx J)) (setq J (1+ J)) (if (and (assoc 11 (entget TX)) (not (equal (cdr (assoc 11 (entget TX))) '(0.0 0.0 0.0) 0.0001)) ) (setq TXINS (cdr (assoc 11 (entget TX)))) ;; le point d'alignement s'il existe et non à (0 0 0) (setq TXINS (cdr (assoc 10 (entget TX)))) ;; sinon le point d'insertion ) (setq lstd (cons (list TX (distance PTINS TXINS)) lstd)) ) (setq TX (caar (vl-sort lstd '(lambda (e1 e2) (< (cadr e1) (cadr e2)))))) (setq ZVAL (distof (cdr (assoc 1 (entget TX))))) (setq XVAL (cadr (assoc 10 (entget pt)))) (setq YVAL (caddr (assoc 10 (entget pt)))) (setvar "attreq" 1) (setq MATRICULE "") (setq CodeSymbole "") (command "_insert" "TopoPoint" "_non" (trans (list xval yval zval) 0 1) 1 1 0 MATRICULE (cdr (assoc 1 (entget TX))) CodeSymbole) ) (princ) ) En pièce jointe le résultat AmicalementVincent PS : le nombre de points est relativement petit dans ce cas. Pour un fichier plus gros, avec un nombre de points plus grand, il aurait fallu restreindre le ssget '((0 . "TEXT")) à une zone en périphérie de chaque point étudié, plutôt que de prendre tous les textes d'altitude présents dans le fichierPoints 3D.zip C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
zebulon_ Posté(e) le 19 mai 2016 Posté(e) le 19 mai 2016 Bonjour, quoi de neuf ? Le fichier que j'ai pondu est-il satisfaisant ? AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
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