kohen.g Posté(e) le 14 février 2008 Posté(e) le 14 février 2008 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 bride1 té1 redcution Merci
(gile) Posté(e) le 14 février 2008 Posté(e) le 14 février 2008 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
kohen.g Posté(e) le 14 février 2008 Auteur Posté(e) le 14 février 2008 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
kohen.g Posté(e) le 14 février 2008 Auteur Posté(e) le 14 février 2008 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
richard-c Posté(e) le 15 février 2008 Posté(e) le 15 février 2008 bonjour, Idem pour moi, mais moi je suis sur V2002 . . . une petite explication serait la bienvenue. A+
(gile) Posté(e) le 15 février 2008 Posté(e) le 15 février 2008 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
richard-c Posté(e) le 15 février 2008 Posté(e) le 15 février 2008 qu'est ce qu'un tableau AutoCAD ? car j'ai le message d'alerte : L'objet sélectionné n'est pas un tableau AutoCAD A+
(gile) Posté(e) le 15 février 2008 Posté(e) le 15 février 2008 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
richard-c Posté(e) le 15 février 2008 Posté(e) le 15 février 2008 ok, donc pas de test du programme pour moi, je garde le programme sous le coude. A+
Patrick_35 Posté(e) le 15 février 2008 Posté(e) le 15 février 2008 je garde le programme sous le coude. A deux mois de la retraite ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
richard-c Posté(e) le 15 février 2008 Posté(e) le 15 février 2008 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+
FormaBois Posté(e) le 25 février 2008 Posté(e) le 25 février 2008 Merci aux testeurs Bonjour (gile)Je viens de découvrir le sujet !Mon système xp et version 2007Tout 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"
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant