Aller au contenu

Presentation en XREF


Atomick

Messages recommandés

Bonjour,

Nouvelle journée = Nouveaux problèmes

 

Quelqu'un sait il si on peut mettre en XREF qu'une présentation d'un fichier reçu?

 

Je m'explique :

J'ai reçu un fichier DWG avec plusieurs présentations (calques activés/désactivés selon les présentations). Dans l'espace Objet c'est le foutoir. Tout est superposé et je n'ai aucune méthode de selection intelligente me permettant de geler les calques parasites.

Par contre, chaque présentation correspond à un plan que j'aimerais pouvoir mettre en XREF.

 

AU SECOURS!!!!! :o

Lien vers le commentaire
Partager sur d’autres sites

Tu peux créer des fichiers grâce à la commande EXPORTPRESENT.

C'est tout ce que j'aurais en magasin si j'ai compris ton souci. Mais hélas, les dessins exportés seraient délimités comme ils le sont par tes fenêtres. Zoomer tout dans chacune serait alors un pis-aller avec l'export.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Salut Atomick,

 

Tu peux, dans chacune des présentations en te mettant dans la fenêtre (Fenêtre dans laquelle il y le dessin ou Espace objet) où il ya le dessin et sa mise en page, tu te créés des Etats de calques (LMAN). Tu peux ensuite aller dans l'espace objet (Espace de travail) et utiliser tes différentes états des calques que tu as créé depuis les présentations.

  • Upvote 2

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Bien vu Steven,

je n'avais jamais fait attention à cette fonctionnalité qui consiste à transformer un état de visibilité dans fenêtre courante vers un gel dans tous espaces.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Merci à tous les 2 pour cette réponse rapide.

Je suis parti sur la solution à STEVEN et ça fonctionne parfaitement.

 

Dommage qu'AUTOCAD n'ait pas pensé à intégrer directement la possiblité de se servir des présentations en XREF mais bon....faut pas pousser... ;)

Lien vers le commentaire
Partager sur d’autres sites

j'avais un lisp que Partick_35 m'avait développé.

 

je le mets au cas ou .. il exporte une présentation (et les éléments de l'espace Objet) dans un autre fichier. testes le je pense qu'il te conviendra ;)

 

;;;=================================================================
;;;
;;; EXL.LSP V1.11
;;;
;;; Exporter des Présentations
;;;
;;; Copyright (C) Patrick_35
;;;
;;;=================================================================

(defun c:exl(/	act bou cal cod dbx def doc fen lay liste_lay lst lst_base nom obj res s sel val
	bda *errexl*)

 (defun *errexl* (msg)
   (or (member (strcase msg) '("FUNCTION CANCELLED" ""QUIT / EXIT ABORT"" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON"))
     (princ (strcat "\nErreur : " msg))
   )
   (vla-endundomark doc)
   (setq *error* s)
   (princ)
 )

 (defun bda (titre lst / affiche_txt bascule dcl dwg fic fil gab parcourir res txt val)
   (defun bascule()
     (if (eq gab "0")
(mode_tile "par" 1)
(mode_tile "par" 0)
     )
   )

   (defun affiche_txt(txt)
     (if (> (strlen txt) 42)
(set_tile "txt" (strcat (substr txt 1 10) "..." (substr txt (- (strlen txt) 29))))
(set_tile "txt" txt)
     )
   )

   (defun parcourir(/ rec)
     (setq rec (getfiled "Choix d'un Gabarit"	(strcat
					  (vla-get-templatedwgpath (vla-get-files (vla-get-preferences (vlax-get-acad-object))))
					  "/"
					)
					"dwt;dwg;dxf"
					8
	)
     )
     (and rec (setq dwg rec)(affiche_txt dwg))
   )

   (setq fic (vl-filename-mktemp "exl" nil ".dcl")
  fil (open fic "w")
  dwg (getenv "Patrick_35_Gabarit_Exl")
  gab (getenv "Patrick_35_Bouton_Gabarit")
   )
   (or gab (setq gab "0"))
   (foreach txt '(	"exl : dialog {"
		"  key = \"titre\";"
		"  alignment = centered;"
		"  is_cancel = true;"
		"  allow_accept = true;"
		"  width = 50;"
		"  : list_box {label= \"Sélection\"; key=\"sel\"; height = 20; multiple_select=true;}"
		"  spacer;"
		"  : boxed_row {"
		"    label = \"Gabarit\";"
		"    : toggle {key = \"gab\";}"
		"    : text   {key = \"txt\"; width = 40;}"
		"    : button {label = \"...\"; key = \"par\"; width = 2;}"
		"  }"
		"  spacer;"
		"  ok_cancel;"
		"}"
	 )
     (write-line txt fil)
   )
   (close fil)
   (setq dcl (load_dialog fic))
   (new_dialog "exl" dcl "")
   (set_tile "titre" titre)
   (set_tile "gab" gab)
   (bascule)
   (and dwg (affiche_txt dwg))
   (start_list "sel")
   (mapcar 'add_list lst)
   (end_list)
   (action_tile "sel"    "(setq val $value)")
   (action_tile "gab"    "(setq gab $value)(bascule)")
   (action_tile "par"    "(parcourir)")
   (action_tile "accept" "(done_dialog 1)")
   (action_tile "cancel" "(done_dialog 0)")
   (setq res (start_dialog))
   (unload_dialog dcl)
   (vl-file-delete  fic)
   (and dwg (setenv "Patrick_35_Gabarit_Exl" dwg))
   (and gab (setenv "Patrick_35_Bouton_Gabarit" gab))
   (list res val)
 )

 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object))
