Aller au contenu

Messages recommandés

Posté(e)

Salut,

 

Un petit LISP (pas testé)

 

;;; ImportUCS (gile)
;;; Importe dans le dessin courant tous les SCUs enregistrés
;;; du dessin sélectionné

(defun c:ImportUCS (/ 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-UserCoordinateSystems doc)
  (setq lst (cons v lst))
)
(if lst
  (vlax-invoke
    doc
    'CopyObjects
    lst
    (vla-get-UserCoordinateSystems *acdoc*)
  )
)
(vlax-release-object doc)
     )
     (alert
       (strcat
         "\nLe fichier \""
         filename
         "\" est ouvert.\nFermer le avant de relancer ImportViews"
       )
     )
   )
 )
 (princ)
)

;;; ExportUCS (gile)
;;; Exporte dans le dessin sélectionné tous les SCU enregistrés
;;; du dessin courant

(defun c:ExportUCS (/ 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-UserCoordinateSystems *acdoc*)
  (setq lst (cons v lst))
)
(if lst
  (progn
    (vlax-invoke
      *acdoc*
      'CopyObjects
      lst
      (vla-get-UserCoordinateSystems 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 - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bonjour,

 

Terrible ce lisp

 

je le met de coté

 

Merci chris-cad pour avoir posé cette question pertinante

et Merci Gile pour ce lisp bien expliqué meme si on se demande encore ou tu trouve ces "incantations" d'une efficacité redoutable.

 

Posté(e)

Bonjour à Toutes et à Tous,

 

Je ne comprend pas qu'aujourd'hui dans AutoCAD, on ait pas de façon standard un bouton EXPORTER - IMPORTER dans certaines commandes, comme :

 

les SCU

les CHAMPS

les VUES

et j'en oublie

 

Franchement que l'on soit encore obligé de bidouiller ce genre de fonction !!!

 

Merci Gilles pour ce LISP ;)

 

Christian

 

 

 

[Edité le 18/6/2010 par rebcao]

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

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é