Aller au contenu

migration L93 viewport perdu


pelloux

Messages recommandés

Bonsoir

 

Si le passage d'un système de coordonnées Lambert 1 nord vers le Lambert 93 ne pose aucun problème, les fenêtres de présentation elles ne suivent pas. On peut importer le gabarit de la présentation du fichier de base sans problème mais une fois importé, il n'y a rien dans le viewport. Ce qui est normal puisque les données ont changé d'emplacement.

 

Y a t'il un moyen autre que manuel, pour bouger le contenu des données à la fois dans l'onglet objet et dans la fenêtre de présentation ?

 

Par avance merci.

 

PH PELLOUX

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

En fait il faut avoir un vecteur de deplacement

car a l'interieur d'une fenetre dans les presentations/mises en page,

je pense que tu n'es pas a 1/2 metre(s) pres !?

 

C'est facile de dessiner une ligne qui represente le vecteur

Centre du projet L1N vers le meme centre du projet en L93 CC49 par exemple

 

Cette ligne (ou fichier Script avec le vecteur de deplacement)

represente en fait le PAN que tu dois realiser dans chaque fenetre

pour re-centrer la fenetre en L93 CC49

 

Je crois avoir vu passer un Lisp/VLisp qui faisait automatiquement

ce fameux PAN dans toutes les fenetres de toutes les presentations !?

 

A chercher ...

 

Le Decapode (lecrabe)

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

NON pour moi un simple PAN avec le bon vecteur de deplacement est suffisant !

 

Je manipule tous les jours des dessins de SIG / Cartographie / Cadastre / VRD / etc

et je ne suis pas a 1/2/3 metre(s) pres a l'interieur des fenetres dans les presentations !?

 

Mais bon, ton besoin est peut etre different ?

 

Le Decapode (lecrabe)

 

SVP tu essayes l'excellent programme AUTOPAN suivant de notre irremplacable Gilles >>>

 

;;; AUTOPAN par GC - 2009/06

;;; Effectue le panoramique spécfié par deux points ou un déplacement

;;; dans toutes les fenêtres des présentations sélectionnées

 

(defun c:autopan (/ *error* p1 p2 acdoc layouts ctab vplst vp lock)

(vl-load-com)

 

(defun *error* (msg)

(or (= msg "Fonction annulée")

(princ (strcat "\nErreur: " msg))

)

(and ctab (vla-put-ActiveLayout acdoc ctab))

(princ)

)

 

(setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)))

(while (null

(setq

p1 (getpoint

"\nSpécifiez le point de base ou dépalcement: "

)

)

)

(princ

"\nNécessite deux points ou un déplacement suivi de ENTREE."

)

)

(if (null (setq

p2 (getpoint

"\nSpécifiez le deuxième point: "

)

)

)

(setq p2 p1)

(setq p2 (mapcar '- p2 p1))

)

(setq layouts (vla-get-Layouts acdoc)

ctab (vla-get-ActiveLayout acdoc)

)

(foreach l (getlayouts "Présentations à traiter" T)

(setq vplst nil)

(vlax-for obj (vla-get-Block (vla-item layouts l))

(if (= (vla-get-ObjectName obj) "AcDbViewport")

(setq vplst (cons obj vplst))

)

)

(while (cdr vplst)

(setq vp (car vplst)

vplst (cdr vplst)

lock nil

)

(if (= (vla-get-DisplayLocked vp) :vlax-true)

(progn

(vla-put-DisplayLocked vp :vlax-false)

(setq lock T)

)

)

(vla-put-ActiveLayout acdoc (vla-item layouts l))

(vla-put-MSpace acdoc :vlax-true)

(vla-put-ActivePViewport acdoc vp)

(vla-put-Target

vp

(vlax-3d-point

(mapcar '-

(vlax-safearray->list

(vlax-variant-value (vla-get-Target vp))

)

p2

)

)

)

(vla-put-MSpace acdoc :vlax-false)

(if lock

(vla-put-DisplayLocked vp :vlax-true)

)

)

)

(vla-put-ActiveLayout acdoc ctab)

(princ)

)

 

;; GETLAYOUTS par GC - 03/12/07

;; Retourne la liste des présentations choisies dans la boite de dialogue

;;

;; arguments

;; titre : titre de la boite de dialogue ou nil, défauts = Choisir la (ou les) présentation(s)

;; mult : T ou nil (pour choix multiple ou unique)

 

(defun GetLayouts (titre mult / lay tmp file ret)

(setq lay (vl-sort (layoutlist)

(function

(lambda (x1 x2)

(

(TabOrder x2)

)

)

)

)

tmp (vl-filename-mktemp "tmp.dcl")

file (open tmp "w")

)

(write-line

(strcat

"GetLayouts:dialog{label="

(if titre

(vl-prin1-to-string titre)

(if mult

"\"Choisir les présentations\""

"\"Choisir une présentation\""

)

)

";:list_box{key=\"lst\";multiple_select="

(if mult

"true;}:row{:retirement_button{label=\"Toutes\";key=\"all\";}

ok_button;cancel_button;}}"

"false;}ok_cancel;}"

)

)

file

)

