Ezaor Posté(e) le 17 novembre 2022 Posté(e) le 17 novembre 2022 Bonjour, Est-il possible à l'aide d'insertion de champs qu'Autocad cherche des données en dehors du dessin. Je m'explique je sais que je peut chercher le nom du fichier du dessin et l'insérer. J'aimerais appliquer cette méthode mais pour d'autre données (le nom du projet et la ville du projet par exemple). Citer
lecrabe Posté(e) le 17 novembre 2022 Posté(e) le 17 novembre 2022 Hello Mais tu peux definir des Proprietes personnalisees sur ton DWG et les afficher en tant que CHAMP dynamique ... Je te conseille de les nommer comme cela : 1_ALPHA , 1_BRAVO, 1_DATE, 1_VERSION, 1_PROJETEUR, 2_xxxxxx, etc Ainsi elles apparaitront au debut de l enorme ascenseur des Proprietes ! C Tip-Top et cela se remet a jour PARTOUT : Onglet OBJET et TOUTES les Presentations / Layouts Bye, lecrabe Citer Autodesk Expert Elite Team
Ezaor Posté(e) le 17 novembre 2022 Auteur Posté(e) le 17 novembre 2022 Bonjour, Cela marche en effet, malheureusement j'insèrerais ces dessins avec ces propriétés personnalisées en tant que xref et cela ne marche plus Citer
lecrabe Posté(e) le 17 novembre 2022 Posté(e) le 17 novembre 2022 Hello MAIS il te faut 2 Lisp indispensables de notre grand Maitre Gilles !! -- Exporter en CSV ces Proprietes personnalisees -- Importer ces Proprietes personnalisees dans le DWG courant depuis un autre DWG Ca t interesse ? Bye, lecrabe Citer Autodesk Expert Elite Team
Ezaor Posté(e) le 18 novembre 2022 Auteur Posté(e) le 18 novembre 2022 Bonjour, Je suis preneur ne serait-ce que pour tester Citer
Ezaor Posté(e) le 18 novembre 2022 Auteur Posté(e) le 18 novembre 2022 Une autre question en parallèle, est ce qu'il est possible de 'figer' des valeurs de champs. Si je prends pour exemple le champs "Nom du document", pas de soucis dans le dessin originel. Mais si j'insère ce dessin en tant que Xréf dans un autre, le champ "Nom du document" se met à jour pour refléter le nom du dessin dans lequel il a été inséré. Citer
lecrabe Posté(e) le 18 novembre 2022 Posté(e) le 18 novembre 2022 Hello Et donc voici 2 routines indispensables de notre Grand Maitre Gilles pour les Proprietes personnalisees ! -- "DWGProps2CSV" pour exporter en CSV (donc apres Excel) les Proprietes personnalisees ... -- "IMP_PROP_DWG" pour importer les Proprietes personnalisees dans le DWG courant depuis un autre DWG ... Bye, lecrabe -- "DWGProps2CSV" -- ;; ;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-to-extract-data-from-dwgprops-and-place-in-excel/m-p/9071687 ;; ;; Routine: DWGProps2CSV par GC ;; ;; Le fichier CSV genere est AU MEME Endroit que le DWG xxxxxx ... ;; avec un Nom = xxxxxx_SummaryInfo.csv ;; ;; ;; --- Interrogation Entite/Objet en Lisp --- ;; (entget (car (entsel)) '("*")) ;; (defun c:DWGProps2CSV (/ doc info filename sep file i prop val) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)) info (vla-get-SummaryInfo doc) filename (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) "_SummaryInfo.csv") sep (vl-registry-read "HKEY_CURRENT_USER\\Control Panel\\International" "sList") file (open filename "w") ) (foreach prop '("Title" "Subject" "Author" "Keywords" "Comments" "HyperlinkBase" "LastSavedBy" "RevisionNumber") (write-line (strcat prop sep (vlax-get info prop)) file) ) (setq i 0) (repeat (vla-NumCustomInfo info) (vla-GetCustomByIndex info i 'prop 'val) (write-line (strcat prop sep val) file) (setq i (1+ i)) ) (close file) ) -- "IMP_PROP_DWG" -- ;; ;; https://forums.autodesk.com/t5/autocad-tous-produits-francais/comment-copier-les-proprietes-d-un-dessin-dans-un-autre-dessin/m-p/4574327#M38811 ;; ;; Routine: IMP_PROP_DWG par GC ;; ;; Voir la commande: PROPDESS / _DWGPROPS ;; ;; Copier les proprietes personnalisees d'un DWG/DWT dans le DWG courant ... ;; ;; Ci-dessous le code de la routine IMP_PROP_DWG correctement formaté. ;; ;; À copier dans un éditeur de texte (bloc-note) et à enregistrer avec l'extension .lsp (et pas .lisp). ;; ;; Pour de plus amples explications sur le chargement et l'utilisations de routine LISP voir ici : ;; ;; http://cadxp.com/topic/14323-charger-un-lisp/ ;; (vl-load-com) ;; IMP_PROP (gile) ;; Importe dans le dessin courant les propriétés personnalisées d'un fichier (dwg ou dwt) (defun c:Imp_Prop_DWG (/ target filename doc odbx source) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (setq target (vla-get-SummaryInfo *acdoc*)) (if (setq filename (getfiled "Choisir le fichier source" (getvar 'dwgprefix) "dwg;dwt" 0 ) ) (progn (if (not (and (setq doc (GetItem (vla-get-Documents (vlax-get-acad-object)) (strcat (vl-filename-base filename) ".dwg") ) ) (= filename (vla-get-FullName doc)) ) ) (setq doc (OpenDrawingDBX filename) odbx T ) ) (setq source (vla-get-SummaryInfo doc) n -1 ) (foreach p '(Author Comments HyperlinkBase KeyWords Subject Title) (if (/= "" (setq prop (vlax-get source p))) (vlax-put target p prop) ) ) (repeat (vla-NumCustomInfo source) (vla-GetCustomByIndex source (setq n (1+ n)) 'key 'val) (vla-AddCustomInfo target key val) ) (and odbx (vlax-release-object doc)) ) ) (princ) ) ;;; Accéder à un dessin fermé (defun OpenDrawingDBX (filename / objdbx release) (setq objdbx (vlax-create-object (if (< (setq release (atoi (getvar "ACADVER"))) 16) "ObjectDBX.AxDbDocument" (strcat "ObjectDBX.AxDbDocument." (itoa release)) ) ) ) (vla-open objdbx filename) objdbx ) ;;; GetItem (gile) ;;; Retourne le vla-object de l'item s'il est présent dans la collection ;;; ;;; Arguments ;;; col : la collection (vla-object) ;;; name : le nom de l'objet (string) ou son indice (entier) ;;; ;;; Retour : le vla-object ou nil (defun GetItem (col name / obj) (vl-catch-all-apply (function (lambda () (setq obj (vla-item col name)))) ) obj ) Citer Autodesk Expert Elite Team
Ezaor Posté(e) le 18 novembre 2022 Auteur Posté(e) le 18 novembre 2022 Merci bien, je vais tester tout ça. Une autre question en parallèle, est ce qu'il est possible de 'figer' des valeurs de champs. Si je prends pour exemple le champs "Nom du document", pas de soucis dans le dessin originel. Mais si j'insère ce dessin en tant que Xréf dans un autre, le champ "Nom du document" se met à jour pour refléter le nom du dessin dans lequel il a été inséré. Citer
lecrabe Posté(e) le 18 novembre 2022 Posté(e) le 18 novembre 2022 Hello NON on ne peut pas figer les valeurs des champs dynamiques Si tu veux avoir des valeurs "fixes" tu fais un Decomposer / Exploser du champ dynamique et tu obtiendras un TEXT classique Bye, lecrabe Citer Autodesk Expert Elite Team
Messages recommandés