dilack Posté(e) le 20 septembre 2006 Posté(e) le 20 septembre 2006 salut à tousJe viens de récupérer un fichier tn avec (vous allez rire) des point AutoCAD en 2D et les altitudes en formes de textes (sans doute attribut convertit en texte).Etant donné que je n'ai pas covadis je recherche un lisp qui serait capagble de recréer un bloc avec mon point AutoCAD et le texte de l'altitude en attribut.De mmoire je crois avoir vu un fil sur un meme problème mais je n'arrive pas un remettre la main dessus.alors si qq'un passe par là. Merci d'avance Certain géomètre (heureusement pas tous) on vraiment une philosophie à la con ou ne save vraiment pas qoui inventer pour faire chier les be
didier Posté(e) le 20 septembre 2006 Posté(e) le 20 septembre 2006 hello, Un géomètre prend la parole pour te répondre,ce que tu demandes n'est possible que s'il y a une relation fixeentre le point (topo) et le point d'insertion du texte.sinon ça va ressembler à du flou à peu près environ presque bon. sans polémiquer, si le devis ne précise pas explicitementla livraison d'un fichier informatique, le collègue a eu raison d'agir ainsi.il m'est arrivé de le faire, pas pour faire ch...,mais pour ne pas être doublé dans une affaire où je me suis investiet qu'un tiers utilise mes données à ma place.Soyez clairs dans les commandes et nous serons clairs dans la livraison de nos fichiers.il est courant que la fourniture de MNT soit précisée dans le deviset j'en tiens compte pour établir mes prix. par ailleurs, contacte le géomètre en passant par le maître d'oeuvre,il serait étonnant qu'il refuse de filer son fichier non "nettoyé" enfin pour répondre à ton souhait,veux tu être guidé pour faire un lispou bien veux tu le copier coller. amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
(gile) Posté(e) le 20 septembre 2006 Posté(e) le 20 septembre 2006 Salut, Voici un petit LISP.Pour éviter les imprécisions évoquées par Didier, il est nécessaire de sélectionner successivement un point et le texte qui lui est associé. Le bloc (point + attribut) est inséré à l'endroit du point. Au premier appel de la fonction si le bloc n'existe pas dans le dessin, il est créé. La hauteur de texte de l'attribut est fonction de la valeur des variables système TEXTSIZE et DIMSCALE. ;;; MakePointBlock Crée le bloc "PointAltBlock" (defun makepointblock (/ AcDoc Block) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Block (vla-add (vla-get-blocks AcDoc) (vlax-3d-point '(0 0 0)) "PointAltBlock" ) ) (vla-addPoint Block (vlax-3d-point '(0 0 0))) (vla-addAttribute Block (getvar "TEXTSIZE") acAttributeModePreset "" (vlax-3d-point (list (/ (getvar "TEXTSIZE") 2) 0 0)) "Altitude" "0.0" ) ) ;;; TxtPt2Block Change le point et le texte associé en bloc avec attribut (defun c:TxtPt2Block (/ AcDoc Space pt text ref) (vl-load-com) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (if (not (tblsearch "BLOCK" "PointAltBlock")) (MakePointBlock) ) (while (and (setq pt (car (entsel "\nSélectionnez un point: "))) (= (vla-get-objectName (setq pt (vlax-ename->vla-object pt))) "AcDbPoint" ) (setq text (car (entsel "\nSélectionnez le texte associé: ")) ) (wcmatch (vla-get-objectName (setq text (vlax-ename->vla-object text)) ) "*Text" ) ) (vla-StartUndoMark AcDoc) (setq ref (vla-InsertBlock Space (vla-get-Coordinates pt) "PointAltBlock" 1.0 1.0 1.0 0.0 ) ) (vla-put-TextString (car (vlax-invoke ref 'GetAttributes)) (vla-get-TextString text) ) (vla-ScaleEntity (car (vlax-invoke ref 'getAttributes)) (vla-get-Coordinates pt) (getvar "DIMSCALE") ) (vla-delete text) (vla-delete pt) (vla-EndUndoMark AcDoc) ) (princ) ) PS : Je ne suis pas géomètre et ne connais rien au MNT, il y a certainement des choses à modifier, moi et/ou d'autres pourront sûrement t'aider à le faire. [Edité le 21/9/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bonuscad Posté(e) le 20 septembre 2006 Posté(e) le 20 septembre 2006 Si les points sont de pas trop nombreux, car si c'est un semis de 10 000 pts.., va avoir une crampe à l'index. Dans le même registre il y avait eu cette discussion Mais ces deux méthodes semi-assistées sont les plus fiables, car c'est toi qui désigne le texte.Cela pourrait être automatisé si les écritures sont implantées et formatées toute pareilles ET SANS CHEVAUCHEMENT (texte unique).On pourrait alors faire un (ssget "_C" p1 p 2 '((0 . "TEXT"))) pour faire une capture de la valeur à chaque point. Le plus simple et de récupérer le semis 3D auprès du géomètre. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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