Aller au contenu

Nomenclature automatique


Messages recommandés

Posté(e)

Bonsoir ,

est ce possible d'extraire une nomenclature sous excel alors que le tableau a été fait sous autocad 2007 sans utiliser des attributs

 

 

Est ce possible en utilisant des blocs avec attributs de renseigner automatiquement le cartouche et que chaque insertion de bloc different décale d'une ligne sur la nomenclature

 

ex

 

1 bride

1 té

1 redcution

 

Merci

Posté(e)

Salut,

 

est ce possible d'extraire une nomenclature sous excel alors que le tableau a été fait sous autocad 2007 sans utiliser des attributs

 

Un petit LISP vite fait qui copie un tableau AutoCAD dans un nouveau fichier Excel.

 

;; TBL2XL (gile)
;; Copie un tableau AutoCAD dans un fichier Excel

(defun c:tbl2xl	(/ tbl row col sub lst file)
 (vl-load-com)
 (and
   (setq tbl (car (entsel)))
   (setq tbl (vlax-ename->vla-object tbl))
   (= (vla-get-ObjectName tbl) "AcDbTable")
   (setq row 0)
   (setq col 0)
   (while (setq val (vlax-variant-value (vla-getCellValue tbl row col)))
     (setq sub (list val))
     (while (setq val (vlax-variant-value
		 (vla-getCellValue tbl row (setq col (1+ col)))
	       )
     )
(setq sub (cons val sub))
     )
     (setq lst	(cons sub lst)
    row	(1+ row)
    col	0
     )
   )
   (setq path (getfiled "Créer un fichier" (getvar "DWGPREFIX") "xls" 1))
   (setq file (open path "w"))
   (princ (lst2str (reverse
	      (mapcar '(lambda (x) (lst2str (reverse x) "\t")) lst)
	    )
	    "\n"
   )
   file
   )
   (close file)
 )
 (princ)
) 

;; lst2str
;; Concatène une liste et un séparateur en une chaine
;;
;; Arguments
;; lst : la liste à transformer en chaine
;; sep : le séparateur
;;
;; Exemples
;; (lst2str '(1 2 3) ",") -> "1,2,3"
;; (lst2str '("a" "b" "c") " ") -> "a b c"

(defun lst2str (lst sep)
 (if (cadr lst)
   (strcat (vl-princ-to-string (car lst))
    sep
    (lst2str (cdr lst) sep)
   )
   (vl-princ-to-string (car lst))
 )
)

 

Je ne comprends pas bien la deuxième question, mais regarde le LISP tabloblo sur cette page

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

Posté(e)

En gros ci tu inseres divers bloc je voudrais que si les bloc sont different qu'il aille tous seul à la ligne dans le tableau

 

ex si j'insere 2 brides mee diam 50 je voudrais qu'il me mette 2 bride sur la colone 1 de mon tableau et si j'ai un autre type de brid qu'il aille a la ligne

Posté(e)

Salut gilles je n'arrive pas à le faire fonctionner , il me dit de choisir un objet je choisis donc mon tableau sous autocad et la rien ne se passe peux tu m'aiguiller merci

Posté(e)

Voilà une nouvelle version qui renvoie des messages d'alerte pour essayer de localiser où ça bloque.

 

Merci aux testeurs ;)

 

;; TBL2XL (gile)
;; Copie un tableau AutoCAD dans un fichier Excel

(defun c:tbl2xl	(/ tbl row col sub lst file)
 (vl-load-com)
 (if
   (and
     (setq tbl (car (entsel)))
     (setq tbl (vlax-ename->vla-object tbl))
     (= (vla-get-ObjectName tbl) "AcDbTable")
   )
    (if (and
   (setq row (vla-get-Rows tbl))
   (setq col (vla-get-Columns tbl))
   (repeat row
     (setq row (1- row))
     (repeat (setq n col)
       (setq sub (cons
		   (cond
		     ((vlax-variant-value
			(vla-getCellValue tbl row (setq n (1- n)))
		      )
		     )
		     (T "")
		   )
		   sub
		 )
       )
     )
     (setq lst (cons sub lst)
	   sub nil
     )
     lst
   )
 )
      (if
 (setq path (getfiled "Créer un fichier" (getvar "DWGPREFIX") "xls" 1))
  (progn
    (setq file (open path "w"))
    (princ (lst2str (mapcar '(lambda (x) (lst2str x "\t")) lst) "\n")
	   file
    )
    (close file)
  )
      )
      (alert "Version AutoCAD non supportée")
    )
    (alert "L'objet sélectionné n'est pas un tableau AutoCAD0")
 )
 (princ)
)

(defun lst2str (lst sep)
 (if (cadr lst)
   (strcat (vl-princ-to-string (car lst))
    sep
    (lst2str (cdr lst) sep)
   )
   (vl-princ-to-string (car lst))
 )
) 

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

Posté(e)

qu'est ce qu'un tableau AutoCAD ?

 

Il s'agit d'un objet graphique créé avec la commande TABLEAU (_TABLE).

Il me semble me souvenir que cette commande n'est apparue qu'avec la version 2005.

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

Posté(e)

Ben oui,

 

on attend (au bureau) une version supérieure ( V2008 j'espère ), le programme sur une clé, j'aurai bien une photocopie à faire pour venir l'essayer sur un poste d'un (ou d'une) collègue.

 

A+

  • 2 semaines après...
Posté(e)

Merci aux testeurs

Bonjour (gile)

Je viens de découvrir le sujet !

Mon système xp et version 2007

Tout marche à merveille. Le fichier Excell se créer tout seul, il suffit de le nommer et de vérifier le chemin. Magique

Un grand merci pour ton travail, je garde moi aussi sous le coude en cas de besoin.

Studio Gfilm - Agence de communication par l'image

 

"Le matin tu peux rester couché pour poursuivre ton rêve, ou te lever pour le réaliser"

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é