banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 13 May 2009 16:15

was
Juste Inscrit !
Date d'inscription: 6 Mar 2009
Messages: 6

Autocad Map 2009 - erreur conversion datum

Bonjour à tous,

nous avons commandé des levés topo que nous avons reçu en Lambert 93 CC43 dernièrement.
je travaille avec Autocad Map, et je souhaite les convertir en Lambert 3 (travail en interne),

néanmoins lors de la conversion (lancement de la requête finale) un message me dit ;
"Impossible de transformer l'objet"
Détail du message "HATCH descripteur 27B, Impossible de convertir datum. HATCH descripteur 279, Impossible de convertir datum. INSERT (RE) descripteur 194.  Impossible de convertir datum".

j'ai rencontré cette erreur que pour la conversion de ce plan topo, les autres conversion de projection ont très bien fonctionnées.
est-ce le plan topo reçu qui est incomplet, est-ce le prestataire qui a une version différente de logiciel topo ?

si quelqu'un a déjà rencontré ce problème.
merci

Hors ligne

 

#2 Wed 13 May 2009 16:51

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4792

Re: Autocad Map 2009 - erreur conversion datum

Hello

Non ! Ce probleme n'est pas specifique aux conversions de/vers RGF93 avec MAP 2009 (ou CIVIL 2009), j'ai deja eu ce genre de probleme avec des MAP anciens pour des conversions Lambert classiques : L1, L2, L3, L4, LET

Dans certains cas, MAP n'arrive pas a re-projeter certaines entites graphiques !
et souvent il te donne le descripteur (ou code de maintien ou Code Handle)  qui est un identifiant unique en hexadecimal d'un objet dans la base de donnees du dessin qui commence avec une valeur proche de 00h et qui peut aller jusqu'a 0FFFFFFFFh

Ton message semble indiquer 1 et/ou 2 code(s) de Handle qui posent probleme : 27Bh et/ou 194h

Donc il faut faire un Zoom avec le dessin original sur ce(s) entite(s) graphique(s) avec le(s) code(s) de Handle !
et pour ca, un bon petit programme Lisp est indispensable !! Encore merci a Gilles comme d'habitude !!!

Ce programme Lisp/V-Lisp se charge par : Outils / Charger application (Type de Fichier = LSP)
Commande au clavier :  ZH

Code:

;;
;; ZH par GC
;; Sélectionne les objets présents dans l'espace courant d'après leurs "handle"
;;

