Aller au contenu

Changer étiquettes blocs en masse


Messages recommandés

Posté(e)

Bonjour,

 

Lorsque l'on construit un MNT avec Covadis, le programme ne reconnait les blocs points que si les attributs altitude ont pour étiquette ALT.

Comme je reçois occasionnellement des levés Allemand, les attributs ALT ont pour etiquette HOEHE.

Comment renommer à la volée toutes les étiquettes HOEHE en ALT sans passer par BATTMAN pour chaque bloc?

 

EDIT : Les points même avec l'attribut renommé ne sont pas reconnus comme points par Covadis.

C'est plus simple de faire une DATAEXTRACTION, de créer un fichier de points et de les reconstruire au final.

Posté(e)

Bonjour,

Et pourquoi ne pas créer une liste en faisant "une extraction de données" de tes points allemands et réinjecter ces points avec les bons paramètres pour covadis?

Posté(e)

Salut Ernest.

Tu peut aussi substituer les blocs pour qu'ils aient tous le même nom. Soit avec BLOCKREPLACE de l'Express tool, soit avec le lisp RBLOC de Patrick:

https://forums.autodesk.com/t5/autocad-tous-produits-francais/lisp-les-lisp-de-patrick-35/td-p/8884693

Une fois qu'ils ont tous le même nom, Purge, BATTMAN, et c'est réglé.

Lispeur éternel débutant!
Autocad Map3D 2023
Covadis-Autopist 18.2

Posté(e)

Salut Vincent P.,

 

Effectivement, merci pour cette autre piste, je ne pense jamais à regarder du côté des express tools. C'est un tort.

 

Posté(e)

Bonjour,

 

Enregistrer en DXF, puis ouvrir le DXF sous Notepad++ (ou  n'importe quel autre éditeur de texte), puis faire un rechercher/remplacer HOEHE par ALT.

Sauvegarder le DXF, puis le réouvrir sous AutoCAD.

 

Olivier

  • Like 1
Posté(e)

Permet de changer l'étiquette de l'attribut.

Commande à taper :

(foo "BlocName" "HOEHE" "ALT")

Programme

(defun foo (b ot nt / at b o ot nt r s x)
  (cond
    ((and (tblobjname "BLOCK" b) (setq s (ssget "_X" (list '(0 . "INSERT") (cons 2 b)))))
     ;; Gather ALL existing values
     (foreach e    (mapcar 'cadr (ssnamex s))
       (setq at (vlax-invoke (setq o (vlax-ename->vla-object e)) 'getattributes))
       (setq r (cons (list o (mapcar '(lambda (x) (vla-get-textstring x)) at)) r))
     )
     ;; Update block definition
     (vlax-for a (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) b)
       (if (and (= "AcDbAttributeDefinition" (vla-get-objectname a)) (= ot (vla-get-tagstring a)))
     (vla-put-tagstring a nt)
       )
     )
)))

A tester.

Posté(e)

Merci merci! N'en jetez plus! Que de solutions que je n'avais pas envisagé!

La solution d'Olivier est amusante, mais comme HOEHE apparait également ailleurs que dans le nom d'étiquette elle est plus compliquée à mettre en oeuvre.

Celle de Thierry réclame de le faire pour chaque bloc ce qui est un peu chronophage, car il y a une 20 aines de blocs points différents.

Par ailleurs je dois également changer BESCHRIFTUNG en MAT, ce que je n'avais pas précisé.

Bref, DATAEXTRACTION a été le plus rapide au final.

Merci encore à tous.

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é