Aller au contenu

Autocad Map: Tuto Saisir des coordonnées Latitude Longitude


Messages recommandés

Posté(e)

Pour le faire plus rapidement.

J'avais déjà donné un exemple de code pour faire des conversions à la volée.

 

Je le redonne ici adapté à GoogleMap vers du Lambert93 (j'inverse la latitude/longitude de GoogleMap)

 

;Conversion de coordonnéees GoogleMap vers Lambert93 RGF
(defun c:xy_LL84toRGF93 (/ as_cor ll lat lon pkpt desc)
 (setq as_cor (ade_projgetwscode))
 (cond
   ((eq (strcase as_cor) "LL84")
     (ade_projsetsrc as_cor)
     (ade_projsetdest "Lambert93")
     (while (setq pkpt (getpoint "\nFaites un copié-collé des coordonnées GoogleMap: "))
       (setq pkpt (list (cadr pkpt) (car pkpt) (caddr pkpt)))
       (setq
         ll (ade_projptforward pKpt)
         lat (car ll)
         lon (car (cdr ll))
         desc (ade_projgetinfo "Lambert93" "description")
       )
       (princ 
         (strcat
           "\nLongitude,Lattitude: " (rtos (car pkpt) 2 6) "," (rtos (cadr pkpt) 2 6)
           "\n Converti depuis: " as_cor
           "\n Converti vers  : " desc
           "\nX,Y: " (rtos lat 2 6) "," (rtos lon 2 6)
         )
       )
     )
   )
   (T
     (initget "Oui Non _Yes No")
     (if (eq (getkword "\nAssigner le système de coordonnées LL84 au dessin actuel[Oui/Non]? <N>: ") "Yes")
       (progn
         (ade_projsetwscode "LL84")
         (princ "\nSystème attribué, relancez la commande")
       )
     )
   )
 )
 (prin1)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

  • 4 semaines après...
Posté(e)

Hello Bonuscad,

 

Je pense que tu pourras m'aider:

 

En fait j'ai un dessin avec des étiquette de coordonnées (format txt), ce que j'aimerai faire c'est convertir cette étiquette en sélectionnant le texte de la coordonnées X puis le texte de la coordonnées Y (et que l'étiquette se mette à jour)

 

Merci de ton retour,

 

Cordialement,

 

Laurent

Posté(e)
Hello Bonuscad' date='

 

Je pense que tu pourras m'aider:

 

En fait j'ai un dessin avec des étiquette de coordonnées (format txt), ce que j'aimerai faire c'est convertir cette étiquette en sélectionnant le texte de la coordonnées X puis le texte de la coordonnées Y (et que l'étiquette se mette à jour)[/quote']

 

Ce sera dans la mesure de mes possibilités, je suis loin d'être un expert sous map.

Si j'ai bien compris tu veux une reprojection dans un autre système et que tes étiquettes se mettent à jour (sous forme de champ dynamique?)

 

Un petit extrait de ton dwg serait aussi le bienvenu pour la conception d'un code répondant à ton besoin.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Houla........ je pense que c'est plus simple que cela.

 

Exemple

 

Je converti un dessin (Lambert 1 en Lambert 93) ça ok pas de soucis , par contre dans ce dessin, j'ai des annotation (coordonnées) sous formes de texte autocad qui ne sont pas à jours dans les nouveaux système car pas dynamique. Ce que je voudrais faire , c'est mettre à jour chaque étiquette en sélectionnant celle-ci (je clique le texte contenant l'information X puis celui qui contient l'information Y=> puis les textes se mettent à jour dans le nouveau système.

 

Ci-joint un exemple (la conversion se fait dans ce sens (Lambert 1 vers Lambert 93)

 

https://docs.google.com/open?id=0B_85Ome3N80dU0dySXAzLVE2OTA

 

Merci d'avance

 

Cordialement,

 

Laurent

Posté(e)

Avec la même démarche qu'avec le code proposé précédemment.

 

NB: J'ai été surpris de ne pas trouver de système de projection attribué à ton dessin ! Comment tu fais tes re-projection?

 

Sous réserve que j'ai bien pris le bon système de référence de départ...

 

;Conversion de coordonnéees Lambert I vers Lambert93 RGF
(defun c:xy_LL-ItoRGF93 ( / as_cor js ename1 dxf_ent1 stringx ename2 dxf_ent2 stringy pt ll pt_x pt_y desc)
 (setq as_cor (ade_projgetwscode))
 (cond
   ((eq (strcase as_cor) "IGN-I")
     (ade_projsetsrc as_cor)
     (ade_projsetdest "Lambert93")
     (princ "\nSelectionner le texte représentant le X: ")
     (while (setq js (ssget "_+.:E:S" '((0 . "TEXT"))))
       (setq ename1 (ssname js 0))
       (cond
         (ename1
           (cond
             ((not (zerop (setq stringx (atof (cdr (assoc 1 (setq dxf_ent1 (entget ename1))))))))
               (princ "\nSelectionner le texte représentant le Y: ")
               (while (not (setq js (ssget "_+.:E:S" '((0 . "TEXT"))))))
               (setq ename2 (ssname js 0))
               (cond
                 ((not (zerop (setq stringy (atof (cdr (assoc 1 (setq dxf_ent2 (entget ename2))))))))
                   (setq
                     pt (list stringx stringy)
                     ll (ade_projptforward pt)
                     pt_x (car ll)
                     pt_y (car (cdr ll))
                     desc (ade_projgetinfo "Lambert93" "description")
                   )
                   (princ 
                     (strcat
                       "\nX,Y: " (rtos stringx 2 3) "," (rtos stringy 2 3)
                       "\n Converti depuis: " as_cor
                       "\n Converti vers  : " desc
                       "\nX,Y: " (rtos pt_x 2 3) "," (rtos pt_y 2 3)
                     )
                   )
                   (entmod (subst (cons 1 (rtos pt_x 2 3)) (assoc 1 dxf_ent1) dxf_ent1))
                   (entmod (subst (cons 1 (rtos pt_y 2 3)) (assoc 1 dxf_ent2) dxf_ent2))
                 )
                 (T (princ "\nCe n'est pas une valeur numérique!"))
               )
             )
             (T (princ "\nCe n'est pas une valeur numérique!"))
           )
         )
       )
       (princ "\nSelectionner le texte représentant le X: ")
     )
   )
   (T
     (initget "Oui Non _Yes No")
     (if (eq (getkword "\nAssigner le système de coordonnées IGN-I au dessin actuel[Oui/Non]? <N>: ") "Yes")
       (progn
         (ade_projsetwscode "IGN-I")
         (princ "\nSystème attribué, relancez la commande")
       )
     )
   )
 )
 (prin1)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

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é