Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Calcul surface d'un groupe de hachure via le champ

5 RÉPONSES 5
RÉSOLU
Répondre
Message 1 sur 6
Anonymous
4212 Visites, 5 Réponses

Calcul surface d'un groupe de hachure via le champ

Bonjour,

 

Je souhaiterais savoir s'il est possible de calculer et écrire une surface dans un champ d'un groupe composé de plusieurs hachures.

Merci beaucoup pour votre aide,

Gabriel

Balises (4)
5 RÉPONSES 5
Message 2 sur 6
_gile
en réponse à: Anonymous

Salut,

 

  1. Tu lances la commande CHAMP (_FIELD).
  2. Tu choisis l'option "Formule".
  3. Tu fais un clic droit dans le cadre de la formule et tu choisis "Insérer un champ".
  4. Tu choisis l'option "Objet".
  5. Tu sélectionnes une hachure.
  6. Tu choisis la propriété "Aire" et le format "(aucune)".
  7. Tu fais OK.
  8. Tu ajoutes un "+" après le champ dans le cadre de la formule et tu répètes l'opération depuis 3 pour chaque hachure.
  9. Tu cliques sur "Evaluer".
  10. Tu choisis le format.
  11. Tu fais OK.

Un exemple de champ "Formule" qui n'a rien à voir mais montre le principe.

 

 



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 3 sur 6
Anonymous
en réponse à: _gile

Bonjour Gile,

Merci pour cette solution et ta réponse rapide!

Mais je voulais savoir s'il y avait un moyen plus rapide, c'est à dire en sélectionnant directement des groupes de hachures que j'ai déjà préalablement fait (comme si c'était un objet).

Le problème de la formule c'est que c'est assez fastidieux à mettre en place lorsqu'on à beaucoup d'éléments...

Message 4 sur 6
_gile
en réponse à: Anonymous

À ma connaissance, il n'y a pas d'autre moyen sans programmation.

Si tu travailles avec une version pleine, tu peux utiliser le LISP ci-dessous.

(defun c:HATCHAREA (/ ss ids txt pt)
  (vl-load-com)
  (or *acad* (setq *acad* (vlax-get-acad-object)))
  (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
  (or *util* (setq *util* (vla-get-Utility *acdoc*)))

  (if (ssget '((0 . "HATCH")))
    (progn
      (vlax-for h (setq ss (vla-get-ActiveSelectionSet *acdoc*))
        (setq ids (cons (vla-GetObjectIdString *util* h :vlax-false) ids))
      )
      (vla-Delete ss)
      (setq txt (strcat
                  "%<\\AcExpr ("
                  "%<\\AcObjProp Object(%<\\_ObjId "
                  (car ids)
                  ">%).Area>%"
                )
      )
      (foreach id (cdr ids)
        (setq txt (strcat
                    txt
                    "+"
                    "%<\\AcObjProp Object(%<\\_ObjId "
                    id
                    ">%).Area>%"
                  )
        )
      )
      (setq txt (strcat txt ") \\f \"%lu2%pr2\">%"))
      (if (setq pt (getpoint "\nSpécifiez le point d'insertion: "))
        (vla-AddText
          (if (= (getvar 'cvport) 1)
            (vla-get-PaperSpace *acdoc*)
            (vla-get-ModelSpace *acdoc*)
          )
          txt
          (vlax-3d-point (trans pt 1 0))
          (getvar 'textsize)
        )
      )
    )
  )
  (princ)
)


Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 5 sur 6
Anonymous
en réponse à: _gile

Ok merci encore.

Malheureusement je suis avec Autocad LT.

Les lisp. fonctionnent donc seulement avec la version pleine?

Message 6 sur 6
_gile
en réponse à: Anonymous


@Anonymous wrote:

Les lisp. fonctionnent donc seulement avec la version pleine?


Les versions LT ne supportent aucune programmation. C'est, à mon avis, la principale différence entre version pleine et LT.



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report