(close file)

(setq dcl_id (load_dialog tmp))

(if (not (new_dialog "GetLayouts" dcl_id))

(exit)

)

(start_list "lst")

(mapcar 'add_list lay)

(end_list)

(action_tile "all" "(setq ret (reverse lay)) (done_dialog)")

(action_tile

"accept"

"(or (= (get_tile \"lst\") \"\")

(foreach n (str2lst (get_tile \"lst\") \" \")

(setq ret (cons (nth (atoi n) lay) ret))))

(done_dialog)"

)

(start_dialog)

(unload_dialog dcl_id)

(vl-file-delete tmp)

(reverse ret)

)

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Merci le crabe

 

J'essaye et tiens la communauté au courant.

 

J'avoue que la transformation par lot de fichiers dwg d'un système de coordonnées à un autre n'est pas forcément des plus faciles.

 

Ce que je veux avant tout c'est que ce soit le plus transparent possible pour l'utilisateur final (dessinateur/projeteur) et que me concernant, toutes ces opérations soient le plus automatisées possibles.

 

@+

 

PH PELLOUX

Lien vers le commentaire
Partager sur d’autres sites

A l'application d'Autopan j'ai ce message :

 

Commande: AUTOPAN

Spécifiez le point de base ou dépalcement:

Spécifiez le deuxième point:

Erreur: no function definition: STR2LST

Commande:

 

Pour info :

 

Je suis dans ma fenêtre de présentation sur l'onglet fenêtre de présentation et je clique successivement à chaque extremité de ma zone d'intérêt.

 

Une idée ?

 

PHP

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

La fonction AUTOPAN fait appel à une sous-fonction de manipulation de liste/string STR2LS, il faudrait rajouter après la dernière parenthèse ou à la première ligne comme ci-dessous :

 

;; STR2LST
;; Transforme un chaine avec séparateur en liste de chaines
;;
;; Arguments
;; str : la chaine à transformer en liste
;; sep : le séparateur

;;
;; Exemples
;; (str2lst "a b c" " ") -> ("a" "b" "c")
;; (str2lst "1,2,3" ",") -> ("1" "2" "3")
;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3)

(defun str2lst (str sep / pos)
 (if (setq pos (vl-string-search sep str))
(cons (substr str 1 pos)
  (str2lst (substr str (+ (strlen sep) pos 1)) sep)
)
(list str)
 )
)

;;; AUTOPAN par GC - 2009/06
;;; Effectue le panoramique spécfié par deux points ou un déplacement
;;; dans toutes les fenêtres des présentations sélectionnées

