schpountz Posté(e) le 24 août 2009 Posté(e) le 24 août 2009 Bonjour, Je voudrais récupérer les noms d'onglets dans un tableau autocad.QQ1 à une idée? Merci
(gile) Posté(e) le 25 août 2009 Posté(e) le 25 août 2009 Salut, La demande n'étant pas très détaillée, j'ai fait comme je le sentais (defun c:Lay2tbl (/ lst len col ins) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))) (setq lst (layoutlist)) (setq len (length lst)) (if (and (setq col (getint "\nNombre de colonnes: ")) (setq ins (trans (getpoint "\nPoint d'insertion: ") 1 0)) ) (progn (setq lst (layoutlist) len (length lst) tbl (vla-addtable (vla-get-ModelSpace *acdoc*) (vlax-3d-point ins) (1+ len) col 9 ; Hauteur cellule 50 ; Largeur cellule ) row 0 ) (vla-put-VertCellMargin tbl 1.5) ; Marge verticale (vla-put-TitleSuppressed tbl :vlax-false) (vla-put-HeaderSuppressed tbl :vlax-true) (foreach p lst (vla-SetText tbl (setq row (1+ row)) 0 p) ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
schpountz Posté(e) le 25 août 2009 Auteur Posté(e) le 25 août 2009 En fait, je travail en format A3 et je fais des carnets de plans comportant un nombre important de feuillets. Le nom de l'onglet est récupéré dans mon cartouche pour remplir le nom du plan, la numérotation du plan, et avec une formule en diesel, j'arrive à remplir des champs dans mes cartouche en automatique. Comme mes carnets peuvent avoir une grande quantité de plans (et donc d'onglets), jusqu'a 70, je voudrais remplir ma liste de plan automatiquement par une routine qui récupèrerait le nom de chaque onglet.
schpountz Posté(e) le 25 août 2009 Auteur Posté(e) le 25 août 2009 Je voudrais vous mettre le visuel de mon gabarit, mais, comment faire?
PHILPHIL Posté(e) le 25 août 2009 Posté(e) le 25 août 2009 HELLO cool le tableau gile est ce que l'on pourrait avoir en colonne 2 le nom du peripherique de tracage qui va avec la presentation et colonne 3 la taille du trace qui corespont a+ bonne soirée phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 25 août 2009 Posté(e) le 25 août 2009 Un truc comme ça ? EDIT : nouvelle version(defun c:Lay2tbl (/ lst len ins lay) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))) (setq layouts (vla-get-Layouts *acdoc*)) (setq lst (layoutlist)) (setq len (length lst)) (if (setq ins (trans (getpoint "\nPoint d'insertion: ") 1 0)) (progn (setq lst (layoutlist) len (length lst) tbl (vla-addtable (vla-get-ModelSpace *acdoc*) (vlax-3d-point ins) (1+ len) 3 9 ;_ Hauteur cellule 50 ;_ Largeur cellule ) row 0 ) (vla-put-VertCellMargin tbl 1.5) ;_ Marge verticale (vla-put-TitleSuppressed tbl :vlax-false) (vla-put-HeaderSuppressed tbl :vlax-true) (foreach p lst (setq lay (vla-item layouts p)) (vla-SetText tbl (setq row (1+ row)) 0 p) (vla-SetText tbl row 1 (vla-get-ConfigName lay)) (vla-SetText tbl row 2 ((lambda (cmn / lmn) (if (vl-catch-all-error-p (setq lmn (vl-catch-all-apply 'vla-GetLocaleMediaName (list lay cmn) ) ) ) cmn lmn ) ) (vla-get-CanonicalMediaName lay) ) ) (vla-SetCellAlignment tbl row 0 5) (vla-SetCellAlignment tbl row 1 5) (vla-SetCellAlignment tbl row 2 5) ) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 25 août 2009 Posté(e) le 25 août 2009 HELLO GILE PETIT SOUCI j'ai des onglets formater pdf : la il me fait bien la liste nom, traceur.pc3, taille papier des qu'il passe a un onglet formater en PLT il donne le nom et le traceur .pc3 mais il bloque sur la taille papier bizarre :casstet: a+ phil Commande: Lay2tbl Point d'insertion: *Annuler* Erreur Automation Entrée incorrecte FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 25 août 2009 Posté(e) le 25 août 2009 J'ai modifié le code. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 25 août 2009 Posté(e) le 25 août 2009 HELLO GILE YYessssss ca marche (defun c:tabp (/ lst len ins lay) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-activedocument (vlax-get-acad-object)))) (setq layouts (vla-get-layouts *acdoc*)) (setq lst (layoutlist)) (setq len (length lst)) (if (setq ins (trans (getpoint "\nPoint d'insertion: ") 1 0)) (progn (setq lst (layoutlist) len (length lst) tbl (vla-addtable (vla-get-modelspace *acdoc*) (vlax-3d-point ins) (1+ len) 4 9 ;_ Hauteur cellule 150 ;_ Largeur cellule ) row 0 ) (vla-put-vertcellmargin tbl 1.5) ;_ Marge verticale (vla-put-titlesuppressed tbl :vlax-false) (vla-put-headersuppressed tbl :vlax-true) (foreach p lst (setq lay (vla-item layouts p)) (vla-settext tbl (setq row (1+ row)) 0 p) (vla-settext tbl row 1 (vla-get-taborder lay)) (vla-settext tbl row 2 (vla-get-configname lay)) (vla-settext tbl row 3 ((lambda (cmn / lmn) (if (vl-catch-all-error-p (setq lmn (vl-catch-all-apply 'vla-getlocalemedianame (list lay cmn) ) ) ) cmn lmn ) ) (if (wcmatch (vla-get-canonicalmedianame lay) "UserDefinedMetric*") (progn (setq long (strlen (vla-get-canonicalmedianame lay))) (substr (vla-get-canonicalmedianame lay) 20 (- long 22)) ) (vla-get-canonicalmedianame lay) ) ) ) (vla-setcellalignment tbl row 0 5) (vla-setcellalignment tbl row 1 5) (vla-setcellalignment tbl row 2 5) (vla-setcellalignment tbl row 3 5) ) ) ) (princ) ) merci gile phil[Edité le 25/8/2009 par PHILPHIL] [Edité le 25/8/2009 par PHILPHIL] FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
PHILPHIL Posté(e) le 25 août 2009 Posté(e) le 25 août 2009 hello l'idéal serait de trier la liste des presentations suivant "TABORDER" mais la je coince phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
PHILPHIL Posté(e) le 25 août 2009 Posté(e) le 25 août 2009 hello bon c'est pas tres comment dire "academique" comme code mais ca marche merci gile pour les 97% de code fournit au dessus a+ phil bon petit test sur un fichier de 7.4 mega 192 presentations ( maxi possible de toutes facon 255 ) 8 minutes 40 seconde quand meme pour faire le tableau record batu de LENTEURRRRR genial (defun c:tabp (/ lst len ins lay) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-activedocument (vlax-get-acad-object)))) (setq layouts (vla-get-layouts *acdoc*)) (setq lst (layoutlist)) (setq len (length lst)) (if (setq ins (trans (getpoint "\nPoint d'insertion: ") 1 0)) (progn (setq lst (layoutlist) len (length lst) tbl (vla-addtable (vla-get-modelspace *acdoc*) (vlax-3d-point ins) (1+ len) 4 9 ;_ Hauteur cellule 150 ;_ Largeur cellule ) row 0 ) (vla-put-vertcellmargin tbl 1.5) ;_ Marge verticale (vla-put-titlesuppressed tbl :vlax-false) (vla-put-headersuppressed tbl :vlax-true) (setq liste1 nil) (foreach p lst (setq lay (vla-item layouts p)) (setq liste1 (cons (list (vla-get-name lay) (vla-get-taborder lay)) liste1)) ) (setq liste2 (vl-sort liste1 (function (lambda (e1 e2) (< (cadr e1) (cadr e2)))))) (setq liste3 nil) (setq len (1- len)) (foreach p liste2 (setq liste3 (cons (car (nth len liste2)) liste3)) (setq len (1- len)) ) (foreach p liste3 ;;lst (setq lay (vla-item layouts p)) (vla-settext tbl (setq row (1+ row)) 0 p) (vla-settext tbl row 1 (vla-get-taborder lay)) (vla-settext tbl row 2 (vla-get-configname lay)) (vla-settext tbl row 3 ((lambda (cmn / lmn) (if (vl-catch-all-error-p (setq lmn (vl-catch-all-apply 'vla-getlocalemedianame (list lay cmn) ) ) ) cmn lmn ) ) (if (wcmatch (vla-get-canonicalmedianame lay) "UserDefinedMetric*") (progn (setq long (strlen (vla-get-canonicalmedianame lay))) (substr (vla-get-canonicalmedianame lay) 20 (- long 22)) ) (vla-get-canonicalmedianame lay) ) ) ) (vla-setcellalignment tbl row 0 5) (vla-setcellalignment tbl row 1 5) (vla-setcellalignment tbl row 2 5) (vla-setcellalignment tbl row 3 5) ) ) ) (princ) ) [Edité le 26/8/2009 par PHILPHIL] FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Patrick_35 Posté(e) le 26 août 2009 Posté(e) le 26 août 2009 Salut Voici une routine dont je me sers pour avoir les onglets dans l'ordre (defun liste_layouts(/ n lst liste_lay) (setq n 1) (vlax-for lay (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) (setq lst (cons (list (vla-get-taborder lay) (vla-get-name lay)) lst)) ) (while (assoc n lst) (setq liste_lay (cons (cadr (assoc n lst)) liste_lay) n (1+ n) ) ) (reverse liste_lay ) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 26 août 2009 Posté(e) le 26 août 2009 Salut, Pour la liste des présentation dans l'ordre, je proposais ça ici :(vlax-for l (vla-get-layouts (vla-get-ActiveDocument (vlax-get-acad-object)) ) (setq lst (cons (cons (vla-get-TabOrder l) (vla-get-Name l)) lst)) ) (setq lst (cdr (mapcar 'cdr (vl-sort lst '(lambda (x1 x2) ( ) ) ) Pour supprimer "UserDefinedMetric", regarde la fonction vl-string-subst :(vl-string-subst "" "UserDefinedMetric" (vla-get-CanonicalMediaName lay)) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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