Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Patrick_35

    insertion en masse

    Je suis surpris Je viens de refaire un essai et ça fonctionne ! Le bloc existe dans le dessin ou pas ?. Si non, il manque peut-être l'extension .dwg ? C'est un bloc dynamique ? ah, une précision, l'insertion se fait dans l'eo @+
  2. Patrick_35

    Fermeture d\'AcadTunning

    Oui, c'est dommage car il est bien sympa Dommage de passer autant de temps pour le webmaster et de perdre ce qui commencait à être un bon site @+
  3. La réponse est OUI, mais il va falloir programmer Tu as plusieurs sujets qui traite de l'export vers excel ainsi que la longueur d'une poly @+
  4. Patrick_35

    insertion en masse

    Salut Bonus Juste pour remplacer la commande _.insert en vlisp (setq obj (vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0.0 0.0 0.0)) "MON_BLOC" 1 1 1 0)) et qui evitera le (vlax-ename->vla-object (entlast)) et pour l'effacer (vla-delete obj) @+
  5. Patrick_35

    PROBLEME D\'ATTRIBUT

    Salut Et pourquoi ne pas mettre une valeur dans l'étiquette vide qui sera ensuite selectionnée afin de faire tourner le lisp ? @+
  6. Salut Regarde la fonction (vl-string-translate ...) @+ Extrait de l'aide
  7. Salut Essaie ce lisp Pour oli553 J'ai cru comprendre que la légende ne comptait pas les blocs dynamique. Peut-tu me faire un (entget (car (entsel))) d'un dynamique et me donner le résultat afin que je puisse l'intégrer au lisp @+
  8. Patrick_35

    Copie de présentations

    Salut Tu as aussi lisp et si tu oublis la mise en page, tu peux le faire sur la première et te servir du lisp suivant pour recopier les présentations @+ Fichier MPL.LSP ;;;================================================= ;;; ;;; MPL.LSP V1.00 ;;; ;;; Recopier la config des Présentations ;;; ;;; Copyright (C) Patrick_35 ;;; ;;;================================================= (defun c:mpl(/ s) ;;;--------------------------------------------------------------- ;;; ;;; Gestion des erreurs ;;; ;;;--------------------------------------------------------------- (defun *errmpl* (msg) (if (/= msg "Function cancelled") (if (= msg "quit / exit abort") (princ) (princ (strcat "\nErreur : " msg)) ) (princ) ) (setq *error* s) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (princ) ) ;;;--------------------------------------------------------------- ;;; ;;; Routine principale ;;; ;;;--------------------------------------------------------------- (defun multiplie_plt(/ config doc i init_mpl j liste_lay n position positiondests resultat) (defun liste_destination() (start_list "dest") (mapcar 'add_list (vl-remove (nth (atoi position) liste_lay) liste_lay)) (end_list) (set_tile "dest" positiondest) ) (setq init_mpl (load_dialog (findfile "mpl.dcl"))) (setq liste_lay (layoutlist) n 0 position "0" positiondest "0") (if (vl-position "Model" liste_lay) (setq liste_lay (vl-remove "Model" liste_lay)) ) (if (cdr liste_lay) (progn (while (nth n liste_lay) (if (= (getvar "ctab") (nth n liste_lay)) (setq position (itoa n)) ) (setq n (1+ n)) ) (new_dialog "mpl" init_mpl "") (start_list "mpl") (mapcar 'add_list liste_lay) (end_list) (liste_destination) (set_tile "titre" "Copie Présentation V1.00") (set_tile "mpl" position) (mode_tile "mpl" 2) (while (and (/= resultat 1)(/= resultat 0)) (action_tile "mpl" "(setq position $value)(liste_destination)") (action_tile "dest" "(setq positiondest $value)") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (setq resultat (start_dialog)) ) (unload_dialog init_mpl) (if (eq resultat 1) (progn (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vlax-for lay (vla-get-layouts doc) (if (eq (nth (atoi position) liste_lay) (vla-get-name lay)) (setq config lay) ) ) (setq liste_lay (vl-remove (nth (atoi position) liste_lay) liste_lay)) (while (not (eq positiondest "")) (setq position (read positiondest)) (vlax-for lay (vla-get-layouts doc) (if (eq (nth position liste_lay) (vla-get-name lay)) (progn (vla-put-ConfigName lay (vla-get-ConfigName config)) (vla-put-CanonicalMediaName lay (vla-get-CanonicalMediaName config)) (vla-GetCustomScale config 'i 'j) (vla-SetCustomScale lay i j) (vla-GetWindowToPlot config 'i 'j)(vla-SetWindowToPlot lay i j) (vla-put-PlotOrigin lay (vla-get-PlotOrigin config)) (vla-put-PaperUnits lay (vla-get-PaperUnits config)) (vla-put-PlotHidden lay (vla-get-PlotHidden config)) (vla-put-PlotRotation lay (vla-get-PlotRotation config)) (vla-put-PlotType lay (vla-get-PlotType config)) (vla-put-PlotViewportBorders lay (vla-get-PlotViewportBorders config)) (vla-put-PlotViewportsFirst lay (vla-get-PlotViewportsFirst config)) (vla-put-PlotWithLineweights lay (vla-get-PlotWithLineweights config)) (vla-put-PlotWithPlotStyles lay (vla-get-PlotWithPlotStyles config)) (vla-put-ScaleLineweights lay (vla-get-ScaleLineweights config)) (vla-put-ShowPlotStyles lay (vla-get-ShowPlotStyles config)) (vla-put-StandardScale lay (vla-get-StandardScale config)) (vla-put-StyleSheet lay (vla-get-StyleSheet config)) (vla-put-UseStandardScale lay (vla-get-UseStandardScale config)) (if (not (eq (vla-get-PlotType config) aclayout)) (vla-put-CenterPlot lay (vla-get-CenterPlot config)) ) (princ (strcat "\nMise à jour de la mise en page de " (vla-get-name lay) " depuis " (vla-get-name config))) ) ) ) (setq positiondest (substr positiondest (+ 2 (strlen (itoa position))) (strlen positiondest))) ) ) ) ) (alert "Une seule présentation\nUtilisation inutile du Lisp") ) ) ;;;--------------------------------------------------------------- ;;; ;;; Routine de lancement ;;; ;;;--------------------------------------------------------------- (vl-load-com) (setq s *error*) (setq *error* *errmpl*) (vla-startundomark (vla-get-activedocument (vlax-get-acad-object))) (multiplie_plt) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (setq *error* s) (princ) ) (princ "\nMPL.LSP chargé. Tapez MPL pour l'exécuter") (princ) Fichier MPL.DCL // ================================================= // // MPL.DCL V1.00 // // Copyright (C) Patrick_35 // // ================================================= mpl : dialog { key = "titre"; fixed_width = true; alignment = centered; is_cancel = true; width = 20; : popup_list {label= "Origine"; key = "mpl";} spacer; : list_box {label= "Destination" ; key="dest"; height = 10; multiple_select=true;} spacer; ok_cancel; }
  9. Patrick_35

    Catalogue de blocs

    Salut Tu peux t'inspirer de ce lisp et de celui-ci @+
  10. Bonjour à vous tous Il y a ce site qui permet de stocker tous les types de fichiers que l'on désire. C'est gratuit et sans besoin de s'inscrire. Et il y a ce lien qui en donne plusieurs @+ [Edité le 22/3/2006 par Patrick_35]
  11. Merci (gile) :cool: C'est donc bien un souci de version (c'est quand même vicieux de changer value par value2 :mad: ) Donc avec 2003 et XP, il faut value2 Sur 97 seulement value Reste à savoir pour la version 2000 :casstet: @+
  12. Salut C'est surement dû à un problème de version d'excel. D'après ce post, il faut remplacer tous les "xlp-put-value" par "xlp-put-value2". Comme je n'ai pas la version 2003, je ne peux pas tester, mais ça fonctionne très bien sur mon Excel97. Si d'autres pouvait tester le prog avec différentes versions d'excel, ce serait sympa. Et si tu veux le mettre à disposition le lisp, c'est comme tu le souhaites @+
  13. Salut voici le lisp complet avec une liaison avec Excel. Le séparateur pour les xrefs et les présentations est le ; @+ (defun c:spy(/ classeur disk_unit dossier feuille folder_name folder_list ligne lien_xl lst_str olderr rep sd xl) (defun err (msg / i n) (if (/= msg "Fonction annulée") (princ (strcat "\nErreur : " msg)) (princ msg) ) (setq *error* olderr) (princ) ) (defun Liaison_Excel(/ Chemin_Excel Environ Version_Excel) (if (setq Chemin_Excel (vl-registry-read "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE" "Path")) (progn (foreach Environ (list "SYSTEMROOT" "WINDIR" "WINBOOTDIR" "SYSTEMDRIVE" "USERNAME" "COMPUTERNAME" "HOMEDRIVE" "HOMEPATH" "PROGRAMFILES") (if (vl-string-search (strcat "%" Environ "%") Chemin_Excel) (setq Chemin_Excel (vl-string-subst (strcase (getenv Environ)) (strcat "%" Environ "%") Chemin_Excel)) ) ) (if (= (vl-string-elt Chemin_Excel (1- (strlen Chemin_Excel))) 92) (setq Chemin_Excel (strcat Chemin_Excel "Excel.exe")) (setq Chemin_Excel (strcat Chemin_Excel "\\Excel.exe")) ) (cond ((findfile (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel)) (setq Chemin_Excel (vl-string-subst "Excel8.olb" "Excel.exe" Chemin_Excel)) ) ((findfile (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel)) (setq Chemin_Excel (vl-string-subst "Excel9.olb" "Excel.exe" Chemin_Excel)) ) ((findfile (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel)) (setq Chemin_Excel (vl-string-subst "Excel10.olb" "Excel.exe" Chemin_Excel)) ) ) (cond ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE11") (setq Version_Excel "2003") ) ((= (strcase (vl-filename-base (vl-filename-directory Chemin_Excel))) "OFFICE10") (setq Version_Excel "XP") ) ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL8") (setq Version_Excel "97") ) ((= (strcase (vl-filename-base Chemin_Excel)) "EXCEL9") (setq Version_Excel "2000") ) ) (if (not Version_Excel) (setq Chemin_Excel nil) ) ) ) (list Chemin_Excel Version_Excel) ) (defun extract_folder (lst_fold / l_dir l) (setq l_dir '()) (foreach n lst_fold (setq l (vl-directory-files n nil -1)) (if (eq (car l) ".") (setq l (cddr l)) ) (cond (l (setq l_dir (append (mapcar '(lambda (x) (strcat n x "/") ) l ) l_dir ) ) ) ) ) l_dir ) (defun rng (col) (xlp-get-range feuille (strcat col (itoa ligne))) ) (defun rechercher(rep fichier / bl blc dess doc fic lsp lst rech) (if (setq lst (vl-directory-files rep fichier 1)) (progn (setq lsp (getvar "acadlspasdoc")) (setvar "acadlspasdoc" 0) (setq doc (vla-get-documents (vlax-get-acad-object))) (foreach fic lst (setq dess (vla-open doc (strcat rep fic))) (xlp-put-value (rng "A") (vl-string-translate "/" "\\" rep)) (xlp-put-value (rng "B") fic) (xlp-put-value (rng "C") (vl-file-size (strcat rep fic))) (xlp-put-numberformatlocal (rng "C") "# ##0") (xlp-put-value (rng "D") (- (vlax-variant-value (vla-getvariable dess "tdcreate")) 2415019)) (xlp-put-numberformatlocal (rng "D") "jj/mm/aaaa hh:mm:ss") (xlp-put-value (rng "E") (- (vlax-variant-value (vla-getvariable dess "tdupdate")) 2415019)) (xlp-put-numberformatlocal (rng "E") "jj/mm/aaaa hh:mm:ss") (xlp-put-value (rng "F") (vlax-variant-value (vla-getvariable dess "tdindwg"))) (xlp-put-numberformatlocal (rng "F") "hh:mm:ss") (setq blc (vla-get-blocks dess) nom "Aucun") (vlax-for bl blc (if (eq (vla-get-isxref bl) :vlax-true) (if (eq nom "Aucun") (setq nom (vla-get-name bl)) (setq nom (strcat nom ";" (vla-get-name bl))) ) ) ) (xlp-put-value (rng "G") nom) (setq blc (vla-get-layouts dess) nom "Aucune") (vlax-for bl blc (if (not (eq (vla-get-name bl) "Model")) (if (eq nom "Aucune") (setq nom (vla-get-name bl)) (setq nom (strcat nom ";" (vla-get-name bl))) ) ) ) (xlp-put-value (rng "H") nom) (setq ligne (1+ ligne)) (vla-close dess) ) (setvar "acadlspasdoc" lsp) ) ) ) (vl-load-com) (if (car (setq lien_xl (Liaison_Excel))) (progn (setq olderr *error* *error* err) (setq sd (getvar "sdi")) (setvar "sdi" 0) (if (member "acetutil.arx" (arx)) (setq folder_name (acet-ui-pickdir)) (setq folder_name (getstring T "\nRépertoire de recherche : ")) ) (if folder_name (progn (if (not (eq (vl-string-elt folder_name (1- (strlen folder_name))) 92)) (setq folder_name (strcat folder_name "\\")) ) (setq folder_name (vl-string-translate "\\" "/" folder_name) folder_list (list folder_name) lst_str folder_list) (if (setq Xl (vlax-get-or-create-object "Excel.Application")) (progn (princ (strcat "\nConnexion avec Excel " (cadr lien_xl))) (if (null xl-open) (vlax-import-type-library :tlb-filename (car lien_xl) :methods-prefix "xl-" :properties-prefix "xlp-" :constants-prefix "xlc-") ) (setq xl_wks (vlax-get xl "Workbooks")) (setq dossier (vla-add xl_wks)) (setq classeur (vlax-get dossier "Sheets")) (setq feuille (xlp-get-item classeur 1)) (vla-put-visible xl 1) (setq ligne 1) (xlp-put-value (rng "A") "Chemin") (xlp-put-value (rng "B") "Fichier") (xlp-put-value (rng "C") "Taille") (xlp-put-value (rng "D") "Date de création") (xlp-put-value (rng "E") "Date du dernier enregistrement") (xlp-put-value (rng "F") "Temps du dessin") (xlp-put-value (rng "G") "Xref(s)") (xlp-put-value (rng "H") "Présentation(s)") (setq ligne 2) ) ) (rechercher folder_name "*.dwg") (while (setq lst_str (extract_folder lst_str)) (foreach rep lst_str (rechercher rep "*.dwg") ) ) ) ) (setvar "sdi" sd) (setq *error* olderr) ) (alert "Excel est introuvable") ) (princ) )
  14. Non, je n'envoi pas les info dans un fichier mais uniquement dans le fenêtre de texte. Les valeurs sont là et c'est ensuite pour pouvoir ensuite les écrire directement dans Excel et c'est pour cela que je passe pas par un fichier. Je te posais aussi quelques questions, à moins que tu ne souhaites le faire toi-même grace au deux liens que je t'ai donné lors d'un autre post @+
  15. Salut Tu as ce sujet et celui-ci @+ [Edité le 16/3/2006 par Patrick_35]
  16. Salut Tu as essayé le lisp que je te propose ? @+
  17. Salut C'est juste pour te montrer ce qui est possible de faire. Maintenant, pour ce qui est indiqué dans la fenêtre de texte, il faudrait que tu m'indiques comment tu veux que je reporte les infos dans excel. Depuis un fichier avec le choix de la feuille ou depuis un classeur vierge ? Le nom du dwg en colonne A, la taille en colonne B, etc... @+ (defun c:spy(/ disk_unit folder_name folder_list lst_str olderr rep sd) (defun err (msg / i n) (if (/= msg "Fonction annulée") (princ (strcat "\nErreur : " msg)) (princ msg) ) (setq *error* olderr) (princ) ) (defun extract_folder (lst_fold / l_dir l) (setq l_dir '()) (foreach n lst_fold (setq l (vl-directory-files n nil -1)) (if (eq (car l) ".") (setq l (cddr l)) ) (cond (l (setq l_dir (append (mapcar '(lambda (x) (strcat n x "/") ) l ) l_dir ) ) ) ) ) l_dir ) (defun donne_date(td / d j hh m mm ss time y) (setq time (* 86400.0 (- td (setq j (fix td))))) (setq j (- j 1721119.0)) (setq y (fix (/ (1- (* 4 j)) 146097.0))) (setq j (- (* j 4.0) 1.0 (* 146097.0 y))) (setq d (fix (/ j 4.0))) (setq j (fix (/ (+ (* 4.0 d) 3.0) 1461.0))) (setq d (- (+ (* 4.0 d) 3.0) (* 1461.0 j))) (setq d (fix (/ (+ d 4.0) 4.0))) (setq m (fix (/ (- (* 5.0 d) 3) 153.0))) (setq d (- (* 5.0 d) 3.0 (* 153.0 m))) (setq d (fix (/ (+ d 5.0) 5.0))) (setq y (+ (* 100.0 y) j)) (if (< m 10.0) (setq m (+ m 3)) (progn (setq m (- m 9)) (setq y (1+ y)) ) ) (setq hh (fix (/ time 3600.0))) (setq time (- time (* hh 3600.00))) (setq mm (fix (/ time 60.0))) (setq ss (- time (* mm 60.0))) (setq d (itoa (fix d))) (setq m (itoa (fix m))) (setq y (itoa (fix y))) (setq hh (itoa hh)) (setq mm (itoa mm)) (setq ss (itoa (fix ss))) (if (= (strlen d) 1) (setq d (strcat "0" d))) (if (= (strlen m) 1) (setq m (strcat "0" m))) (if (= (strlen hh) 1) (setq hh (strcat "0" hh))) (if (= (strlen mm) 1) (setq mm (strcat "0" mm))) (if (= (strlen ss) 1) (setq ss (strcat "0" ss))) (list (strcat d "." m "." y " " hh ":" mm ":" ss) (strcat hh ":" mm ":" ss)) ) (defun rechercher(rep fichier / bl blc dess doc fic lsp lst rech) (if (setq lst (vl-directory-files rep fichier 1)) (progn (setq lsp (getvar "acadlspasdoc")) (setvar "acadlspasdoc" 0) (setq doc (vla-get-documents (vlax-get-acad-object))) (foreach fic lst (setq dess (vla-open doc (strcat rep fic))) (princ (strcat "\nTaille du fichier " (vl-string-translate "/" "\\" rep) fic " " (itoa (vl-file-size (strcat rep fic))))) (princ (strcat "\nDate de création " (car (donne_date (vlax-variant-value (vla-getvariable dess "tdcreate")))))) (princ (strcat "\nDate du dernier enregistrement " (car (donne_date (vlax-variant-value (vla-getvariable dess "tdupdate")))))) (princ (strcat "\nTemps passé " (cadr (donne_date (vlax-variant-value (vla-getvariable dess "tdindwg" )))))) (princ "\nXref(s) associé(s)") (setq blc (vla-get-blocks dess)) (vlax-for bl blc (if (eq (vla-get-isxref bl) :vlax-true) (princ (strcat "\n\t" (vla-get-name bl))) ) ) (princ "\nPrésentation(s) dans le dessin") (setq blc (vla-get-layouts dess)) (vlax-for bl blc (if (not (eq (vla-get-name bl) "Model")) (princ (strcat "\n\t" (vla-get-name bl))) ) ) (vla-close dess) ) (setvar "acadlspasdoc" lsp) ) ) ) (vl-load-com) (setq olderr *error* *error* err) (setq sd (getvar "sdi")) (setvar "sdi" 0) (if (member "acetutil.arx" (arx)) (setq folder_name (acet-ui-pickdir)) (setq folder_name (getstring T "Répertoire de recherche : ")) ) (if folder_name (progn (if (not (eq (vl-string-elt folder_name (1- (strlen folder_name))) 92)) (setq folder_name (strcat folder_name "\\")) ) (setq folder_name (vl-string-translate "\\" "/" folder_name) folder_list (list folder_name) lst_str folder_list) (rechercher folder_name "*.dwg") (while (setq lst_str (extract_folder lst_str)) (foreach rep lst_str (rechercher rep "*.dwg") ) ) ) ) (setvar "sdi" sd) (setq *error* olderr) (princ) )
  18. Ce que je veux dire, c'est que le lisp pourra fonctionner sur n'importe quelle machine, version, pays et langage. @+
  19. Salut En version international (command "_.layer" "_make" "_BA_Maçonneries" "_color" "6" "" "") Pour la commande pedit, chprop, hachure et draworder, c'est la même chose Je te laisse chercher un peu ;) @+
  20. Salut Bonus. Je pensais surtout aux blocs avec attributs afin d'éviter un traitement indésirable @+
  21. Je n'avais pas vu. Malin le (gile) ;) @+
  22. Salut C'est une méthode plus que valable avec le entnext de dep mais, car il y a toujours un mais, il faut faire gaffe que la dernière entité n'est pas un bloc @+
  23. Patrick_35

    calcul de surfaces

    Salut ou encore ce sujet @+
  24. Patrick_35

    Lier 2 attributs

    Salut J'ai changé l'incrémentation comme tu le souhaites Si tu fais 001, ce serat donc sur trois chiffres, 01, sur deux, etc.. @+
  25. Patrick_35

    Lier 2 attributs

    Salut La mise à jour est faite sur ce nouveau lien C'est un zip qui contient maintenant le fichier lisp et un fichier dcl @+
×
×
  • 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é