Vincent P. Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 Bonjour bonjour ! Je viens vous voir car j'ai une idée derrière la tête : Actuellement lorsque je travail sur des projet , je jongle entre différents Systèmes de Coordonnées (Lambert93, CC7, CC48 le plus souvent). Or lorsque je reçois des fichiers, ils ne sont jamais géoréférencé, et je doit souvent "découvrir" le SC qui leur correspond. Ma démarche actuelle : - commande ID, - je clique un point au milieux du plan - je récupère les X/Y - je me rend sur : https://app.dogeo.fr/Projection/#/coords-to-points - je met mes X/Y dans le bandeau de droite, clique sur l'épingle violet - et hop, j'ai ma projection! En soit c'est pas compliqué, mais je le fait régulièrement, et c'est le genre de manip répétitive que je pense être optimisable. Ce que j'aimerais, c'est lancer une commande, cliquer sur un point, et que automatiquement ça m'ouvre dogeo et remplisse le X/Y. Et là ... Isoler le X/Y, c'est simple, getpoint, car, cadr et on est bon. par contre ouvrir une page web et implanter mes X/Y dedans ... Ou alors je part sur une fausse route, et il y a autrement pour trouver le SC de mes fichier ... ? Des bisou Lispeur éternel débutant! Autocad Map3D 2023 Covadis-Autopist 18.2
Fraid Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 Bonjour, Quand il y a un emplacement géographique, c'est indiqué à coté des coordonnées. C'est dans ce cas, d'ailleurs, que c'est géoréférencé. sinon c'est simplement calé. C'est mon point de vue. https://github.com/Fraiddd
Fraid Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 (modifié) sinon Attention les emprise sont à vérifier !!! (setq listesys (list ;Liste des systèmes géodésiques ; Nom Code Type EPSG Emprise (list "Lambert93" "140" "24" "2154" (list 99000 6040000) (list 1240000 7120000)) (list "RGF93.CC42" "8142" "24" "3942" (list 1200000 1100000) (list 1800000 1300000)) (list "RGF93.CC43" "8143" "24" "3943" (list 1200000 2100000) (list 1800000 2300000)) (list "RGF93.CC44" "8144" "24" "3944" (list 1200000 3100000) (list 1800000 3300000)) (list "RGF93.CC45" "8145" "24" "3945" (list 1200000 4100000) (list 1800000 4300000)) (list "RGF93.CC46" "8146" "24" "3946" (list 1200000 5100000) (list 1800000 5300000)) (list "RGF93.CC47" "8147" "24" "3947" (list 1200000 6100000) (list 1800000 6300000)) (list "RGF93.CC48" "8148" "24" "3948" (list 1200000 7100000) (list 1800000 7300000)) (list "RGF93.CC49" "8149" "24" "3949" (list 1200000 8100000) (list 1800000 8300000)) (list "RGF93.CC50" "8150" "24" "3950" (list 1200000 9100000) (list 1800000 9300000)) (list "NTF.Lambert-1C-ClrkIGN" "120" "2" "27571" (list 45000 1100000) (list 1100000 1380000)) (list "NTF.Lambert-2C-ClrkIGN" "120" "2" "27572" (list 45000 1600000) (list 1202000 2679000)) (list "NTF.Lambert-3C-ClrkIGN" "120" "2" "27573" (list 250000 3000000) (list 1100000 3400000)) (list "NTF.Lambert-4C-ClrkIGN" "120" "2" "27574" (list 489000 4117000) (list 600000 4320000)) (list "NTF.Lambert-1-ClrkIGN" "101" "2" "27561" (list 45000 100000) (list 1100000 380000)) (list "NTF.Lambert-2-ClrkIGN" "102" "2" "27562" (list 45000 100000) (list 1100000 400000)) (list "NTF.Lambert-3-ClrkIGN" "103" "2" "27563" (list 250000 0) (list 1100000 400000)) (list "NTF.Lambert-4-ClrkIGN" "104" "2" "27564" (list 489000 117000) (list 600000 320000)) ) ) ;getsys ;Arg: pt liste de coordonées d'un point ;Retourne la liste des systèmes éventuelement utilisés ou nil (defun getsys ( pt / sys syst) (if (= (setq sys (getvar 'cgeocs)) "") (progn (setq sys nil) (foreach syst listesys (if (and (> (car pt) (car(nth 4 syst))) (< (car pt) (car(nth 5 syst))) (< (cadr pt) (cadr(nth 5 syst))) (> (cadr pt) (cadr(nth 4 syst))) ) (setq sys (cons (car syst ) sys)) ) ) ) (setq sys (list sys)) ) sys ) si cela peut t'aider Modifié le 28 mars 2023 par Fraid Emprise à vérifier https://github.com/Fraiddd
didier Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 Bonjour @Vincent P. Je ne vois pas pourquoi @Fraid fait un distinguo entre "géoréférencé" et "calé". AutoCAD n'est pas un logiciel qui supporte les projections donc la question ne se pose pas. On en parle beaucoup de géoréférencement, mais il y a beaucoup de confusions. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
thierry.garré Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 Bonjour, Si tu as Covadis Le menu Covadis 2d/systèmes de projections / affecter une projection au dessin, Covadis va te proposer en gras le système le plus probable en fonction des coordonnées du centre de la vue. Thierry Garré Géorail-Covadis-Autopiste-Autocad-Autocad Map-Infraworks 360- Navisworks -Recap
Fraid Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 C'est de la sémantique. Dans le mot géoréférencé, il y a référence, et l'emplacement géographique est censé l'être. Evidement, comme il peut être placer n'importe comment, ce n'est pas vrais. https://github.com/Fraiddd
Vincent P. Posté(e) le 28 mars 2023 Auteur Posté(e) le 28 mars 2023 Alors, je tourne sous Map3D et Covadis, et je parle de plan dessinés dans un référenciel (CC47 ou autre) mais le système n'est pas "déclaré" dans le fichier. Effectivement Covadis propose les plus probables, mais la liste des probables peut être longue, et ca oblige à refaire ma manip pour savoir le quel de ces probables est le bon ... Le fait d'afficher une carte avec les possibles permet de rapidement faite son choix entre les possibles Lispeur éternel débutant! Autocad Map3D 2023 Covadis-Autopist 18.2
lecrabe Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 Hello @Vincent P. , @Fraid , @didier , @thierry.garré Si ton DWG a le BON Systeme de Projection , tu peux l afficher dans un champ dynamique en allant chercher la variable System : CGEOCS Resultat : %<\AcVar cgeocs>% Bye, lecrabe PS: Post corrige, merci Didier ! Autodesk Expert Elite Team
didier Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 Merci @lecrabe Je ne connaissais pas, merci beaucoup. Intéressant. Toutefois, je note un G superflu dans ta syntaxe, pardon de corriger. CGEOCS Une chaîne vide signifie : pas d'emplacement géographique. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Olivier Eckmann Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 @Fraid, un peu surpris de tes emprises CC (XMax) dans ton Lisp. Normalement X0 c'est 1 700 000m pour 3° de longitude et ensuite c'est de -600 kms de Ouessant à +400kms Strasbourg (ou Munchhausen), donc pour moi, Xmin 1 100 000 et XMax 2 100 000 (et non pas 1 800 000). Olivier
Vincent P. Posté(e) le 28 mars 2023 Auteur Posté(e) le 28 mars 2023 Il y a 1 heure, lecrabe a dit : Si ton DWG a le BON Systeme de Projection , tu peux l afficher dans un champ dynamique en allant chercher la variable System : CGEOCS Ha ouai, super intéressent (ça vas rentrer dans mon cartouche) Dommage que la variable soit en lecture seul ... 😅 Par contre ça ne résout pas ma question, car il faut déclarer le SC pour que la variable la stock. Lispeur éternel débutant! Autocad Map3D 2023 Covadis-Autopist 18.2
Fraid Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 C'est en plaçant ce fameux emplacement géographique qu'il est renseigné https://github.com/Fraiddd
Fraid Posté(e) le 28 mars 2023 Posté(e) le 28 mars 2023 Citation peu surpris de tes emprises j'ai oublié de dire que les emprises sont à vérifier. c'est un Lisp que j'avais fait mais dont je me sert pas... car j'ai toujours un emplacement géographique. https://github.com/Fraiddd
Vincent P. Posté(e) le 30 mars 2023 Auteur Posté(e) le 30 mars 2023 Allé, je me lance ! Ca fait quelque mois que j'ai pas ouvert de .lsp ou .dcl, donc on se dérouille un peut : Déjà, une boite de dialogue en DCL sur laquelle je puisse m'appuyer : GEOREF : dialog { label = "Georef"; : row { : column { : text { key = "PromptX"; label = "X="; }} : edit_box { key = "EditX";//EditX depuis le LSP edit_width = 25; fixed_width = true; }}// fin de row : row { : column { : text { key = "PromptY"; label = "Y="; }} : edit_box { key = "EditY";//EditY depuis le LSP edit_width = 25; fixed_width = true; }}// fin de row spacer; : column { : row { : boxed_column { label ="Choisissez une projection :"; : list_box { key = "ListeSC"; value = ""; //ListeSC depuis le LSP } // fin de list_box } // fin de boxed_column } // fin de row ok_cancel; //bouton de validation par défaut } // fin de column }//fin de GEOREF Le tout mené par 4 routines LISP. Inspiré de l'exercice DCL-09 de @didier Et BROWSER vient de Y.Aubry ici (defun c:Georef (/ pt ) (if (getcname "MAPCSASSIGN") (progn ;ajouter un teste sur la variable "CGEOCS" (setq pt (getpoint "Selectionnez un point du dessin : ")) (browser "cad.kerlom.fr/topographie_coordonnees.php#") (DCLGEOREF (rtos (car pt)) (rtos (cadr pt))) (command "_FILEDIA" 0) (command "_MAPCSASSIGN" Choix-Liste) (command "_FILEDIA" 1) ) (prin1 "\nNécessite une version Map3D ou Civil 3D") ) (print) ) (defun DCLGEOREF ( EditX Edity / dcl_id ddiag lst) (setq dcl_Id (load_dialog "GEOREF.dcl") lst (list "Lambert93" "RGF93.CC42" "RGF93.CC43" "RGF93.CC44" "RGF93.CC45" "RGF93.CC46" "RGF93.CC47" "RGF93.CC48" "RGF93.CC49" "RGF93.CC50" "NTF.Lambert-2-ClrkIGN" ) ) (new_dialog "GEOREF" dcl_Id) (start_list "ListeSC" 3) (mapcar 'add_list lst) (end_list) (set_tile "EditX" EditX) (set_tile "EditY" EditY) (action_tile "cancel" "(done_dialog 1)" ) (action_tile "accept" "(fonction)(done_dialog 2)" ) (setq ddiag (start_dialog)) (unload_dialog dcl_Id) ) ;_ Fin de defun (defun fonction() ;;; extrait le numéro dans la liste (setq Choix_String(get_tile "ListeSC")) ;;; si le numéro n'est pas vide (if(/= Choix_String "") (progn ;;;extrait le numéro choisi et le convertit en integer (setq Index_Integer(atoi Choix_String)) ;;; extrait le numéro de la liste (setq Choix-Liste (nth Index_Integer lst)) ) ;;; si rien n'est choisi (progn (setq Index_Integer -1) ;;; met l'index à -1 (setq Choix-Liste nil) ;;; et vide la variable Choix-Liste ) ) ) ;; Ouverture d'un navigateur ;; Recherche dans l'ordre suivant : ;; Google Chrome, Opera, Mozilla Firefox, Microsoft Edge, Internet Explorer (defun browser ( url ) (setq url (strcat "\"" (vl-string-translate "/" "\\" url) "\"")) (vl-some '(lambda ( exe ) (and (findfile exe) (startapp exe url))) (list (strcat "C:\\Program Files (x86)" "\\Mozilla Firefox\\firefox.exe") (strcat (getenv "programfiles") "\\Google\\Chrome\\Application\\chrome.exe") (strcat "C:\\Program Files (x86)" "\\Google\\Chrome\\Application\\chrome.exe") (strcat "C:\\Users\\" (getenv "UserName") "\\AppData\\Local\\Programs\\Opera\\opera.exe") (strcat "C:\Program Files (x86)" "\Microsoft\Edge\Application\msedge.exe") (strcat (getenv "programfiles") "\\Internet Explorer\\iexplore.exe") ) ) ) Pour les premiers tests ça ne semble pas trop mal marcher (sous Map 3D 2023). Avec quelques remarques : - Au lancement d'Autocad Map 3D, si ma première action c'est lancer Georef, j'ai mon message "Nécessite une version Map 3D ou Civil 3D" ... Il faut que je lance manuellement une fonction propre à Map 3D avant que cela fonctionne. - Je modifie FILEDIA a la volée, je devrais stocker la variable en début de programme, et la rétablir à la fin, et pas forcé 1. - (fonction) ne déclare pas ses variables - J'aimerais utiliser la variable CGEOCS. Si une projection est déjà définie, qu'elle soit sélectionnée dès l'ouverture de la boite de dialogue. - Et si SGEOCS renvoi une projection que n'est pas dans ma petite liste, il faudra l'ajouter en tête. - Ptet ajouter des boutons "Copier" au bout des X/Y pour que ce soit encore plus facile ...? - Je n'ai pas de Civil 3D sous la main pour m'assurer que ça marche aussi bien au sous Map 3D Sur ce, je vais me préparer à manger, et je m'y repenche cette aprèm ... Lispeur éternel débutant! Autocad Map3D 2023 Covadis-Autopist 18.2
Olivier Eckmann Posté(e) le 30 mars 2023 Posté(e) le 30 mars 2023 Pour savoir si c'est une version MAP ou Civil, tu peux utiliser ça (renvoie nil si pas MAP) (member "acadmap.arx" (arx)) Pour connaitre le SC affecté, c'est (renvoie le nom du SC ou un texte vide si aucun affecté) (ade_projgetwscode) Olivier 1
DenisHen Posté(e) le 1 août 2023 Posté(e) le 1 août 2023 Salut la communauté. Je rejoint @didier, je pense qu'il y a une différence entre "géoréférencé" et "calé"... J'avais récupéré (sur CadXP il me semble) un petit code qui me permettais de savoir dans quel système de projection mon dessin était "référencé"... Et l'avantage, il fonctionnait même sans un MAP... Je m'en vais le rechercher dans mes archives... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 1 août 2023 Posté(e) le 1 août 2023 Je pense que c'est ça : Citation ;;; Cherche la projection courante (defun c:GeoControl (/ TextGeo) ;(command "_zoom" "_e") (princ "\n\tDéveloppé par Denis H. (1.0)") (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (command "_zoom" "t" "") (setq TextGeo nim) (setq Xcvue (car (getvar "viewctr")) Ycvue (cadr (getvar "viewctr")) ) ;_ Fin de setq ;;Valeurs toujours à affinées (http://geofree.fr/gf/projguess.asp) ;;et source EPSG http://geodesie.ign.fr/contenu/fichiers/SRCfrance.pdf ;;(if (and (> Xcvue 1) (< Xcvue 1200000) (> Ycvue 70000) (< Ycvue 400000)) ;;(setq EPSG 27561 TextGeo "\nLe plan semble être en Lambert 1 Zone Nord") ;;) ;;(if (and(> Xcvue 1) (< Xcvue 1200000) (> Ycvue 400000) (< Ycvue 700000)) ;;(setq EPSG 27562 TextGeo "\nLe plan semble être en Lambert 2 Zone Centre") ;;) ;;(if (and (> Xcvue 1) (< Xcvue 1200000) (> Ycvue 10000) (< Ycvue 1000000)) ;;(setq EPSG 27563 TextGeo "\nLe plan semble être en Lambert 3 Zone Sud") ;;) (if (and (> Xcvue 1) (< Xcvue 1200000) (> Ycvue 160000) (< Ycvue 2700000)) (setq TextGeo "\nLe plan semble être en Lambert 2 Etendu") ;_ Fin de setq ) ;_ Fin de if (if (and (> Xcvue 1400000) (< Xcvue 1800000) (> Ycvue 9100000) (< Ycvue 9300000)) (setq TextGeo "\nLe plan semble être en CC50") ;_ Fin de setq ) ;_ Fin de if (if (and (> Xcvue 1400000) (< Xcvue 1800000) (> Ycvue 8100000) (< Ycvue 8300000)) (setq TextGeo "\nLe plan semble être en CC49") ;_ Fin de setq ) ;_ Fin de if (if (and (> Xcvue 1400000) (< Xcvue 1800000) (> Ycvue 7100000) (< Ycvue 7300000)) (setq TextGeo "\nLe plan semble être en CC48") ;_ Fin de setq ) ;_ Fin de if (if (and (> Xcvue 1400000) (< Xcvue 1800000) (> Ycvue 6100000) (< Ycvue 6300000)) (setq TextGeo "\nLe plan semble être en CC47") ;_ Fin de setq ) ;_ Fin de if (if (and (> Xcvue 1400000) (< Xcvue 1800000) (> Ycvue 5100000) (< Ycvue 5300000)) (setq TextGeo "\nLe plan semble être en CC46") ;_ Fin de setq ) ;_ Fin de if (if (and (> Xcvue 1400000) (< Xcvue 1800000) (> Ycvue 4100000) (< Ycvue 4300000)) (setq TextGeo "\nLe plan semble être en CC45") ;_ Fin de setq ) ;_ Fin de if (if (and (> Xcvue 1400000) (< Xcvue 1800000) (> Ycvue 3100000) (< Ycvue 3300000)) (setq TextGeo "\nLe plan semble être en CC44") ;_ Fin de setq ) ;_ Fin de if (if (and (> Xcvue 1400000) (< Xcvue 1800000) (> Ycvue 2100000) (< Ycvue 2300000)) (setq TextGeo "\nLe plan semble être en CC43") ;_ Fin de setq ) ;_ Fin de if (if (and (> Xcvue 0) (< Xcvue 1300000) (> Ycvue 6000000) (< Ycvue 7200000)) (setq TextGeo "\nLe plan semble être en Lambert 93") ;_ Fin de setq ) ;_ Fin de if (if (= TextGeo nil) (setq TextGeo "\nLe plan ne semble pas être Géoréférencé") ) ;_ Fin de if (princ TextGeo) (vla-endundomark doc) (princ) ) ;_ Fin de defun Mais je ne promet rien, je sais que ce code ne fonctionne pas toujours. Mais il peux être d'une bonne aide. Et je ne sais plus de qui il est... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
lili2006 Posté(e) le 2 août 2023 Posté(e) le 2 août 2023 Bonjour à toutes et tous, Merci @Olivier Eckmann😎 (ade_projgetwscode) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant