Aller au contenu

exporter les vues


stephane.GEFFARD

Messages recommandés

Salut,

 

 

Je te propose un LISP.

 

Deux commandes :

 

ImportViews : pour importer dans le dessin courant toutes les vues enregistrées du dessin sélectionné (il doit être fermé).

 

 

ExportViews : pour Exporter dans le dessin sélectionné (il doit être fermé) toutes les vues enregistrées du dessin courant.

 

 

;;; ImportViews (gile)
;;; Importe dans le dessin courant toutes les vues enregistrées
;;; du dessin sélectionné

(defun c:ImportViews (/ filename doc lst)
 (vl-load-com)
 (or *acad* (setq *acad* (vlax-get-acad-object)))
 (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
 (if (setq filename (getfiled "Fichier source" "" "dwg" 0))
   (if (setq doc (gc:GetAxDbDoc filename))
     (progn
       (vlax-for v (vla-get-Views doc)
         (setq lst (cons v lst))
       )
       (if lst
         (progn
           (vlax-invoke doc 'CopyObjects lst (vla-get-Views *acdoc*))
           (vlax-release-object doc)
         )
       )
     )
     (alert
       (strcat
         "\nLe fichier \""
         filename
         "\" est ouvert.\nFermer le avant de relancer ImportViews"
       )
     )
   )
 )
 (princ)
)

;;; ExportViews (gile)
;;; Exporte dans le dessin sélectionné toutes les vues enregistrées
;;; du dessin courant

(defun c:ExportViews (/ filename doc lst)
 (vl-load-com)
 (or *acad* (setq *acad* (vlax-get-acad-object)))
 (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
 (if (setq filename (getfiled "Fichier cible" "" "dwg" 0))
   (if (setq doc (gc:GetAxDbDoc filename))
     (progn
       (vlax-for v (vla-get-Views *acdoc*)
         (setq lst (cons v lst))
       )
       (if lst
         (progn
           (vlax-invoke *acdoc* 'CopyObjects lst (vla-get-Views doc))
           (vla-SaveAs doc filename)
           (vlax-release-object doc)
         )
       )
     )
     (alert
       (strcat
         "\nLe fichier \""
         filename
         "\" est ouvert.\nFermer le avant de relancer ExportViews"
       )
     )
   )
 )
 (princ)
)

;;; gc:GetAxDbDoc
;;; Accéder à un dessin fermé
;;;
;;; Retourne :
;;; un objet IAxDbDocument si le document est trouve
;;; nil si le document n'a pu être trouvé ou s'il est ouvert
;;;
;;; Argument :
;;; Le chemin complet du fichier
;;;
;;; Exemple d'utilisation :
;;; (if (setq doc (gc:GetAxDbDoc filename))
;;;   (progn
;;;     ...
;;;     (vla-SaveAs doc filename)
;;;     (vlax-release-object (car doc))
;;;   )
;;; )

(defun gc: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
 )
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

  • 8 ans après...
  • 8 mois après...

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é