ludo07 Posté(e) le 20 septembre 2010 Posté(e) le 20 septembre 2010 Bonjour, Je souhaiterais obtenir une légende automatique de mes blocs dans mon fichier AUTOCAD.Avec les blocs qui s'insérent dans la première colonne puis avec la colonne de quantité. Je sais que autocad propose une extraction des entités me permettant de créér un tableau avec nom des blocs et quantité (+ d'autre colonne). Mais il insére le nom et pas le dessin des blocs. En faisant une recherche sur les forums j'ai trouver le lisp de patrick _35 : LG, c'est exactement ce que je souhaite.NOTA: j'utilise des blocs dynamiques. En utilisant le lisp LG il y a possibilité de selectionner un gabarit de légende soit xls soit dwg.Mon souhait serais d'utiliser le gabarit dwg mais il faudrait que le programme ajoute la dernière colonne des quantités. Comment je fais? Merci
lili2006 Posté(e) le 20 septembre 2010 Posté(e) le 20 septembre 2010 Bonsoir à toutes et tous, Il y a aussi TABLOBLO,.... ;; TABLOBLO (Tramber), revu par (gile) ;; Crée un tableau qui liste les blocs insérés (sélectionnés ou toute la collection) (defun c:tabloblo (/ libloc liidbloc ss col liref ptins tableVL cont row) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (prompt "\nSélectionnez les blocs à lister ou ") (or (setq ss (ssget '((0 . "INSERT")))) (setq ss (ssget "_X" '((0 . "INSERT"))) col T ) ) (if ss (progn (vlax-for x (setq ss (vla-get-ActiveSelectionSet *acdoc*) ) (or (vlax-property-available-p x 'Path) (setq liref (cons (if (vlax-property-available-p x 'EffectiveName) (vla-get-EffectiveName x) (vla-get-Name x) ) liref ) ) ) ) (vla-delete ss) ) ) (if col (vlax-for i (vla-get-Blocks *acdoc*) (if (and (not (wcmatch (setq name (vla-get-Name i)) "`**,*|*")) (= :vlax-false (vla-get-IsXref i)) ) (setq libloc (append libloc (list (vla-get-name i))) liidbloc (append liidbloc (list (vla-get-ObjectID i))) ) ) ) (setq libloc (remove_doubles liref) liidbloc (mapcar '(lambda (x) (vla-get-ObjectID (vla-item (vla-get-Blocks *acdoc*) x ) ) ) libloc ) ) ) (initget 1) (setq ptins (trans (getpoint "\nPoint d'insertion: ") 1 0)) (setq tableVL (vla-addtable (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)) ) (vlax-3d-point ptins) (+ 2 (length libloc)) 3 20 ; Hauteur cellule 80 ; Largeur cellule ) ) (vla-put-VertCellMargin tableVL 4.0) ; Marge verticale (vla-put-TitleSuppressed tableVL :vlax-false) (vla-put-HeaderSuppressed tableVL :vlax-false) (vla-setText tableVL 0 0 "Blocs") ; Titre (vla-setText tableVL 1 0 "Nom") ; Titre colonne 1 (vla-setText tableVL 1 1 "Nombre") ; Titre colonne 2 (vla-setText tableVL 1 2 "Symbole") ; Titre colonne 3 (setq cont -1 row 1 ) (repeat (- (vla-get-Rows tableVL) 2) (vla-settext tableVL (setq row (1+ row)) 0 (nth (setq cont (1+ cont)) libloc) ) (vla-settext tableVL row 1 (length (vl-remove-if-not '(lambda (n) (= n (nth cont libloc))) liref ) ) ) (vla-SetBlockTableRecordId tableVL row 2 (nth cont liidbloc) :vlax-true ) (vla-setcellalignment tableVL row 0 5) (vla-setcellalignment tableVL row 1 5) ) (princ) ) ;;; REMOVE_DOUBLES - Suprime tous les doublons d'une liste (defun REMOVE_DOUBLES (lst) (if lst (cons (car lst) (REMOVE_DOUBLES (vl-remove (car lst) lst))) ) ) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Calecx Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Bonjour, je viens de tester la lisp "tabloblo", mais chez moi cela ne semble pas fonctionner, je précise que je suis sous Autocad 2006.je lance la commande, sélectionne les objets comme demandé, puis clic un point d'insertion, mais rien ne se passe ensuite, une idée? Cordialement
ludo07 Posté(e) le 21 septembre 2010 Auteur Posté(e) le 21 septembre 2010 Bonjour à tous, lili2006 je viens de tester le lisp, chez moi il fonctionne.Seulement je ferais deux remarques:1) J'utilise des blocs dynamique, la légende que j'obtiens crée une ligne par nom de bloc et nom par état de visibilité de bloc. Peut on l'améliorer pour différencier l'ensemble des états de visibilité? 2) Malgrés le principe de ce lisp (trés utile et impressionnant), je souhaiterais tout de même pouvoir utiliser le lisp LG de patrick. Afin de composer moi même mon propre fichier DWG servant de gabarit pour mes légendes. Si patrick passe par là, peut il étudier la possibilitée de compléter son lisp avec l'ajout de la colonne des quantitées des blocs. MerciA+
lili2006 Posté(e) le 21 septembre 2010 Posté(e) le 21 septembre 2010 Bonsoir à toutes et tous, je souhaiterais tout de même pouvoir utiliser le lisp LG de patrick Pourquoi ne pas poster ici ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Calecx Posté(e) le 23 septembre 2010 Posté(e) le 23 septembre 2010 Bon finalement le lisp fonctionne, je n'avais pas regardé au bon endroit, en fait j'ai lancé la commande en EP et le tableau s'est créé en EO aux coordonnées 0,0.
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