Aller au contenu

Modifier le nombre de décimales dans l’attribut COD


Messages recommandés

Posté(e)

Bonsoir,

 

Après une recherche sommaire sur le forum, je n'ai pas trouvé de sujet proche de mon problème. Je l'expose donc ici, merci de le déplacer le cas échéant.

 

Je suis amené à utiliser la fonction de basculement de points de façade de COVADIS pour un chantier un peu particulier. J'utilise, une fois n'est pas coutume, la possibilité qu'offre cette fonction de créer dans les attributs des points transformés l'attribut COD avec pour valeur la distance du point à la surface de projection (l'écart entre le point et la façade).

 

Ca fonctionne très bien et ça m'est très utile dans ce dossier. Cependant, la valeur de cet attribut est par défaut à 3 chiffres après la virgule. Or, dans le cas présent, il me faudrait afficher les résultats au cm (le mm étant totalement incongru dans l'analyse proposée).

 

Je n'ai pas trouvé l'astuce pour modifier cet attribut ou paramétrer le basculement en créant un attribut à 2 chiffres.

Je sais le faire pour l'attribut ALT par le biais de la fonction de changement d'altitude où l'on peut redéfinir la précision de l'attribut modifié, mais pour le code...

 

Une solution aurait été, lors du basculement, de mettre les écarts à la façade dans l'attribut ALT comme le propose également la boite de dialogue, mais j'ai besoin de conserver l'altitude du point avant basculement. Il est aussi envisageable de modifier à la main chaque point, mais vu le nombre, j'aimerais trouver une solution plus rapide.

 

Existe-t-il une façon "élégante" et efficace de modifier ce paramètre sans bricoler?

 

Merci pour vos réponses et conseils que j'espère éclairés!

 

Cordialement.

 

FX

Posté(e)

Je ferais un export des attributs via Express/Block/Export attribut information, modifierais les décimales avec un tableur, puis Express/Block/Import attribut information.

 

Il existe peut-être des solutions plus élégantes !

Windows10 - Autocad 2018 - Covadis 17

Posté(e)

Coucou

 

J'avais commencé à te répondre mais j'ai coupé avant d'envoyer !!!

Je ne vois pas de vraie solution élégante pour reprendre tes termes à part l'extraction des données et ré-injection

 

Toutefois j'ai un programme sous la main qui fait la même chose (en mieux ?) et je vais m'en servir pour faire une page d'exemple de mon site

Je vous tiendrai au courant...

 

Amicalement

 

Posté(e)

Bonjour

 

Tu pourrais eventuellement executer l'excellente routine de Gilles : ATT_ADD

que j'ai modifiee (Micro-Modif) en ATT_ADD_2DEC pour n'avoir que 2 decimales !!

 

;; SVP BIEN VERIFIER que DIMZIN = 1 (ou =0) AVANT d'executer la routine !!

 

J'utilise souvent cette routine pour ajouter (ou soustraire) une valeur numerique a TOUS les attributs numeriques (Donc Contenu: chiffres / point decimal / éventuellement le signe moins au debut) concernes ...

 

Ma Micro-Micro-Modif consiste a ne garder que DEUX decimales grace au : RTOS 2 2

 

Donc tu selectionnes ton attribut concerne

puis tu dis que tu veux ajouter par exemple 0.0001

puis tu selectionnes tous tes blocs ...

 

Les attributs sont recalculees avec seulement DEUX decimales ...

 

MERCI Gilles, Bye, lecrabe (Extrait du stock de 2000 routines)

 

PS: je suis super-content car j'ai repondu a une question dans le forum Covadis !

En esperant avoir reussi !?

 


;; 
;; Commande:  ATT_ADD ---> ATT_ADD_2DEC
;; par GC (Anciennement ADDATT) 
;; 
;; Pour ajouter/soustraire une valeur numerique SIMPLE 
;; a un Attribut SIMPLE sur un Bloc SIMPLE 
;; 
;; Micro-Modif par Patrice pour avoir seulement 2 decimales !!
;; 
;; ---------------------------------------------------------------- 
;; SVP BIEN VERIFIER que DIMZIN = 1 (ou = 0) AVANT d'executer la routine !! 
;; ---------------------------------------------------------------- 
;; 

