CadXP: Etiquette Coordonnés en Degrés - CadXP

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Etiquette Coordonnés en Degrés

#1 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 028
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 02 avril 2020 - 14:10

Bonjour,

Le confinement à au moins un avantage, on à le temps de programmer.
Voici donc un petit outil qui à aux moins deux utilités.
- Fournir au gars de terrain des coordonnées utilisable dans leur GPS embarqué.
(pour évité qu'ils se perdent...)
- Une aide à positionner un emplacement géographique.

C'est donc utilisable dans un plan géoréférencé, dans l'espace objet (dans une fenêtre ou non) et à l’échelle 200 ou 500ème.

Tout d'abord téléchargez ce dossier
Puis le placer dans un dossier "c:/Data et l'approuver dans Autocad.
Vous pouvez choisir un autre dossier en modifiant la variable geopre.
Le Lisp utilise CircéBatch et un dwg inclus dans le dossier à télécharger.
Vous pouvez modifier le dwg qui contient un repère multiple (style, calque...).

;;;geo-ddb 
;;;Place un repère multiple avec les Coordonnées en Degrés Décimaux, 
;;;en degrés minutes secondes,
;;;et l'angle de convergence en Grades 
;Variables globales
(setq geo-listesys '(;Liste des systèmes géodésiques avec leurs codes Circé
                    ("Lambert93" "140" "24")
                    ("RGF93.CC42" "8142" "24")
                    ("RGF93.CC43" "8143" "24")
                    ("RGF93.CC44" "8144" "24")
                    ("RGF93.CC45" "8145" "24")
                    ("RGF93.CC46" "8146" "24")
                    ("RGF93.CC47" "8147" "24")
                    ("RGF93.CC48" "8148" "24")
                    ("RGF93.CC49" "8149" "24")
                    ("RGF93.CC50" "8150" "24")
                    ("NTF.Lambert-1C-ClrkIGN" "120" "2")
                    ("NTF.Lambert-2C-ClrkIGN" "120" "2")
                    ("NTF.Lambert-3C-ClrkIGN" "120" "2")
                    ("NTF.Lambert-4C-ClrkIGN" "120" "2")
                    ("NTF.Lambert-1-ClrkIGN" "101" "2")
                    ("NTF.Lambert-2-ClrkIGN" "102" "2")
                    ("NTF.Lambert-3-ClrkIGN" "103" "2")
                    ("NTF.Lambert-4-ClrkIGN" "104" "2")
                    )
    geopre "C:\\Data";Dossier récéptacle
    default-syst "";à éditer si toujours le même
)
;Principal
(defun c:geo-ddb (/ oldluprec olddimzin oldcmdecho oldosmode oldcmleaderstyle oldclayer 
                    *error* acdoc flagscu pt ptt ldd ech
                 )
    (defun *error* (msg);Redéfinition de la fonction *error*
        (if (= 8 (logand 8 (getvar 'UNDOCTL)))(vla-EndUndoMark acdoc))
        ;Restauration des variables Autocad
        (setvar "cmdecho" oldcmdecho)
        (setvar "osmode" oldosmode)
        (setvar "cmleaderstyle" oldcmleaderstyle)
        (setvar "clayer" oldclayer)
        (setvar "luprec" oldluprec)
        (setvar "dimzin" olddimzin)
        (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
            (princ (strcat "\n** Error: " msg " **")))
        (princ)
    )   
                 
    (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
    (vla-startundomark acdoc)
    (if (< (getvar "cvport") 2);si en espace papier
        (princ "\nAbandon, Cette commande s’exécute dans l'espace objet.")
        ;else
        (progn
            (setq   ;Sauvegarde des variable Autocad
                    oldluprec (getvar "luprec")
                    olddimzin (getvar "dimzin")
                    oldcmdecho  (getvar "cmdecho")
                    oldosmode   (getvar "osmode")
                    oldcmleaderstyle (getvar "cmleaderstyle")
                    oldclayer (getvar "clayer")
            );setq
            ;Init des variable Autocad 
            (setvar "cmdecho" 0)
            (setvar "osmode" 0)
            (setvar "luprec" 4)
            (setvar "dimzin" 8)
            ;Controle du SCU
            (if (=(getvar "worlducs") 0)(setq flagscu (vl-cmdf "_ucs" "")))
            ;Controle du style de repère multiple
            (if (dictsearch (cdr (assoc -1 (dictsearch (namedobjdict) "ACAD_MLEADERSTYLE"))) "Geo")
                (setvar "cmleaderstyle" "Geo")
                ;else
                (progn
                    (vla-erase
                        (vla-insertblock 
                            (vla-get-modelspace acdoc) 
                            (vlax-3d-point '(0 0 0)) 
                        (strcat geopre "\\geo\\Geomleader.dwg")
                        1 1 1 0
                        )
                    )
                    (setvar "cmleaderstyle" "Geo")
                );progn
            );if
            ;Init du repère multiple
            (initget "200 500")
            (setq   ech (getkword "\nEchelle du dessin ? [200/500] <200>:")
                    pt (getpoint "\nChoisir un point")
                    ptt (getpoint "\nPosition du texte")
                    ldd (geo-todd pt (geo-getsys))
                    tdd (strcat 
                            (cadr ldd) 
                            "," 
                            (car ldd)  
                            "\\P" 
                            (geo-ddtodms (cadr ldd)) 
                            "," 
                            (geo-ddtodms (car ldd)) 
                            "\\P" 
                            (rtos (+ 100.00 (* (- (atof (car ldd)) 2.3355) 0.809938)) 2 8) 
                            "g"
                        );strcat
            );setq
            ;Changement de calque
            (setvar "clayer" "Geo")
            ;Création du repère multiple selon SCU
            (if flagscu 
                (progn
                    (command "_ucs" "p")
                    (command "_MLEADER" (trans pt 0 1) (trans ptt 0 1) tdd)
                    (if (= ech "500")(command "_scale" (entlast) "" (trans pt 0 1) 2.5))
                );progn
                ;else
                (progn
                    (command "_MLEADER" pt ptt tdd)
                    (if (= ech "500")(command "_scale" (entlast) "" pt 2.5))
                )
            );if
            ;Restauration des variables Autocad
            (setvar "cmdecho" oldcmdecho)
            (setvar "osmode" oldosmode)
            (setvar "cmleaderstyle" oldcmleaderstyle)
            (setvar "clayer" oldclayer)
            (setvar "luprec" oldluprec)
            (setvar "dimzin" olddimzin)
        );progn
    );if
    (if (= 8 (logand 8 (getvar 'UNDOCTL)))(vla-EndUndoMark acdoc))
    (princ)
);geo-ddb
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;geo-getsys
;;;Récupère le système géodésique en cours
;;;Retour sys, String
(defun geo-getsys (/ sys)
	(if (= (setq sys (getvar 'CGEOCS)) "");Si aucun emplacement géographique
		(if (= (setq sys default-syst) "");Si aucun système par defaut
			(setq sys (geolistbox (mapcar 'car geo-listesys)) default-syst sys)
		)
	)
    sys;Retour
);geo-getsys
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;geo-todd
;;;Converti les coordonnée en Degrés décimaux 
;;;Dépendance, CircéBatch.exe
;;;Arguments pt, point (liste)
;;;syst, système géodésique (string)
;;;Retour liste 
(defun geo-todd (pt syst / strbat file rfile lsyst readbat line ddx ddy)
    ;Récupération des codes Circé
    (mapcar '(lambda (x) (if (= (car x) syst) (setq lsyst (cdr x)))) geo-listesys)
    (setq   file (strcat geopre "\\geo\\geo-todd.bat")
            rfile (strcat geopre "\\geo\\ReturnCirce.txt")
            strbat (open file "w")
    )
    ;Ecriture du .bat
    (write-line "@echo off" strbat)
    (write-line 
        (strcat "\"" 
                geopre 
                "\\geo\\CirceBatch\\CirceBatch.exe\" -init Circe.ini -mode 0 -type 2 -sys1 " 
                (cadr lsyst) 
                " -sys2 24 -typcoor1 3 " 
                (car lsyst)  
                " -typcoor2 2 2 1 -H 0.0 -E " 
                (rtos (car pt) 2 4) 
                " -N " 
                (rtos (nth 1 pt) 2 4) 
                " > " 
                rfile
        ) 
    strbat
    )
    (write-line "exit" strbat)
    (close strbat);Fin écriture du .bat
    (command "_.shell" file);Exécution du .bat
    (command "_.delay" 1000);imposé par Windows
    (setq readbat (open rfile "r")
           line (read-line readbat);Lecture du retour du .bat
           ddx (substr line 1 (vl-string-position (ascii " ") line))
           ddy (substr line (+ 2 (vl-string-position (ascii " ") line))(strlen line))
    )
    (close readbat);Fin lecture du retour du .bat
    ;Suppression des fichiers
    (vl-file-delete file)
    (vl-file-delete rfile)
    (list ddx ddy);Retour
);geo-todd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;geo-ddtodms
;;;converti des degrés décimaux en degrés minute seconde
(defun geo-ddtodms (dd)
    (angtos (angtof dd 0) 1)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun geolistbox (lst / dcl wdcl dcl_id done choice)
    (setq dcl  (strcat geopre "\\geo\\geo.dcl")
          wdcl (open dcl "w")
    )
    (write-line "geolistbox:dialog 
        {label = \"Sélection du Système Géodésique\";
            :text{label = \"Choisissez un système\";}
            spacer;
            :list_box {key = \"lst\";}
            spacer;ok_cancel;
        }"
        wdcl
    );write-line
    (close wdcl)
    (setq dcl_id (load_dialog dcl))
    (if (new_dialog "geolistbox" dcl_id)
        (progn
          (start_list "lst")
          (mapcar 'add_list lst)
          (end_list)
          (action_tile "lst" "(setq choice (nth (atoi $value) lst))")
          (action_tile "accept" "(done_dialog 1)")
          (action_tile "cancel" "(done_dialog 0)")
          (setq done (start_dialog))
          (unload_dialog dcl_id)
          (vl-file-delete dcl)
          (if (= done 1)choice);retour
        );progn
    );if
);geo-listbox
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(princ "\nGEO-DDB correctement chargé.\nTapez GEO-DDB")
(princ)

Normalement il est compatible tout Autocad sur Windows.
Testé sur Autocad 2015 et Windows 7. (à tester sur Win10)

Je suis ouvert à toutes propositions d'amélioration.
Je n'ai pas réussi à utiliser la version 5 de Circé malgré qu'il affiche le code en bas de la fenêtre...
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#2 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 12 192
  • Inscrit(e) : 21-décembre 05

Posté 02 avril 2020 - 18:11

Bonsoir à toutes et tous,
Salut Fraid,

Citation

Je n'ai pas réussi à utiliser la version 5 de Circé malgré qu'il affiche le code en bas de la fenêtre...


Seule cette version est légale en métropole en France car elle intègre la grille RAF18
Je n'ai pas bien compris le but de ce programme, pourrais tu développer un peu son fonctionnement STP ?
Merci d'avance,

AutoCAD MAP 3D 2021 - COVADIS_17.1b
https://www.linkedin...3%ABt-95313341/
0

#3 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 028
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 02 avril 2020 - 18:54

Citation

Je n'ai pas bien compris le but de ce programme


Le but est d'avoir les coordonnées d'un point en degrés décimaux, degrés minute seconde,
sur un plan géoréférencé, en Lambert93 par exemple.

Car, si l'adresse est trop vague, RD666 à Trifouillis les oies,
les gars de chantier peuvent galérer à trouver l'endroit exacte si il à pas de point repère particulier.
Les coordonnées Lambert ne peuvent pas les aider, les GPS de véhicule n'acceptent que des degrés.
J'ai vu le cas avec la pose d'une chambre télécom au pied d'un poteau en pleine pampa.

Deuxièmement, cela aide aussi pour placer un repère géographique précisément, avec en plus l'angle issue de la convergence des méridiens.

Les chartes graphiques dans mon activité (pose de fibre optique) impose de n'avoir aucune trace de Map ou Covadis.

j'espère avoir répondu à ta question.
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#4 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 12 192
  • Inscrit(e) : 21-décembre 05

Posté 03 avril 2020 - 09:29

Bonjour à toutes et tous,
Salut Fraid,

Citation

j'espère avoir répondu à ta question.

Oui oui, parfaitement, merci !Image IPB



Je ne comprenais pas la raison du programme jusqu'au moment ou tu as écrit :

Citation

Les chartes graphiques dans mon activité (pose de fibre optique) impose de n'avoir aucune trace de Map ou Covadis

Par contre, je me demande bien pourquoi puisque MAP sert justement, en natif, à géolocaliser les plans et du coup afficher la carte, pratique, voire indispensable dans la plupart des BEs que je visite,..Image IPB
AutoCAD MAP 3D 2021 - COVADIS_17.1b
https://www.linkedin...3%ABt-95313341/
0

#5 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2 028
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 03 avril 2020 - 09:47

Citation

Par contre, je me demande bien pourquoi puisque MAP sert justement, en natif, à géolocaliser les plans


Pour l'instant, seul la SNCF à changé d'avis, et à mis en place une charte spécial Autocad Map.
Mais depuis, je ne travail plus pour eux, hormis quelque fonds de plans.
Comme je me suis posé la même question, et c'est principalement pour éviter des bugs lors de la construction du SIG qu'il y a derrière.
De toute façon, je ne m’occupe plus du géoréférencement, c'est le Géomètre qui m'envois les fonds plans qui le fait.
La carte est la seulement en page de garde pour situé le chantier, et n'a pas besoin de précision extrême.
...plus je sais où je suis, moins je sais où je vais....
Extrait d'une double interview simultanée d'une particule élémentaire.
0

#6 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 12 192
  • Inscrit(e) : 21-décembre 05

Posté 03 avril 2020 - 14:05

Vu !Image IPB

Citation

et c'est principalement pour éviter des bugs lors de la construction du SIG qu'il y a derrière.


Mais MAP est pourtant un SIG super puissant, voire même unique puisque l'on peut aussi dessiner sous l'environnement AutoCAD bien connu de tous (et il à un format spécifique à lui !),..

Je travaille pour quelques BEs qui font de la télédétection, ils sont ravi d'avoir MAP (et même en Fibre optique !!)

AutoCAD MAP 3D 2021 - COVADIS_17.1b
https://www.linkedin...3%ABt-95313341/
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)