Aller au contenu

[Résolu] Z du points vers Attribut


CTZen

Messages recommandés

Salut la dream team !!!

 

 

J'ai trouvé le lisp (Merci Gile) pour faire Attribut > Z du point mais pas l'inverse ...

Je cherche donc une solution (lisp ?) pour appliquer l'information Z d'un bloc point vers son attribut d'altitude.

 

Et tout ça SANS utiliser Covadis (ou mensura, ou autre, ...).

 

Quelqu'un à la solution miracle ? :D

 

 

 

Merci !

AutoCAD Map 3D 2025
Covadis 18.2 + AutoPiste
Windows 11 Famille v.21H2 - 64 bits

Toujours à l'affût des bonnes astuces

Lien vers le commentaire
Partager sur d’autres sites

Salut...

 

Il existe MAJZ que je te laisse chercher sur le net... (je ne sais pas copier le code d'un lisp, désolé! ci dessous, le début du lisp pour t'aider dans ta recherche...)

 

((defun c:MAJZ (/ obj acdoc precision *error* oldcmdecho blk b att ss ins)

; Met à jour pour toutes les références du bloc choisi un attribut sélectionné,

; pour y afficher la coordonnée Z du bloc.

; Brice Studer, mars 2011

 

Par contre, juste par curiosité, pourquoi ne pas utiliser la fonction de Covadis qui fait ça très bien?...

 

Xav

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

Salut.

Voici le Lisp :

(defun c:MAJZ (/ obj acdoc precision *error* oldcmdecho blk b att ss ins)
; Met à jour pour toutes les références du bloc choisi un attribut sélectionné,
; pour y afficher la coordonnée Z du bloc.
; Brice Studer, mars 2011
;
;~~~~~~~ CONFIG ~~~~~~~~~~~
(setq precision 3) ; nombre de décimales de l'altitude
;~~~~~~~ FIN CONFIG ~~~~~~~
(vl-load-com)
(setq   acdoc (vla-get-ActiveDocument (setq
               obj (vlax-get-acad-object)))
)
;~~~~~~~ GESTION ERREURS ~~~~~~~~~~~
(defun *error* (msg)
       (vla-endundomark acdoc)
       (and msg
               (or
                       (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON"))
                       (princ (strcat "\nErreur : " msg))
               )
       )
       (if ss (vla-delete ss))
       (princ)
)
;~~~~~~~ FIN GESTION ERREURS ~~~~~~~
;~~~~~~~ SOUS-FONCTIONS ~~~~~~~~~~~
(defun PutAttValue ( object tag value )
       (mapcar
         (function
     (lambda ( attrib )
       (and
         (= tag (vla-get-TagString attrib))
         (vla-put-TextString attrib value)
       )
     )
         )
         (vlax-invoke object 'GetAttributes)
       )
       value
)
;~~~~~~~ FIN SOUS-FONCTIONS ~~~~~~~
(vla-StartUndoMark acdoc)
(while
       (not
               (and
                       (setq blk (car (entsel "\nSélectionnez un des blocs à mettre à jour: ")))
                       (setq blk (vlax-ename->vla-object blk))
                       (= (vla-get-ObjectName blk) "AcDbBlockReference")
                       (setq blk (vla-get-effectivename blk))
               );and
       );not
       (princ "\nL'objet sélectionné n'est pas un bloc ! ")
);while no bloc
(while
       (not
               (and
                       (setq att (car (nentsel "\nCliquez sur une valeur d'altitude: ")))
                       (setq att (vlax-ename->vla-object att))
                       (= (vla-get-ObjectName att) "AcDbAttribute")
                       (setq att (vla-get-tagstring att))
               );and
       );not
       (princ "\nL'objet sélectionné n'est pas un attribut ! ")
);while no attribute

(if (ssget "_X" '( (0 . "INSERT") ) )
       (vlax-for b (setq ss (vla-get-ActiveSelectionSet acdoc))
               (if (= blk (vla-get-effectivename B))
                       (progn
                               (setq ins (caddr (vlax-get b 'InsertionPoint)))
                               (putattvalue b att (rtos ins 2 precision))
                       )
               );if b = blk
       );vlax-for
);if ssget

(*error* nil)
(princ)
);MAJZ
(princ "\nCommande à utiliser: MAJZ")
(princ)

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Je ne comprend pas... Par un copier/coller...?

 

Tu veux dire que tu ne sais pas éditer un .lsp depuis AutoCAD (commande 'VLIDE) ?

 

Ou que tu ne sais pas le mettre en forme dans le forum (balises au dessus du texte "<>") ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous !

 

 

Merci pour la réponse, MAJZ fonctionne nickel !

 

Et en plus facilement paramétrable pour mettre seulement 2 décimales en début de lisp !

AutoCAD Map 3D 2025
Covadis 18.2 + AutoPiste
Windows 11 Famille v.21H2 - 64 bits

Toujours à l'affût des bonnes astuces

Lien vers le commentaire
Partager sur d’autres sites

Ah ... petite question tout de même ...

 

Vous savez comment faire pour qu'il ne supprime pas les Zéro de fin ?

 

Parce que genre un point à Z = 56.10 il me met l'attribut à 56.1 ... :rolleyes:

AutoCAD Map 3D 2025
Covadis 18.2 + AutoPiste
Windows 11 Famille v.21H2 - 64 bits

Toujours à l'affût des bonnes astuces

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

@ Charles T, pourquoi ne souhaites tu pas utiliser la fonction de Covadis stp? Juste par curiosité... Merci.

 

Pour les décimales, un lispeur te répondras certainement... ;)

 

Xav

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

En fait sur mes 6 projeteurs seulement 1 à COVADIS et s'en sert en permanence.

 

Et comme j'avais besoin d'un coup de main sur du nivellement, j'ai filé ça à un autre projeteur qui étais dispo ... et qui du coup n'avais pas de licence covadis. Tout simplement ^^

AutoCAD Map 3D 2025
Covadis 18.2 + AutoPiste
Windows 11 Famille v.21H2 - 64 bits

Toujours à l'affût des bonnes astuces

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

alors au vu de la rapidité de la manipulation sous Covadis, d'après mes souvenirs, pourquoi ne pas demander au projeteur "Covadis" de réaliser la manip et uniquement cette manipulation, tu aurais eu ainsi très rapidement satisfaction ? Après il ne faut pas que cela se répète trop souvent dans la journée car la production propre à ton projeteur "Covadis" va fortement en souffrir, et je parle en connaissance de cause (1 seule licence Autocad et suis le seul à savoir m'en servir, certains jours je suis obligé de mettre des "Holas" !).

 

Bonne journée,

COME

 

La vie sans musique est tout simplement une erreur, une fatigue, un exil. »

Friedrich Nietzsche

Lien vers le commentaire
Partager sur d’autres sites

Salut COME,

 

Justement en fait il faut utiliser souvent la manipulation. Pour détailler la méthode, en gros le projeteur (sans licence covadis) créer une polyligne 3D entre 2 points 3D, puis colle le bloc point sur la polyligne 3D de façon a avoir un point interpolé.

 

Puis après ... Z du point vers Attribut pour remplir automatiquement l'attribut ALT :rolleyes:

AutoCAD Map 3D 2025
Covadis 18.2 + AutoPiste
Windows 11 Famille v.21H2 - 64 bits

Toujours à l'affût des bonnes astuces

Lien vers le commentaire
Partager sur d’autres sites

Salut Olivier !

 

Parce que je pense que ça risque de ne plus fonctionner si on reprend le fichier sous COVADIS ensuite ?

AutoCAD Map 3D 2025
Covadis 18.2 + AutoPiste
Windows 11 Famille v.21H2 - 64 bits

Toujours à l'affût des bonnes astuces

Lien vers le commentaire
Partager sur d’autres sites

Salut Charles,

 

Personnellement, je ne vois pas trop ce qui bloquerait Covadis.

Si c'est pour faire des MNT, il utilise le Z du bloc et pas le contenu de l'attribut.

Au pire tu fais un ATTOUT, suivi d'un ATTIN pour rendre statique les Z sous forme de texte et plus de champ.

Le plus gros risque c'est de remettre tous les points topo en 2D ce qui supprimerait tous les Z.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Je vois que tu commences à bien maitriser le vlisp. Bravo :D

Désolé de te décevoir, mais ce code n'est pas de moi... :(

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Ah ... petite question tout de même ...

 

Vous savez comment faire pour qu'il ne supprime pas les Zéro de fin ?

 

Parce que genre un point à Z = 56.10 il me met l'attribut à 56.1 ... :rolleyes:

 

Cela est géré par la variable de cotation "DIMZIN", même si cela peut paraitre étrange... elle influe aussi sur les fonctions (rtos) et (angtos) du lisp. Donc à régler à ton goût avant utilisation ou intégrer la changement dans le lisp lui même.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

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é