CadXP: Détacher une image - CadXP

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Détacher une image Autocad

#1 L'utilisateur est hors-ligne   hiridimah 

  • ceinture jaune
  • Groupe : Membres
  • Messages : 5
  • Inscrit(e) : 26-janvier 21

Posté 26 janvier 2021 - 23:04

Comment détacher une image dans plusieurs fichiers DWG automatiquement à l'aide d'un script ou LISP???
0

#2 L'utilisateur est hors-ligne   Curlygoth 

  • ceinture marron
  • Groupe : Membres
  • Messages : 206
  • Inscrit(e) : 09-mai 19
  • LocationJuste devant toi

Posté 27 janvier 2021 - 10:02

vba possible ?
Je dessine sur Autocad depuis mes 16 ans, je fais tout avec 2D/3D etc...
Et maintennant ? Ben, je ne dessine quasiment plus...
Je programme pour que mon ordinateur travail à ma place
Et je créé des outils pour gérer planning, mail auto, rapport issu du dessin et j'en passe.
(Uniquement en VBA et VB.net / Sql)

Mon site Web (en cours de construction) : Site
1

#3 L'utilisateur est en ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 9 447
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42) Forez

Posté 27 janvier 2021 - 19:14

Hello

A priori le Script est tres simple !

Commande: -XREF
Entrez une option [?/Lier/déTacher/Chemin/TYpechemin/Décharger/Recharger/Superposer/Attacher] <Attacher>: T
Entrez le(s) nom(s) de Xref à détacher: ENTCADRE

Puis re-enregistrer puis ouvrir le DWG suivant ...

LA SANTE, Bye, lecrabe
Autodesk Expert Elite Team
1

#4 L'utilisateur est hors-ligne   hiridimah 

  • ceinture jaune
  • Groupe : Membres
  • Messages : 5
  • Inscrit(e) : 26-janvier 21

Posté 27 janvier 2021 - 22:41

je veux détacher une image dans plusieurs fichiers DWG automatiquement sans ouvrir les fichiers un par un
0

#5 L'utilisateur est hors-ligne   Aleck Ultimate 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1 267
  • Inscrit(e) : 18-novembre 16
  • LocationAlpes de Hautes Provences (04)

Posté 28 janvier 2021 - 08:16

Nous l'avons bien compris. Ici Lecrabe parle autant de la procédure à suivre manuellement que de l'algorythme à suivre pour le coder. Le fait est que, sauf exception mais ce n'est pas le cas ici, si c'est faisable manuellement en ligne de commande c'est bien plus facile à coder. Non pas que ce soit dans mes compétence pour autant.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !

Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2018 sous Windows 10
0

#6 L'utilisateur est hors-ligne   Olivier Eckmann 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1 537
  • Inscrit(e) : 29-décembre 11
  • LocationLongjumeau (91)

Posté 28 janvier 2021 - 08:36

Bonjour,

Avec un script du genre

_-IMAGE
_D
NOM_DE_L_IMAGE_A_DETACHER



Puis Superautoscript pour traiter tout un ensemble de fichier DWG

Olivier
1

#7 L'utilisateur est hors-ligne   hiridimah 

  • ceinture jaune
  • Groupe : Membres
  • Messages : 5
  • Inscrit(e) : 26-janvier 21

Posté 28 janvier 2021 - 12:29

merci mais j'ai pas arrive de télécharger Superautoscript vs pouvez m'aider merci.
0

#8 L'utilisateur est hors-ligne   hiridimah 

  • ceinture jaune
  • Groupe : Membres
  • Messages : 5
  • Inscrit(e) : 26-janvier 21

Posté 28 janvier 2021 - 23:09

merci Olivier Eckmann si bon
0

#9 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 074
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 29 janvier 2021 - 15:49

Bonjour,

Effectivement, en Lisp ce n'est pas facile
si on ne veut pas ouvrir les dessins, ObjetDBX et VLA oblige.
Donc pour détacher les images des dessins contenus dans un dossier
(vl-load-com)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:dtimg (/ axdoc lf dir)
    (if (setq dir (getdir) lf (vl-directory-files dir "*.dwg" 1))
        (foreach f lf
            (vlax-for obj (vla-get-modelspace (setq axdoc (getaxdbdoc (strcat dir f))))
                (if (= (vla-get-objectname obj) "AcDbRasterImage")
                    (vla-delete 
                        (vla-item 
                            (vla-item (vla-get-dictionaries axdoc ) "ACAD_IMAGE_DICT") 
                            (vla-get-name obj)
                        )
                    ) 
                )
            )
            (vla-saveas axdoc (strcat dir f))
            (vlax-release-object axdoc)
        )
    )
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun getdir( / shell rep)
  (setq shell (vlax-create-object "Shell.Application")
         rep (vlax-invoke shell 'browseforfolder 0 "Sélectionnez le dossier" 512 "")
  )
  (vlax-release-object shell)
  (strcat (vlax-get-property (vlax-get-property rep 'self) 'path) "\\")
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun getaxdbdoc (filename / axdbdoc release)
  (setq axdbdoc
     (vlax-create-object
       (if (< (setq release (atoi (getvar "ACADVER"))) 16)
         "ObjectDBX.AxDbDocument"
         (strcat "ObjectDBX.AxDbDocument." (itoa release))
       )
     )
  )
  (if (vl-catch-all-apply 'vla-open (list axdbdoc filename))
    (not (vlax-release-object axdbdoc))
    axdbdoc
  )
)


Étrangement, la méthode vla-detach ne concerne pas les images
et je n'ai pas réussi à utiliser vla-remove pourtant prévue pour effacer les entrées dans un dictionnaire.

Cela détache les images dans l'espace objet.
ATTENTION, pas de retour en arrière possible.
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)