Aller au contenu

addition valeurs champs


Invité ingoenius

Messages recommandés

Invité ingoenius

Bonjours, dans un dessin j'ai attribuée des champs de type objet et qui font référence a des polylignes fermée en donnant leur surface

 

Est possible d'avoir un dernier champ qui effectue l'addition des tous les valeurs des champ précédents?

 

 

Merci a vous ;-)

 

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

J'ai essayé de faire un truc.

La validité des types de champs sélectionnées n'est pas contrôlée, à l'utilisateur de faire attention.

Le format (unité, décimales, etc.) du denier champ dans le jeu de sélection est affecté au résultat.

Le texte est inséré sur le calque courant avec les paramètres de texte courants (style hauteur etc.)

 

;; ADDFIELDS (gile)
;; Insère un texte contenant un champ dynamique dont la valeur
;; est égale à la somme des valeurs des champs sélectionnés
;;
;; NOTA : aucun contrôle sur la validité des champs sélectionnés

(defun c:AddFields (/ ss res code pos ins)
 (vl-load-com)
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveSelectionSet (vlax-get-acad-object)))
 )
 (if (ssget '((0 . "MTEXT,TEXT")))
   (progn
     (setq res "%<\\AcExpr ")
     (vlax-for txt (setq ss (vla-get-ActiveSelectionSet *acdoc*))
       (if (and
             (setq code (vla-FieldCode txt))
             (setq pos (vl-string-search "%<" code))
             (setq code (substr code (1+ pos)))
             (setq pos (vl-string-position 37 code 1 T))
             (setq code (substr code 1 (1+ pos)))
           )
         (setq res (strcat res code " + "))
       )
     )
     (vla-delete ss)
     (setq res (strcat (vl-string-right-trim " +" res)
                       " "
                       (if (setq pos (vl-string-position (ascii "\\") code 1 T))
                         (substr code (1+ pos))
                         ">%"
                       )
               )
     )
     (if (and res
              (setq ins (getpoint "\nPoint d'insertion: "))
         )
       (vla-addText
         (if (= 1 (getvar 'cvport))
           (vla-get-PaperSpace *acdoc*)
           (vla-get-ModelSpace *acdoc*)
         )
         res
         (vlax-3d-point (trans ins 1 0))
         (getvar 'textsize)
       )
     )
   )
 )
 (princ)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é