Jump to content

Qu utilisez vous pour vos métrés ?


Recommended Posts

Salut tlm,

 

 

la question est lancée. Faites vous vos métrés à la main, sur des applicatifs maison ou sur excel ?

 

 

Pour ma part, j'utilise une feuille excel que je me suis bidouillé. J'utilise pas mal les attributs sur autocad. Mais par contre je n'ai rien pour les linéaires, les surfaces. Et pour les volumes, je suis encore à Piste du Setra ( dur dur) mais on aura bientôt MXRoad et Mensura (ha).

 

 

J'ai vu sur le site du certu, qu'ils vendaient un logiciel de métré mais sans plus de renseignements dessus.

 

 

A vous la parole.

 

 

A+

Link to post
Share on other sites

J'utilise Covadis, qui est parfait pour les métrés linéaires + surfaces. Il travaille par calque, (et par largeur pour les polylignes). Si ton dessin est bien paramétré, c'est vraiment nickel et ça te fait gagner beaucoup de temps.

 

Bon courage

 

A+

  • Upvote 1

Olivier

Link to post
Share on other sites
  • 1 month later...

De mon coté , j'utilise Autospeed

Voir le site www.autospeed.biz et particulierement la section bonus qui renseigne sur certaines erreurs a éviter.

Avec cet outil , le métré des lignes , polyligne et blocs par calque est quasiment instantané

Auteur du logiciel Autospeed

Auteur de la théorie du site www.kheops.biz

Auteur de nombreux livres

Link to post
Share on other sites
  • 1 year later...
  • 2 months later...

Bonjour,

 

Pour les métrés j'utilise quelques LISP récupérés ce qui me permettent d'avoir mes linéaires de canalisations, bordures, etc.. mais il faut que ton fichier soit bien organisé par calques , cela me donne également mes surfaces. Pour les cubes j'utilise mensura ce qui me permet également de me vérifier pour mes linéaires de canalisations et mes tranchées.

 

Bonne journée

Link to post
Share on other sites
  • 4 years later...

Bonsoir,

 

Je pense que l’idéal serais de pouvoir récupérais sur un fichier Excel, les renseignements des surfaces et longueurs en fonction de la provenance des fichiers sources d’où proviennent ces informations et bien avec détail et traçabilité pour chacune des quantités qui doivent provenir d’un calque bien définit (indiqué sur le fichier Excel).

 