(defun c:autopan (/ *error* p1 p2 acdoc layouts ctab vplst vp lock)
(vl-load-com)

(defun *error* (msg)
(or (= msg "Fonction annulée")
(princ (strcat "\nErreur: " msg))
)
(and ctab (vla-put-ActiveLayout acdoc ctab))
(princ)
)

(setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(while (null
(setq
p1 (getpoint
"\nSpécifiez le point de base ou dépalcement: "
)
)
)
(princ
"\nNécessite deux points ou un déplacement suivi de ENTREE."
)
)
(if (null (setq
p2 (getpoint
"\nSpécifiez le deuxième point: "
)
)
)
(setq p2 p1)
(setq p2 (mapcar '- p2 p1))
)
(setq layouts (vla-get-Layouts acdoc)
ctab (vla-get-ActiveLayout acdoc)
)
(foreach l (getlayouts "Présentations à traiter" T)
(setq vplst nil)
(vlax-for obj (vla-get-Block (vla-item layouts l))
(if (= (vla-get-ObjectName obj) "AcDbViewport")
(setq vplst (cons obj vplst))
)
)
(while (cdr vplst)
(setq vp (car vplst)
vplst (cdr vplst)
lock nil
)
(if (= (vla-get-DisplayLocked vp) :vlax-true)
(progn
(vla-put-DisplayLocked vp :vlax-false)
(setq lock T)
)
)
(vla-put-ActiveLayout acdoc (vla-item layouts l))
(vla-put-MSpace acdoc :vlax-true)
(vla-put-ActivePViewport acdoc vp)
(vla-put-Target
vp
(vlax-3d-point
(mapcar '-
(vlax-safearray->list
(vlax-variant-value (vla-get-Target vp))
)
p2
)
)
)
(vla-put-MSpace acdoc :vlax-false)
(if lock
(vla-put-DisplayLocked vp :vlax-true)
)
)
)
(vla-put-ActiveLayout acdoc ctab)
(princ)
)

;; GETLAYOUTS par GC - 03/12/07
;; Retourne la liste des présentations choisies dans la boite de dialogue
;;
;; arguments
;; titre : titre de la boite de dialogue ou nil, défauts = Choisir la (ou les) présentation(s)
;; mult : T ou nil (pour choix multiple ou unique)

(defun GetLayouts (titre mult / lay tmp file ret)
(setq lay (vl-sort (layoutlist)
(function
(lambda (x1 x2)
(< (TabOrder x1)
(TabOrder x2)
)
)
)
)
tmp (vl-filename-mktemp "tmp.dcl")
file (open tmp "w")
)
(write-line
(strcat
"GetLayouts:dialog{label="
(if titre
(vl-prin1-to-string titre)
(if mult
"\"Choisir les présentations\""
"\"Choisir une présentation\""
)
)
";:list_box{key=\"lst\";multiple_select="
(if mult
"true;}:row{:retirement_button{label=\"Toutes\";key=\"all\";}
ok_button;cancel_button;}}"
"false;}ok_cancel;}"
)
)
file
)
(close file)
(setq dcl_id (load_dialog tmp))
(if (not (new_dialog "GetLayouts" dcl_id))
(exit)
)
(start_list "lst")
(mapcar 'add_list lay)
(end_list)
(action_tile "all" "(setq ret (reverse lay)) (done_dialog)")
(action_tile
"accept"
"(or (= (get_tile \"lst\") \"\")
(foreach n (str2lst (get_tile \"lst\") \" \")
(setq ret (cons (nth (atoi n) lay) ret))))
(done_dialog)"
)
(start_dialog)
(unload_dialog dcl_id)
(vl-file-delete tmp)
(reverse ret)
)

Lien vers le commentaire
Partager sur d’autres sites

Salut Lili

 

Merci pour ta réponse.

 

J'en ai entendu parlé mais sans jamais avoir regardé comment ça marche et encore moins en testant cet ensemble de commandes.

 

Je regarde ça.

 

 

-> J'ai testé les Atlas pour la première fois hier (avec les conseils avisés de fabcad que je remercie) mais cela comporte trop de paramétrage pour être automatisé facilement. Il faudrait vraiment qu'Autodesk puisse nous fournir un jeu de commandes gérant ce genre de problème.

 

@+

 

PHP

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

mais cela comporte trop de paramétrage pour être automatisé facilement.

 

ben non, pourquoi ?

 

Comme pour tout, un bon gabarit et puis roule par la suite,...

 

5 secondes pour mettre les cadres sur l'EO et la présentation est ok !

 

Avec un carroyage dynamique qui plus est, royal!! (voire mieux que covadis,..).

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Apres un test avec autocad map 2007, il manquerais la sous-fonction TabOrder.

 

Voici le code avec TabOrder de Gile

;; TabOrder (gile)
;; Retourne le numéro d'ordre de la présentation
;;
;; Argument : le nom de la présentation (chaîne)
;;
;; Retour : le numéro d'ordre de la présentation (entier)

(defun TabOrder (name / dict lay)
 (setq dict (dictsearch (namedobjdict) "ACAD_LAYOUT"))
 (if (setq lay (cdr (assoc 350 (member (cons 3 name) dict))))
(cdr (assoc 71 (entget lay)))
 )
)

;; STR2LST
;; Transforme un chaine avec séparateur en liste de chaines
;;
;; Arguments
;; str : la chaine à transformer en liste
;; sep : le séparateur

;;
;; Exemples
;; (str2lst "a b c" " ") -> ("a" "b" "c")
;; (str2lst "1,2,3" ",") -> ("1" "2" "3")
;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3)

(defun str2lst (str sep / pos)
 (if (setq pos (vl-string-search sep str))
(cons (substr str 1 pos)
  (str2lst (substr str (+ (strlen sep) pos 1)) sep)
)
(list str)
 )
)

;;; AUTOPAN par GC - 2009/06
;;; Effectue le panoramique spécfié par deux points ou un déplacement
;;; dans toutes les fenêtres des présentations sélectionnées

(defun c:autopan (/ *error* p1 p2 acdoc layouts ctab vplst vp lock)
(vl-load-com)

(defun *error* (msg)
(or (= msg "Fonction annulée")
(princ (strcat "\nErreur: " msg))
)
(and ctab (vla-put-ActiveLayout acdoc ctab))
(princ)
)

(setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(while (null
(setq
p1 (getpoint
"\nSpécifiez le point de base ou dépalcement: "
)
)
)
(princ
"\nNécessite deux points ou un déplacement suivi de ENTREE."
)
)
(if (null (setq
p2 (getpoint
"\nSpécifiez le deuxième point: "
)
)
)
(setq p2 p1)
(setq p2 (mapcar '- p2 p1))
)
(setq layouts (vla-get-Layouts acdoc)
ctab (vla-get-ActiveLayout acdoc)
)
(foreach l (getlayouts "Présentations à traiter" T)
(setq vplst nil)
(vlax-for obj (vla-get-Block (vla-item layouts l))
(if (= (vla-get-ObjectName obj) "AcDbViewport")
(setq vplst (cons obj vplst))
)
)
(while (cdr vplst)
(setq vp (car vplst)
vplst (cdr vplst)
lock nil
)
(if (= (vla-get-DisplayLocked vp) :vlax-true)
(progn
(vla-put-DisplayLocked vp :vlax-false)
(setq lock T)
)
)
(vla-put-ActiveLayout acdoc (vla-item layouts l))
(vla-put-MSpace acdoc :vlax-true)
(vla-put-ActivePViewport acdoc vp)
(vla-put-Target
vp
(vlax-3d-point
(mapcar '-
(vlax-safearray->list
(vlax-variant-value (vla-get-Target vp))
)
p2
)
)
)
(vla-put-MSpace acdoc :vlax-false)
(if lock
(vla-put-DisplayLocked vp :vlax-true)
)
)
)
(vla-put-ActiveLayout acdoc ctab)
(princ)
)

;; GETLAYOUTS par GC - 03/12/07
;; Retourne la liste des présentations choisies dans la boite de dialogue
;;
;; arguments
;; titre : titre de la boite de dialogue ou nil, défauts = Choisir la (ou les) présentation(s)
;; mult : T ou nil (pour choix multiple ou unique)

(defun GetLayouts (titre mult / lay tmp file ret)
(setq lay (vl-sort (layoutlist)
(function
(lambda (x1 x2)
(< (TabOrder x1)
(TabOrder x2)
)
)
)
)
tmp (vl-filename-mktemp "tmp.dcl")
file (open tmp "w")
)
(write-line
(strcat
"GetLayouts:dialog{label="
(if titre
(vl-prin1-to-string titre)
(if mult
"\"Choisir les présentations\""
"\"Choisir une présentation\""
)
)
";:list_box{key=\"lst\";multiple_select="
(if mult
"true;}:row{:retirement_button{label=\"Toutes\";key=\"all\";}
ok_button;cancel_button;}}"
"false;}ok_cancel;}"
)
)
file
)
(close file)
(setq dcl_id (load_dialog tmp))
(if (not (new_dialog "GetLayouts" dcl_id))
(exit)
)
(start_list "lst")
(mapcar 'add_list lay)
(end_list)
(action_tile "all" "(setq ret (reverse lay)) (done_dialog)")
(action_tile
"accept"
"(or (= (get_tile \"lst\") \"\")
(foreach n (str2lst (get_tile \"lst\") \" \")
(setq ret (cons (nth (atoi n) lay) ret))))
(done_dialog)"
)
(start_dialog)
(unload_dialog dcl_id)
(vl-file-delete tmp)
(reverse ret)
)

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir à toutes et tous,

 

Dommage pourtant de ne pas se servir de la fonction native "MAP" faite pour,...

 

Et en plus tu ne bénéficie plus du carroyage dynamique,..Très pratique (pour ne pas dire indispensable !) quant tu déplaces une vue dans une fenêtre,...

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Sur le gabarit des Atlas, j'ai essayé aussi mais sans résultat même en jouant sur un scu dans le gabarit.

AutoDESK joue un peu la sourde oreille sur cet outil, il y aussi l'impossibilité d'utiliser des fenêtres polygonales.

 

A bientôt,

Lien vers le commentaire
Partager sur d’autres sites

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é