(defun c:att_add_2dec (/ att lst tag nam add ss n)
(if (and
(setq att (car (nentsel "\nSelectionnez un attribut a modifier: ")))
(setq lst (entget att))
(= (cdr (assoc 0 lst)) "ATTRIB")
(numberp (read (cdr (assoc 1 lst))))
(setq tag (cdr (assoc 2 lst)))
(setq nam (cdr (assoc 2 (entget (cdr (assoc 330 lst))))))
)
(if (and
(setq add (getreal "\nEntrez la valeur a ajouter ou soustraire: "))
(princ "\nSélectionnez les blocs à modifier.")
(setq ss (ssget (list '(0 . "INSERT") (cons 2 nam))))
(setq n 0)
)
(while (setq blc (ssname ss n))
(setq att (entnext blc)
lst (entget att)
)
(while (= (cdr (assoc 0 lst)) "ATTRIB")
(if (and (= (cdr (assoc 2 lst)) tag)
(numberp (setq val (read (cdr (assoc 1 lst)))))
) 

(progn 

; (entmod (subst (cons 1 (rtos (+ val add)     )) 
 (entmod (subst (cons 1 (rtos (+ val add) 2 2 )) 

(assoc 1 lst)
lst
) 

)
(entupd blc)
)
)
(setq att (entnext att)
lst (entget att)
)
)
(setq n (1+ n))
)
)
(princ "\nL'objet selectionne n'est pas un attribut. ")
)
(princ)
)  

Autodesk Expert Elite Team

Posté(e)

Bonsoir à tous,

 

Merci pour vos contributions.

 

@kegaska

Cette solution m'est apparue en lisant ensuite d'autres sujets plus ou moins similaires. Même si ce n'est pas forcément très "élégant", ça peut fonctionner. Je garde cette solution sous le coude.

 

@lili2006

Je savais bien que je n'avais rien à attendre de ta part et que je ne peux pas compter sur toi - Private Joke B)

Ca roule pour moi, et toi?

 

@lecrabe

Merci pour cette routine. J'espère qu'elle fonctionne, je regarde ça demain et ne manquerai pas de revenir vers vous valider (ou non) cette solution qui semble super "élégante". Félicitations pour cette première réponse qui dénote, quoi qu'il en soit, une très bonne connaissance du forum et de ses contributeurs.

 

Merci, FX

Posté(e)

Bonjour,

 

Avec la commande Cov Edition / Attribut / renommer il est possible de changer le nom des attributs d'un bloc.

Il suffit de renommer ALT en INFO, puis COD en ALT, d'utiliser les fonctions de traitement standard des arrondis des altitudes, puis de remettre ALT en COD et INFO en ALT.

 

Olivier

Posté(e)

Effectivement, bien vu Olivier, c'est la solution que j'ai testée en premier, et ça fonctionne!

 

Cette solution demande toutefois plusieurs manipulations, car le traitement standard des altitudes utilise non pas la valeur de l'attribut ALT, mais bien le Z du point. Il faut donc au préalable utiliser la fonction ALT-> Z du point avant de procéder au changement d'altitude et affichage de 2 décimales.

Cela implique bien sur ensuite, une fois les attributs renommés avec leur désignation d'origine de faire l'opération envers (ALT->Z).

 

Mais globalement ça a parfaitement fait le job, le principal quoi...

 

Du coup, je n'ai pas eu le temps de tester les autres propositions, mais celle de lecrabe me plait bien. Je teste dès que j'ai 5mn.

 

Merci à tous pour vos contributions et au plaisir.

 

FX

Posté(e)

Coucou

 

J'ai déposé sur mon site mon exemple

C'est un vieux truc ressorti de derrière les fagots de la remise car je ne fais plus de façades depuis des décennies ...

Toutefois la base est correcte et ça fonctionne

Certes, pas mal d'amélioration peuvent être mises en place et si ça intéresse quelqu'un je me mets à disposition.

 

Je me dis que ça peut le faire pour quelqu'un qui n'a pas Covadis à disposition.

 

voir la page dédiée ICI

 

Amicalement

 

Posté(e)

Coucou

 

Tu sais ce que c'est (hihi)

Quand on vieillit on aimerait se faire refaire la façade

Je respire encore ...

 

Blague à part, cette routine peut être utile - comme je disais - pour ceux qui n'ont pas Covadis

Je ne vais pas refaire Covadis, cette prétention est inaccessible et j'ai d'autres moulins à vent, mais tout de même certaines commandes pour ceux qui ne l'ont pas

 

Amicalement

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é