(defun c:zh (/ space ss obj hlst olst kw i l)
(vl-load-com)
(or *acdoc*
(setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
)
(setq space (vla-get-Block (vla-get-ActiveLayout *acdoc*))
ss (ssadd)
)
(sssetfirst nil nil)
(initget 1)
(setq hlst
(getstring
"\nEntrez les handles à sélectionner séparés par des virgules: "
)
hlst (str2lst hlst ",")
)
(foreach h hlst
(if
(and
(not (vl-catch-all-error-p
(setq obj (vl-catch-all-apply
'vla-HandleToObject
(list *acdoc* h)
)
)
)
)
(equal (vla-ObjectIdToObject *acdoc* (vla-get-OwnerId obj))
space
)
)
(progn
(setq olst (cons obj olst))
(ssadd (vlax-vla-object->ename obj) ss)
)
)
)
(if ss
(progn
(sssetfirst nil nil)
(sssetfirst nil ss)
(setq i -1
l (length olst)
)
(while
(and
(not (initget "Suivant Précédent Tous"))
(or (setq
kw (getkword "Zoom sur [Suivant/Précédent/Tous] <S>: ")
)
(setq kw "Suivant")
)
)
(if (= kw "Suivant")
(setq i (rem (1+ i) l))
(setq i (if (minusp (1- i))
(1- l)
(1- i)
)
)
)
(if (= kw "Tous")
(ZoomObject olst)
(ZoomObject (list (nth i olst)))
)
)
)
)
(princ)
)

;; ZoomObject Effectue un zoom sur les objets contenus dans la liste
;;
;; Argument
;; objlst : une liste de vla-object
;;
;; Variables
;; dir : normale du plan de la vue courante
;; ang : angle de la vue courante
;; 3x3 : matrice de transformation du SCG vers la vue courante (dimension 3)
;; 4x4 : matrice de transformation du SCG vers la vue courante (dimension 4)
;; ptlst : liste des points minimum et maximum des bounding-boxes des objets sélectionnés (SCG)

(defun ZoomObject (objlst / dir ang 3x3 4x4 ptlst)
(vl-load-com)
(setq dir (trans '(0 0 1) 2 0 T)
ang (- (getvar "viewtwist"))
3x3 (mxm (mapcar '(lambda (x) (trans x 0 dir))
'((1 0 0) (0 1 0) (0 0 1))
)
(list (list (cos ang) (- (sin ang)) 0)
(list (sin ang) (cos ang) 0)
'(0 0 1)
)
)
4x4 (append
(mapcar
'(lambda (v o)
(append v (list o))
)
3x3
'(0 0 0)
)
(list '(0 0 0 1))
)
)
(foreach obj objlst
(vla-TransformBy obj (vlax-tmatrix (trp 4x4)))
(vla-getBoundingBox obj 'minpt 'maxpt)
(vla-TransformBy obj (vlax-tmatrix 4x4))
(setq ptlst (cons (vlax-safearray->list minpt)
(cons (vlax-safearray->list maxpt) ptlst)
)
)
)
(vla-ZoomWindow
(vlax-get-acad-object)
(vlax-3d-point (mxv 3x3 (apply 'mapcar (cons 'min ptlst))))
(vlax-3d-point (mxv 3x3 (apply 'mapcar (cons 'max ptlst))))
)
)

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

(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)
)
) 

;; transpose une matrice Doug Wilson

(defun trp (m)
(apply 'mapcar (cons 'list m))
)

;; Apply a transformation matrix to a vector by Vladimir Nesterovsky

(defun mxv (m v)
(mapcar '(lambda (r) (apply '+ (mapcar '* r v))) m)
)

;; Multiply two matrices by Vladimir Nesterovsky

(defun mxm (m q)
(mapcar '(lambda (r) (mxv (trp q) r)) m)
)

GeoBye, Pat

PS1: Ce programme te permet de passer un ou N code(s) de Handle separe(s) par une virgule.

PS2: C souvent les hachures qui posent probleme et dans ce cas,
la perte de quelques hachures n'a que peu d'importance !?


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

(Autodesk Expert Elite Team)

Hors ligne

 

#3 Wed 13 May 2009 17:43

was
Juste Inscrit !
Date d'inscription: 6 Mar 2009
Messages: 6

Re: Autocad Map 2009 - erreur conversion datum

Merci pour ton message,
c'est ce qui me semblait le problème est lié au fichier et non à la conversion, je te remercie pour ta confirmation,

par contre ça s'oriente plutôt programmation (et c'est pas mon fort..),
comment retrouver ces codes handle qui posent pb ? tu parles d'un programme Lisp/V-Lisp à charger, c'est le code que tu m'as transmis à enregistrer dans un éditeur de texte au format .LSP et ensuite je le charge? Comment le configurer (programmation en vba) ?

si tu as des ressources à ce sujet ça m'intéresse (on sera souvent amener à travailler avec les géomètres qui ont réalisés ces plan topos).

Hors ligne

 

#4 Wed 13 May 2009 17:48

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4792

Re: Autocad Map 2009 - erreur conversion datum

Hello

Tu as le programme Lisp en telechargement ! (Modification de ma reponse initiale realisee apres coup ! Sorry)

Donc c simple, je me repete :

Ce programme Lisp/V-Lisp se charge par : Outils / Charger application (Type de Fichier = LSP)
Commande au clavier :  ZH


GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#5 Wed 13 May 2009 17:58

was
Juste Inscrit !
Date d'inscription: 6 Mar 2009
Messages: 6

Re: Autocad Map 2009 - erreur conversion datum

Merci,
je vais tester ça sur le champs smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB