CTZen Posté(e) le 7 janvier 2019 Posté(e) le 7 janvier 2019 Salut à tous ! J'ai environ 50 fichiers dans un dossier dont beaucoup on des xrefs attachées, et d'autres non.Je souhaiterai faire un script pour ouvrir les fichiers, détacher toutes les xrefs, et le fermer après l'avoir sauvegardé. J'ai essayé sur SuperAutoScript (SAS) de faire un script -xref T *Mais cela ne fonctionne que sur le premier fichier, et ça le ferme sans le sauvegarder, même avec l'option "enregistrer le fichier à la fin du script" coché dans les options.J'ai essayé en faisant -xref T * _qsavemais cela ne fonctionne pas, autoscript plante. Une idée ... ? Merci ! PS : Excellente année 2019 à tous ! Citer AutoCAD Map 3D 2025 Covadis 18.3c + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
x_all Posté(e) le 7 janvier 2019 Posté(e) le 7 janvier 2019 je ne sais pas pour tes Xref, mais si autoscript ne sauve pas, c'est peut être car il ne détecte pas de modification sur le fichieressaye d'insérer un -pan 0,0,0 0,1,0... ça obligera à sauver en sortant Citer quelques trucs sur autocad
Eric Posté(e) le 7 janvier 2019 Posté(e) le 7 janvier 2019 Bonjour, Je viens de tester avec SAS et cela fonctionne. -xref t * Faites juste attention qu'il n'y ai pas d'espace après * ou un retour chariot. Citer Eric est formateur, revendeur sur AutoCAD LT, DraftSight, ZWCAD, SketchUp et PDF2CAD
CTZen Posté(e) le 7 janvier 2019 Auteur Posté(e) le 7 janvier 2019 Merci pour vos réponses ULTRA rapides ! Alors en effet il y avait un problème dans le cas ou il n'y avait pas de modification sur un fichier. Ceci fonctionne : -xref T * _qsave -pan 0,0,0 0,1,0 zoom et(j'ai rajouté un zoom étendu) Cependant, je ne comprend pas pourquoi, mais si _qsave est à la fin ça ne fonctionne pas ... Citer AutoCAD Map 3D 2025 Covadis 18.3c + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
Eric Posté(e) le 7 janvier 2019 Posté(e) le 7 janvier 2019 Il n'y a pas besoin de mettre _qsave puisque SAS le fait tout seul si la case est cochée dans les options. Citer Eric est formateur, revendeur sur AutoCAD LT, DraftSight, ZWCAD, SketchUp et PDF2CAD
CTZen Posté(e) le 7 janvier 2019 Auteur Posté(e) le 7 janvier 2019 Oui je sais, mais ça ne fonctionne pas.SAS dit que les fichiers sont bien traités, mais ils ne sont pas enregistrés (oui la case est bien cochée !). Citer AutoCAD Map 3D 2025 Covadis 18.3c + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
Eric Posté(e) le 7 janvier 2019 Posté(e) le 7 janvier 2019 Bizarre, Vous serait-il possible de mettre à disposition 2-3 fichiers pour tester. Pouvez-vous aussi nous donner la version d'AutoCAD utilisée. Merci Citer Eric est formateur, revendeur sur AutoCAD LT, DraftSight, ZWCAD, SketchUp et PDF2CAD
CTZen Posté(e) le 7 janvier 2019 Auteur Posté(e) le 7 janvier 2019 J'utilise AutoCAD MAP 3D 2019 à jour (AutoCAD 2019.1.2).Pour les fichiers : https://we.tl/t-engfUl97T3 En gros, si je met des Xrefs dans le deuxième fichier (et rien dans le premier), ça retourne les problèmes cités précédemment.(de plus sur SAS (en Standalone) la case "Enregistrer le fichier à la fin du script" se décoche toute seule parfois ...) Citer AutoCAD Map 3D 2025 Covadis 18.3c + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
Eric Posté(e) le 7 janvier 2019 Posté(e) le 7 janvier 2019 J'ai pas de MAP 3D, mais j'ai fait le test en mettant rien dans le 258 et une xref dans le 262 avec le script tout simple : -xref t * et cela fonctionne comme prévu. Citer Eric est formateur, revendeur sur AutoCAD LT, DraftSight, ZWCAD, SketchUp et PDF2CAD
philsogood Posté(e) le 7 janvier 2019 Posté(e) le 7 janvier 2019 hellosinon ya un lisp qui fait bien le boulot... d'ailleurs il détache aussi les images, les pdf.... bref, il met le fichier à nu :(defun C:Detachall (/ *error* mip:layer-status-restore mip:layer-status-save delete-xref-img-underlay delete-all-dict ) (defun *error* (msg) (mip:layer-status-restore) (princ msg) (princ) ) ;_ end of defun (defun mip:layer-status-restore () (foreach item *PD_LAYER_LST* (if (not (vlax-erased-p (car item))) (vl-catch-all-apply '(lambda () (vla-put-lock (car item) (cdr (assoc "lock" (cdr item)))) (vla-put-freeze (car item) (cdr (assoc "freeze" (cdr item))) ) ;_ end of vla-put-freeze ) ;_ end of lambda ) ;_ end of vl-catch-all-apply ) ;_ end of if ) ;_ end of foreach (setq *PD_LAYER_LST* nil) ) ;_ end of defun (defun mip:layer-status-save () (setq *PD_LAYER_LST* nil) (vlax-for item (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)) ) ;_ end of vla-get-layers (setq *PD_LAYER_LST* (cons (list item (cons "freeze" (vla-get-freeze item)) (cons "lock" (vla-get-lock item)) ) ;_ end of cons *PD_LAYER_LST* ) ;_ end of cons ) ;_ end of setq (vla-put-lock item :vlax-false) (if (= (vla-get-freeze item) :vlax-true) (vl-catch-all-apply '(lambda () (vla-put-freeze item :vlax-false)) ) ;_ end of vl-catch-all-apply ) ;_ end of if ) ;_ end of vlax-for ) ;_ end of defun (defun delete-xref-img-underlay (/ count txt) (mip:layer-status-save) (vlax-for Blk (vla-get-Blocks (vla-get-activedocument (vlax-get-acad-object)) ) ;_ end of vla-get-Blocks (if (and (= (vla-get-IsXref Blk) :vlax-false) (not (wcmatch (vla-get-name Blk) "*|*")) ) ;_ end of and (progn (setq count 0 txt (strcat " Erase Xref and Underlay in " (vla-get-name Blk) ) ;_ end of strcat ) ;_ end of setq (grtext -1 txt) (vlax-for Obj Blk (setq count (1+ count)) (if (zerop (rem count 10)) (grtext -1 (strcat txt " : " (itoa count))) ) ;_ end of if (if (and (vlax-write-enabled-p Obj) (or (and ;_ XREF (= (vla-get-ObjectName obj) "AcDbBlockReference") (vlax-property-available-p Obj "Path") ) ;_ end of and (and ;_ UNDERLAY (wcmatch (vla-get-ObjectName obj) "*Reference") (vlax-property-available-p Obj "UnderlayName") ) ;_ end of and (= (vla-get-ObjectName obj) "AcDbRasterImage") ;_ IMAGE ) ;_ end of or ) ;_ end of and (VL-CATCH-ALL-APPLY 'vla-Delete (list Obj)) ) ;_ end of if ) ;_ end of vlax-for ) ;_ end of progn ) ;_ end of if ) ;_ end of vlax-for (mip:layer-status-restore) ) ;_ end of defun (defun delete-all-dict (dict) ;;; dict - dict name (like "ACAD_IMAGE_DICT", "ACAD_PDFDEFINITIONS" ... ) (vl-catch-all-apply '(lambda () (vlax-map-Collection (vla-item (vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object)) ) ;_ end of vla-get-dictionaries dict ;_ "ACAD_IMAGE_DICT" ) ;_ end of vla-Item 'vla-delete ) ;_ end of vlax-map-Collection ) ;_ end of lambda ) ;_ end of vl-catch-all-apply ) ;_ end of defun (vl-load-com) (delete-xref-img-underlay) (command "_-xref" "_d" "*") (while (> (getvar "CMDACTIVE") 0) (command)) (mapcar 'delete-all-dict (list "ACAD_IMAGE_DICT" "ACAD_PDFDEFINITIONS" "ACAD_DWFDEFINITIONS" "ACAD_DGNDEFINITIONS" ) ;_ end of list ) ;_ end of mapcar (princ) ) ;_ end of defun++Phil Citer Projeteur Revit Indépendant - traitement des eaux/CVC
x_all Posté(e) le 7 janvier 2019 Posté(e) le 7 janvier 2019 humm! cuila c'est direct dans la boite à archives...merci... en plus, c'est du Mozart ! super bien écrit... c'est de qui? une âme charitable pourrait elle expliquer (defun mip:la... svp? Citer quelques trucs sur autocad
CTZen Posté(e) le 7 janvier 2019 Auteur Posté(e) le 7 janvier 2019 Merci pour vos compléments de réponse :) J'ai pu faire ce que je souhaitais grâce à vous ! Citer AutoCAD Map 3D 2025 Covadis 18.3c + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces
Messages recommandés