-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
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 @+
-
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 @+
-
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 @+
-
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) @+
-
Salut Et pourquoi ne pas mettre une valeur dans l'étiquette vide qui sera ensuite selectionnée afin de faire tourner le lisp ? @+
-
Remplcament de caractères ?
Patrick_35 a répondu à un(e) sujet de lenoil dans Pour aller plus loin en LISP
Salut Regarde la fonction (vl-string-translate ...) @+ Extrait de l'aide -
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 @+
-
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; }
-
Salut Tu peux t'inspirer de ce lisp et de celui-ci @+
-
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]
-
Récupérations des propriétés des fichiers DWG
Patrick_35 a répondu à un(e) sujet de guibout dans AutoCAD 2005
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: @+ -
Récupérations des propriétés des fichiers DWG
Patrick_35 a répondu à un(e) sujet de guibout dans AutoCAD 2005
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 @+ -
Récupérations des propriétés des fichiers DWG
Patrick_35 a répondu à un(e) sujet de guibout dans AutoCAD 2005
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) ) -
Récupérations des propriétés des fichiers DWG
Patrick_35 a répondu à un(e) sujet de guibout dans AutoCAD 2005
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 @+ -
Commander le lancement d\'un lisp Autocad depuis Excel
Patrick_35 a répondu à un(e) sujet de guibout dans AutoCAD 2005
Salut Tu as ce sujet et celui-ci @+ [Edité le 16/3/2006 par Patrick_35] -
Récupérations des propriétés des fichiers DWG
Patrick_35 a répondu à un(e) sujet de guibout dans AutoCAD 2005
Salut Tu as essayé le lisp que je te propose ? @+ -
Récupérations des propriétés des fichiers DWG
Patrick_35 a répondu à un(e) sujet de guibout dans AutoCAD 2005
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) ) -
J\'ai bcp de mal avec entnext entlast
Patrick_35 a répondu à un(e) sujet de cadpolo dans Débuter en LISP
Ce que je veux dire, c'est que le lisp pourra fonctionner sur n'importe quelle machine, version, pays et langage. @+ -
J\'ai bcp de mal avec entnext entlast
Patrick_35 a répondu à un(e) sujet de cadpolo dans Débuter en LISP
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 ;) @+ -
J\'ai bcp de mal avec entnext entlast
Patrick_35 a répondu à un(e) sujet de cadpolo dans Débuter en LISP
Salut Bonus. Je pensais surtout aux blocs avec attributs afin d'éviter un traitement indésirable @+ -
J\'ai bcp de mal avec entnext entlast
Patrick_35 a répondu à un(e) sujet de cadpolo dans Débuter en LISP
Je n'avais pas vu. Malin le (gile) ;) @+ -
J\'ai bcp de mal avec entnext entlast
Patrick_35 a répondu à un(e) sujet de cadpolo dans Débuter en LISP
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 @+ -
Salut ou encore ce sujet @+
-
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.. @+
-
Salut La mise à jour est faite sur ce nouveau lien C'est un zip qui contient maintenant le fichier lisp et un fichier dcl @+