def (vla-get-activelayout doc)
bou 1
s *error*
*error* *errexl*
 )
 (vla-startundomark doc)
 (acad-push-dbmod)
 (vlax-for lay (vla-get-layouts doc)
   (setq lst_base (cons (cons (vla-get-taborder lay) lay) lst_base ))
 )
 (while (assoc bou lst_base)
   (setq liste_lay (cons (vla-get-name (cdr (assoc bou lst_base))) liste_lay )
  bou (1+ bou)
   )
 )
 (and (= (car (setq res (bda "Exl 1.11" (reverse liste_lay)))) 1)
      (setq res (cadr res))
   (while (not (eq res ""))
     (setq lst nil
    obj nil
    val (read res)
    lay (cdr (assoc (1+ val) lst_base))
    act (vla-get-name lay)
     )
     (and (ssget "x" (list (cons 0 "viewport") (cons 410 act)))
(progn
  (princ (strcat "\nTraitement pour l'onglet : " act))(princ)
  (vlax-for fen (setq sel (vla-get-activeselectionset doc))
    (vla-getxdata fen "" 'cod 'cal)
    (setq cod (vlax-safearray->list cod)
	  cal (vlax-safearray->list cal)
	  bou 0
    )
    (while (setq nom (nth bou cal))
      (and (eq (nth bou cod) 1003)
	   (not (member nom lst))
	(setq lst (cons (vlax-variant-value nom) lst))
      )
      (setq bou (1+ bou))
    )
  )
  (vla-delete sel)
  (setq dbx (vlax-create-object (if (< (setq rel (atoi (getvar "ACADVER"))) 16)
				  "ObjectDBX.AxDbDocument"
				  (strcat "ObjectDBX.AxDbDocument." (itoa rel))
				)
	    )
  )
  (and (eq (getenv "Patrick_35_Bouton_Gabarit") "1")
    (vl-catch-all-apply 'vla-open (list dbx (getenv "Patrick_35_Gabarit_Exl")))
  )
  (ssget "x" (list (cons 67 0)))
  (vlax-for ent (setq sel (vla-get-activeselectionset doc))
    (or (member (vla-get-layer ent) lst)
      (setq obj (cons ent obj))
    )
  )
  (vla-delete sel)
  (vla-copyobjects doc
		   (vlax-make-variant
		     (vlax-safearray-fill
		       (vlax-make-safearray vlax-vbobject (cons 0 (1- (length obj))))
		       obj
		     )
		   )
		   (vla-get-modelspace dbx)
  )
  (vla-copyobjects doc
		   (vlax-make-variant
		     (vlax-safearray-fill
		       (vlax-make-safearray vlax-vbobject (cons 0 0))
		       (list lay)
		     )
		   )
		   (vla-get-layouts dbx)
  )
  (vla-saveas dbx (setq nom (strcat (vla-get-path doc) "/" (vl-filename-base (vla-get-name doc)) " - " act ".dwg")))
  (vlax-release-object dbx)
  (setq dbx (vla-open (vla-get-documents (vlax-get-acad-object)) nom))
  (vlax-for ent (vla-get-layouts dbx)
    (cond
      ((eq (vla-get-name ent) act)
	(vla-put-activelayout dbx ent)
      )
      ((/= (vla-get-name ent) "Model")
	(vla-delete ent)
      )
    )
  )
  (vla-close dbx :vlax-true)
)
     )
     (setq res (substr res (+ 2 (strlen (itoa val))) (strlen res)))
   )
   (alert "Traitement des onglets terminés.")
 )
 (acad-pop-dbmod)
 (vla-endundomark doc)
 (setq *error* s)
 (princ)
)

(setq nom_lisp "EXL")
(if (/= app nil)
 (if (= (strcase (substr app (1+ (- (strlen app) (strlen nom_lisp))) (strlen nom_lisp))) nom_lisp)
   (princ (strcat "..." nom_lisp " chargé."))
   (princ (strcat "\n" nom_lisp ".LSP Chargé.....Tapez " nom_lisp " pour l'éxecuter.")))
 (princ (strcat "\n" nom_lisp ".LSP Chargé......Tapez " nom_lisp " pour l'éxecuter.")))
(setq nom_lisp nil)
(princ)

 

Raph.

Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines 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é