Les référence externe posent aussi parfois des problèmes (lorsqu’elles sont attachés au dessin mais (décharger ou introuvable) les lister est renvoyer les infos via Excel pour ne traiter que ces fichiers sur une grande liste.

 

Une fois identifié charger les Xref décharger (si besoin) et aussi récupérer les fichiers introuvables (et corriger leur chemins) pour les rendirent visibles sur le fichier source.

 

Possibilité aussi de couper la référence externe en les ajoutant au fichier source.

 

Pour les métrés je pense que des logiciels font cela mais je ne sais pas sous qu’elle mesure et souplesse.

 

Pour les Xref je ne sais pas s’il y a un programme qui fait cela.

 

J’ai fais ces deux programme en VBA qui tournent bien mais c’est très complexe.

 

S’il y a des métreurs faisant les mêmes choses ou connaissant des logiciels faisant cela.

 

Au plaisir de partager avec vous des idées

 

Laurent

Link to post
Share on other sites
  • 4 weeks later...

Bonjour ici,

 

La question que je me pose est "A quel phase du projet souhaitez vous réaliser votre métré?"

 

En fait, tout dépend de l'avancement de l'opération.

Dans le cadre d'une avant vente, cela devient royalement compliqué de métrer sans fond de plan. Dans ce cas précis, j'utilise une feuille excel mais je voudrai voir ce que cela donne avec l'utilisation de Mensura.

Ma boite a aussi développé un applicatif pour réaliser des profils en long sur Mensura à partir de Google Earth.

Je pense qu'il y a quelque chose à exploiter avec ce soft à ce niveau d'étude.

 

Ensuite une fois que l'opération est gagnée, j'utilise ni plus ni moins Mensura pour réaliser les métrés.

 

 

De plus, chaque projet étant spécifique, la feuille de calcul doit être extrêmement détaillée pour faire un premier chiffrage.

Si l'on réalise voirie, ouvrages maçonnés, réseaux secs, réseaux humides, traitement paysager, mobilier et tout le toutim, ca devient carrément complexe en urbain.

Sans compter les ouvrages de Génie Civil...

 

 

Pas simple c'te truc.

Plieur de trombones et remplisseur de tubes de dentifrice professionnel.

Link to post
Share on other sites
  • 8 years later...

Si je peux me permettre : renseigne toi aupres de la programmation

 

tu auras ce que tu veux, tes rendus personnalisés (Covadis et autres) sont payants et "bridés" (non modifiable).

 

alors qu'apprendre est gratuit et rapide ! suivant les clients (ou domaine comme le dit mon VDD) :

je dois rendre des documents sous support différents et la programmation est heureusement la pour ça !

 

laurent_a8 à écrit

J’ai fais ces deux programme en VBA qui tournent bien mais c’est très complexe.

 

Au début : on commence petit : extraire les longueurs et surface par rapport au calque dans une fenetre puis les entrées dans un txt =>

puis dans un excel => puis un pdf => puis envoie direct par mail ...etc etc

 

Ensuite, tu vas y faire des stats puis la génération de fichier dwg et gestionnaire calque qui reflechira à ta place.

a la fin tu ne ferais plus de dessin mais c'est ton programme qui fera 90% de ton boulots ^^

 

et ça n'aura pas couté 1€ ^^

Link to post
Share on other sites

et ça n'aura pas couté 1€ ^^

 

 

 

Pas 1€ mais il faut tout de même le temps d'apprendre, chose que tout le monde n'a (malheureusement) pas laugh.gif

 

 

 

Sinon pour ma part, les métrés c'est Covadis à 100%

AutoCAD Map 3D 2022 (25.0.45.3) base S.51.0.0
Covadis 17.1d + AutoPiste
Mensura Genius 9.1.0
Windows 10 Famille v.20H2 - 64 bits

Toujours à l'affût des bonnes astuces
Et aime gagner de l'argent sans rien faire ! Astuce potentiellement rentable à tester ici

Link to post
Share on other sites
  • 5 months later...

J'aimerai bien utiliser Covadis, mais d'abord c'est payant et mon responsable ne me le payera pas, ensuite il faut certainement une formation dessus que je n'ai pas. et je viens juste d'avoir un PC qui me permette d'utiliser correctement AutoCAD (avant noël 2020 je faisais des plans sur AutoCAD sur un pc win32 avec 3 Go de Ram, oui oui c'est faisable... mais que c'est long et que ça plante)

 

Pour mes métrés, je les fais donc "à la main" donc un excel d'un côté, mon plan en pdf de l'autre avec pdf xchange viewer qui dans sa version gratuite permet de faire les métrés (outil commentaire on a longueurs, périmètres et surfaces, et on choisis l'échelle voulue).

Si j'ai la chance d'avoir un dwg correct, j'utilise le lisp "tlen" qui cumule les longueurs des polylignes cliquées et le cumul d'aires.

 

J'ai essayé une ou de fois de faire de l'export vers excel des données de plan. Mais franchement, soit le plan est nickel, fait visiblement sur Covadis par des gens qui s'y connaissent, et l'ensemble est fourni métré,

soit c'est un plan archi avec un bazar monstrueux dans les calques et la moitié des lignes qui manque car l'export a mal été fait, soit c'est un plan archi avec un "débrouille toi avec tes réseaux" du coup le métré sur PDF est plus précis. Mais encore et toujours, quel temps ça prend!

 

(PS : j'ai une formation metreur et j'ai appris au kutch! puis j'ai touché le digito avec le passage direct vers excel des distances cliquées, puis j'ai changé de boite et trouvé pdf xchange viewer dont je ne peux plus me séparer, même si ce serais mieux si je pouvais exporter les résultats.)

Link to post
Share on other sites

Hello

 

Ci apres 2 superbes routines VLisp de notre grand Maitre Gilles (gile) que j'utilise souvent

pour les metres de longueurs et surfaces ...

 

Ainsi avec des dessins "bien organises" par calque: c Tip-Top !

 

TLEN_PL_LAY qui affiche sur l'ecran texte (F2) les longueurs / perimetres de Polylignes par calque

et

TSUR_PL_LAY qui affiche sur l'ecran texte (F2) les aires / surfaces des Polylignes et Cercles par calque

 

En esperant que cela puisse t'aider !?

 

LA SANTE, Bonne Annee, Bye, lecrabe - MERCI Gilles !

 


;; 
;; Routine: TLEN_PL_LAY par GC pour les *POLYLINE pour Patrice B.
;; 
;; v1.01 : Impossible pour les Cercles car vla-get-length NON Disponible
;; 
;; Total des longueurs par CALQUE 
;; 
;; 2 lignes avec (vla-get-length ent ... 
;; 
;; ATTENTION: la routine PLANTE si on selectionne des Polylignes de type: 3D Maillage / 3D Mesh
;; Car la propriete vla-get-length ou vla-get-area n'existe pas pour ces Entites ... 
;; 
;; --- Interrogation Entite/Objet en Lisp --- 
;; (entget (car (entsel)) '("*"))
;; 

(vl-load-com) 

(defun c:TLEN_PL_LAY (/ ent ele lst sel res tot filtre) 

 (setq filtre 'layer) ; Layer pour les calques, Color pour les couleurs, Linetype pour les types de lignes 
;; ConstantWidth : Non Fonctionnel 

 (and (ssget (list (cons 0 "*POLYLINE")))
   (progn
     (vlax-for ent (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
       (if (setq ele (assoc (vlax-get ent filtre) lst))
         (setq lst (subst (list (car ele) (cons (vla-get-length ent) (cadr ele))) ele lst))
         (setq lst (cons (list (vlax-get ent filtre) (list (vla-get-length ent))) lst))
       )
     )
     (vla-delete sel)
     (setq tot 0)
     (mapcar '(lambda(x)
               (setq tot (+ tot (setq res (apply '+ (cadr x)))))
               (princ "\nTotal Longueur des Polyligne(s) du calque ")
               (princ filtre)
               (princ " --> ")
               (princ (car x))
               (princ (strcat " : " (rtos res)))
             )
             (vl-sort lst '(lambda(a B)(< (car a) (car B))))
     ) 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;; (padLeft (rtos (car item) 2 2) 6) 
     (princ (strcat "\nTotal : " (rtos tot))) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

   )
 )
 (princ)
) 

 


;; 
;; Routine: TSUR_PL_LAY par GC pour les *POLYLINE pour Patrice B.
;; 
;; v1.01 : + CIRCLE (Micro-Micro-Modif par Patrice) -- 
;; 
;; Total des surfaces par CALQUE 
;; 
;; 2 lignes avec (vla-get-area ent ... 
;; 
;; ATTENTION: la routine PLANTE si on selectionne des Polylignes de type: 3D Maillage / 3D Mesh
;; Car la propriete vla-get-length ou vla-get-area n'existe pas pour ces Entites ... 
;; 
;; RAPPEL: vla-get-length NON Disponible pour les Cercles !
;; 
;; --- Interrogation Entite/Objet en Lisp --- 
;; (entget (car (entsel)) '("*"))
;; 

(vl-load-com) 

(defun c:TSUR_PL_LAY (/ ent ele lst sel res tot filtre) 

 (setq filtre 'layer) ; Layer pour les calques, Color pour les couleurs, Linetype pour les types de lignes 
;; ConstantWidth : Non Fonctionnel 

 (and (ssget (list (cons 0 "*POLYLINE,CIRCLE")))
   (progn
     (vlax-for ent (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
       (if (setq ele (assoc (vlax-get ent filtre) lst))
         (setq lst (subst (list (car ele) (cons (vla-get-area ent) (cadr ele))) ele lst))
         (setq lst (cons (list (vlax-get ent filtre) (list (vla-get-area ent))) lst))
       )
     )
     (vla-delete sel)
     (setq tot 0)
     (mapcar '(lambda(x)
               (setq tot (+ tot (setq res (apply '+ (cadr x)))))
               (princ "\nTotal Surface des Polyligne(s) & Cercle(s) du calque ")
               (princ filtre)
               (princ " --> ")
               (princ (car x))
               (princ (strcat " : " (rtos res)))
             )
             (vl-sort lst '(lambda(a B)(< (car a) (car B))))
     ) 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;; (padLeft (rtos (car item) 2 2) 6) 
     (princ (strcat "\nTotal : " (rtos tot))) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

   )
 )
 (princ)
) 

Autodesk Expert Elite Team

Link to post
Share on other sites

Salut,

Gile devait être surmené quand il t'as fait ces routines, car cet avertissement:

;; ATTENTION: la routine PLANTE si on selectionne des Polylignes de type: 3D Maillage / 3D Mesh
;; Car la propriete vla-get-length ou vla-get-area n'existe pas pour ces Entites ... 

ce n'est pas son genre !

Il ne laisse pas souvent trainer un cas non traité ...

a+, gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Link to post
Share on other sites

Ahhh ça c'est chouette !

 

Avec les deux Lisp que je viens de trouver sur le forum permettant de basculer les objets par couleurs chacun dans un calque,

ça devrait apporter un peu de vitesse à mes tâches.

 

Merci !!!

Link to post
Share on other sites

Hello Gege

 

Au fait, c moi qui a ajouté qq commentaires sur ces excellentes routines de Gilles...

 

En effet le filtrage de Gilles n est pas parfait !

Mais avoir des 3D Maillage / 3D Mesh dans la sélection, c rarissime !!

 

La Santé, Bye, lecrabe

Autodesk Expert Elite Team

Link to post
Share on other sites

Hello Perline

 

Toujours pour t'aider dans tes problemes de quantitatifs / nomenclature ...

 

Je te rajoute une autre excellente routine "ListBlock" de Gilles !

 

"ListBlock" : Generation d'un superbe tableau quantitatif des blocs selectionnes ...

Avec Nom du Bloc, Nombre, Representation graphique ...

 

ATTENTION: cette routine de Gilles ne traite pas malheureusement les Blocs

inclus dans les Reseaux Associatifs (Rectangulaire, Polaire/Circulaire, Trajectoire)

Pour que ces Blocs soient traites par la routine ListBlock, il faudra decomposer CES Reseaux associatifs !

 

OU ALORS SVP si qq'un pouvait ameliorer / modifier cette routine de Gilles !?

 

LA SANTE, Bye, lecrabe

 

;; 
;; Routine: ListBlock par GC pour Patrice B.
;; 
;; Table des Blocs : Nom , Nombre , Graphisme du Bloc
;; 
;; ATTENTION: Blocks included into associative arrays are not processed !
;; 
;; To be clearer, you can set the text height bay row type:
;; Only data rows (bit 1)
;; (vla-SetTextHeight table 1 height)
;; Only title row (bit 2)
;; (vla-SetTextHeight table 2 height)
;; Only header row (bit 4)
;; (vla-SetTextHeight table 1 height)
;; You can also combinate this, e.g. for the entire table (+ 1 2 4):
;; (vla-SetTextHeight table 7 height)
;; 

;;;;; 
;;;;;  Hauteur des Textes dans la Table = 5.0 ;;;;; 
;;;;;  (vla-SetTextHeight table 7 5.0)
;;;;; 


(defun c:ListBlock (/ ss name block blocks insPt table row)
 (vl-load-com)
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (or *blocks*
     (setq *blocks* (vla-get-Blocks *acdoc*))
 )

 ;; Select blocks
 (prompt "\nSelect blocks to list or <All>")
 (or (setq ss (ssget '((0 . "INSERT"))))
     (setq ss (ssget "_X" '((0 . "INSERT")))
     )
 )
 (if ss
   (progn

     ;; Build a list of dotted pairs (blockName . numberOfReferences) from the selection set
     (vlax-for	x (setq ss (vla-get-ActiveSelectionSet *acdoc*))
(if (not (vlax-property-available-p x 'Path))
  (setq	name   (vla-get-EffectiveName x)
	blocks (if (setq block (assoc name blocks))
		 (subst (cons name (1+ (cdr block))) block blocks)
		 (cons (cons name 1) blocks)
	       )
  )
)
     )
     (vla-delete ss)

     ;; Prompt for insertion point
     (initget 1)
     (setq insPt (trans (getpoint "\nInsertion point: ") 1 0))

     ;; Create the table
     (setq table (vla-addtable
	    (vla-get-modelspace *acdoc*)
	    (vlax-3d-point insPt)
	    (+ 2 (length blocks)) ; number of rows (including title and header)
	    3			; number of colums
	    20			; cell height
	    80			; row width
	  )
     )
     (vla-put-VertCellMargin table 4.0)
     (vla-put-TitleSuppressed table :vlax-false)
     (vla-put-HeaderSuppressed table :vlax-false)

     ;; Fill the titel and the header
;     (vla-setText table 0 0 "Blocks")
;     (vla-setText table 1 0 "Name")
;     (vla-setText table 1 1 "Count")
;     (vla-setText table 1 2 "Symbol") 

     ;; Textes version Francaise
     (vla-setText table 0 0 "Quantitatif des Blocs")
     (vla-setText table 1 0 "Nom")
     (vla-setText table 1 1 "Nombre")
     (vla-setText table 1 2 "Symbole") 

;;;;; Hauteur des Textes dans la Table = 5.0 ;;;;; 
(vla-SetTextHeight table 7 5.0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

     ;; fill the following rows from the list contents
     (setq row 2)
     (foreach item blocks
(vla-settext table row 0 (car item)) ; block name
(vla-settext table row 1 (cdr item)) ; references count
(vla-SetBlockTableRecordId	; block symbol
  table
  row
  2
  (vla-get-ObjectId (vla-Item *blocks* (car item)))
  :vlax-true
)
(setq row (1+ row))
     )
   )
 )
 (princ)
)

Autodesk Expert Elite Team

Link to post
Share on other sites

Hello Perline

 

Dans ton message, tu signales que tu as trouve un Lisp qui separe les entites par couleur !

 

Je ne sais pas de quelle routine, tu parles !!

 

Donc je te propose la MEME routine E2LBC "de competition" que j'utilise ... MERCI Mr dlanorh !

E2LBC traite TOUTES les couleurs: ACI AutoCAD Color Index (0-256) , RGB/RVB (16 millions de couleurs) , Pantome , RAL , etc !

 

LA SANTE, Bye, lecrabe

 

;;
;; Routine: E2LBC__Entities_to_Layer_By_Color__dlanorh by dlanorh for Patrice B.
;; 
;; Move selected Entities on separate layers depending on Color
;;
;; --- Interrogation Entite/Objet en Lisp --- 
;; (entget (car (entsel)) '("*"))
;; 

(vl-load-com) 

(defun LM:True->RGB ( c ) (mapcar '(lambda ( x ) (lsh (lsh (fix c) x) -24)) '(8 16 24)))

(defun rh:lst2str ( lst del / str ) (setq str "")  (mapcar '(lambda (x) (setq str (strcat str x del))) lst) (vl-string-right-trim del str))

(defun rh:layer_props ( lyr lst / v ) (setq v (mapcar '(lambda (x) (vlax-get-property lyr x)) lst)))

(defun rh:strlen3 ( str ) (if (< (strlen str) 3) (while (< (strlen str) 3) (setq str (strcat "0" str))) str) str)

;; Entities to layer by color
(defun c:E2LBC ( / c_doc c_lyrs l_props ss cnt ent elst lyr l_vals cstr clst clr nlyr lobj)

 (setq c_doc (vla-get-activedocument (vlax-get-acad-object))
       c_lyrs (vla-get-layers c_doc)
       l_props (list 'truecolor 'linetype 'lineweight);Layer properties list
 );end_setq

 (prompt "\nSelect Entities : ")
 (setq ss (ssget))

 (cond (ss
         (repeat (setq cnt (sslength ss))
           (setq ent (ssname ss (setq cnt (1- cnt)))
                 elst (entget ent)
                 lyr (cdr (assoc 8 elst));Layer
                 l_vals (rh:layer_props (vla-item c_lyrs lyr) l_props);Layer properties
                 cstr ""
                 clst nil
           );end_setq

           (foreach x '(62 420 430) (setq clst (cons (cdr (assoc x elst)) clst)))
           (setq clr (vl-some '(lambda (x) x) clst))
           (cond ( (not clr) (setq cstr "256"))                ;No Color set (bylayer)
                 ( (and (= (type clr) 'INT) (<= clr 256))      ;ACI (0-256)
                   (setq cstr (rh:strlen3 (itoa clr)))
                 )
                 ( (= (type clr) 'STR) (setq cstr clr))        ;Color Book
                 (t (setq clr (mapcar 'itoa (LM:True->RGB clr));RGB
                          cstr (rh:lst2str (mapcar 'rh:strlen3 clr) "_")
                    );end_setq
                 )
           );end_cond
           (setq nlyr (strcat lyr "__" cstr))

           (cond ( (not (tblsearch "layer" nlyr)) (setq lobj (vla-add c_lyrs nlyr)) (mapcar '(lambda (x y) (vlax-put-property lobj x y)) l_props l_vals)))
           (vlax-put-property (vlax-ename->vla-object ent) 'layer nlyr)
         );end_repeat
       )
       (t (alert "NO Entities Selected ! "))
 );end_cond

 (princ) 
);end_defun 

Autodesk Expert Elite Team

Link to post
Share on other sites

Hello Perline

 

Dans ton message, tu signales que tu as trouve un Lisp qui separe les entites par couleur !

 

Je ne sais pas de quelle routine, tu parles !!

 

Donc je te propose la MEME routine E2LBC "de competition" que j'utilise ... MERCI Mr dlanorh !

E2LBC traite TOUTES les couleurs: ACI AutoCAD Color Index (0-256) , RGB/RVB (16 millions de couleurs) , Pantome , RAL , etc !

 

LA SANTE, Bye, lecrabe

 

;;
;; Routine: E2LBC__Entities_to_Layer_By_Color__dlanorh by dlanorh for Patrice B.
;; 
;; Move selected Entities on separate layers depending on Color
;;
;; --- Interrogation Entite/Objet en Lisp --- 
;; (entget (car (entsel)) '("*"))
;; 

(vl-load-com) 

(defun LM:True->RGB ( c ) (mapcar '(lambda ( x ) (lsh (lsh (fix c) x) -24)) '(8 16 24)))

(defun rh:lst2str ( lst del / str ) (setq str "")  (mapcar '(lambda (x) (setq str (strcat str x del))) lst) (vl-string-right-trim del str))

(defun rh:layer_props ( lyr lst / v ) (setq v (mapcar '(lambda (x) (vlax-get-property lyr x)) lst)))

(defun rh:strlen3 ( str ) (if (< (strlen str) 3) (while (< (strlen str) 3) (setq str (strcat "0" str))) str) str)

;; Entities to layer by color
(defun c:E2LBC ( / c_doc c_lyrs l_props ss cnt ent elst lyr l_vals cstr clst clr nlyr lobj)

 (setq c_doc (vla-get-activedocument (vlax-get-acad-object))
       c_lyrs (vla-get-layers c_doc)
       l_props (list 'truecolor 'linetype 'lineweight);Layer properties list
 );end_setq

 (prompt "\nSelect Entities : ")
 (setq ss (ssget))

 (cond (ss
         (repeat (setq cnt (sslength ss))
           (setq ent (ssname ss (setq cnt (1- cnt)))
                 elst (entget ent)
                 lyr (cdr (assoc 8 elst));Layer
                 l_vals (rh:layer_props (vla-item c_lyrs lyr) l_props);Layer properties
                 cstr ""
                 clst nil
           );end_setq

           (foreach x '(62 420 430) (setq clst (cons (cdr (assoc x elst)) clst)))
           (setq clr (vl-some '(lambda (x) x) clst))
           (cond ( (not clr) (setq cstr "256"))                ;No Color set (bylayer)
                 ( (and (= (type clr) 'INT) (<= clr 256))      ;ACI (0-256)
                   (setq cstr (rh:strlen3 (itoa clr)))
                 )
                 ( (= (type clr) 'STR) (setq cstr clr))        ;Color Book
                 (t (setq clr (mapcar 'itoa (LM:True->RGB clr));RGB
                          cstr (rh:lst2str (mapcar 'rh:strlen3 clr) "_")
                    );end_setq
                 )
           );end_cond
           (setq nlyr (strcat lyr "__" cstr))

           (cond ( (not (tblsearch "layer" nlyr)) (setq lobj (vla-add c_lyrs nlyr)) (mapcar '(lambda (x y) (vlax-put-property lobj x y)) l_props l_vals)))
           (vlax-put-property (vlax-ename->vla-object ent) 'layer nlyr)
         );end_repeat
       )
       (t (alert "NO Entities Selected ! "))
 );end_cond

 (princ) 
);end_defun 

 

 

Merci pour le Lisp, il y aurait un paramètre pour récupérer les longueurs par exemple on fait un bloc de HEA 100 un autre de 140 avec la possibilité des les étirer et on pourrait avoir les lgs cumulées des hea 100 et hea 140 dans les tableaux ? J'avais trouvé un bloc Pline_block mais j'ai pas trop compris comment ça marche :(

Link to post
Share on other sites

Oh là là le crabe :wub: , merci pour toutes ces routines!

 

voilà où j'avais trouvé la routine mdfc

https://cadxp.com/topic/48631-lisp-creation-de-calques-en-fonctionde-la-couleur-forcees-des-objetss/page__p__291050__hl__mdfc__fromsearch__1#entry291050

 

Du coup, avec tout ça un petit copié collé vers word, transcription en tableau et il y a de quoi traviller (quand il n'y a pas de "surprise" d'élévation HAHA)

 

:D

Link to post
Share on other sites

Hello

 

Au fait j ai oublie une excellente routine "LayerCount" de Lee-Mac pour compter les objets selectionnes par Calque !

C tres pratique quand tu as UN SEUL type d objet sur certains calques ...

 

LA SANTE, Bye, lecrabe

 

 


;; 
;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/object-count-per-layer/td-p/7619771
;; 

;; Layer Count  -  Lee Mac
;;
;; Prints a report of the number of objects on each layer in a drawing

(defun c:LayerCount ( / lst ss )
 (if (ssget)
    (progn
	    (vlax-for obj (setq ss (vla-get-ActiveSelectionSet (vla-get-activedocument (vlax-get-acad-object))))
	            (setq lst (layercount:assoc++ (vla-get-layer obj) lst))
	            (if
	                (and
	                    (= "AcDbBlockReference" (vla-get-objectname obj))
	                    (= :vlax-true (vla-get-hasattributes obj))
	                )
	                (foreach att (vlax-invoke obj 'getattributes)
	                    (setq lst (layercount:assoc++ (vla-get-layer att) lst))
	                )
	            )
	    )

    (vla-delete ss)
    (princ (layercount:padbetween "\n\n" "" "-" 62))
    (princ (layercount:padbetween "\nLayer" "Objects" " " 61))
    (princ (layercount:padbetween "\n" "" "-" 61))
    (foreach itm (vl-sort lst '(lambda ( a b ) (> (cdr a) (cdr B))))
        (princ (layercount:padbetween (strcat "\n" (car itm)) (itoa (cdr itm)) "." 61))
    )
    (princ (layercount:padbetween "\n" "" "-" 61))
    (princ (layercount:padbetween "\nTotal" (itoa (apply '+ (mapcar 'cdr lst))) "." 61))
    (princ (layercount:padbetween "\n" "" "-" 61))
    (textpage)
    (princ)
)
   )
 ) 

(defun layercount:assoc++ ( key lst / itm )
   (if (setq itm (assoc key lst))
       (subst (cons key (1+ (cdr itm))) itm lst)
       (cons  (cons key 1) lst)
   )
) 

(defun layercount:padbetween ( s1 s2 ch ln )
   (
       (lambda ( a b c )
           (repeat (- ln (length B) (length c)) (setq c (cons a c)))
           (vl-list->string (append b c))
       )
       (ascii ch)
       (vl-string->list s1)
       (vl-string->list s2)
   )
) 
     
(vl-load-com) (princ) 

Autodesk Expert Elite Team

Link to post
Share on other sites

Bonjour,

 

J'ai développé depuis pas mal de temps, une palettes d'outils qui reprend plusieurs fonctions :

 

1. Calcul de surfaces à partir d'objets fermés, via SCANDXF et un blocs avec ATTRIBUTS

2. Métrés linéaires via SCANDXF et EXCEL, de manière optimisé

3. Quantitatifs basés sur des blocs avec et sans ATTRIBUTS

 

Le tout agrémenté

 

Et bien sur, 100% COMPATIBLE avec les versions LT !

 

 

Christian

 

 

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...