Aller au contenu

Messages recommandés

Posté(e)

salut à tous

Je 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

Posté(e)

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 fixe

entre 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 explicitement

la 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 investi

et 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 devis

et 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 lisp

ou bien veux tu le copier coller.

 

amicalement

Posté(e)

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

Posté(e)

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

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité