Aller au contenu

Créer une image géoréférencée à partir de map


GEGEMATIC

Messages recommandés

salut à toutes et à tous.

Pour basculer de vieux projets map vers Qgis,

lorsqu'on a des images, des dwg, des pdf non géoréférencés mais calés dans le système,

qui servent de fond de plan ou autre,

on s'est aperçu que la meilleur manière de les transférer est d'en faire une image géoréférencée.

j'espère que vous me contredirez, mais avec map, version 2021, je ne vois pas de commande de création d'images géoréférencées ?

Si vous confirmez, J'ai des tas d'outils lisp qui font presque ce qu'il faut mais pas tout à fait ...

Sur planetar, je vous avais peut être envoyé en mail privé "Byo2autocad_Howto.txt"

Citation

Incorporation d'images IGN issues de Carto Exploreur sous Autocad.
Cette methode ne constitue pas une décompilation ni une exploitation des fichiers BYO dissociés de Carto Exploreur.
Elle est basée sur la seule chose permise au regard de la licence et du logiciel :
L'impression au format A4. Dans notre cas, elle se fera dans un fichier PostScript.

Incroyable d'imaginer ce qu'il fallait faire pour avoir un extrait de carte ign géoréférencé sous Autocad en 2004, alors que maintenant on les a en flux wms ...

Du coup ça créait un .tfw créé à partir d'un cadre sous Autocad,ça donnait des coordonnées à rechercher sous carto-exploreur, sous lequel on imprimait l'image du même nom et le tour était joué.

là j'ai besoin de tracer le png depuis Autocad, et là ce n'est pas si simple, car à ma connaissance, on ne peut pas créer de format personnalisé à la volée par la programmation.

Pour avoir la meilleur adéquation, il faut rechercher le format raster le plus adapté, et ensuite modifier la zone de tracé pour que ça colle.

J'ai des trucs pour faire ça, mais j’angoisse rien que d'y repenser ...

Si qq à un truc pour faire ça facilement, il me far passer un bonne journée !

a+

Gégé

 

 

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

Salut Gégé,

 

A priori, rien de natif sous AutoCAD Map.

Il y aurait Global Mapper qui serait capable de convertir un DWG en Geotiff. Sinon FME le fait aussi je crois.

 

Sinon, tout passe par de la programmation.

J'avais trouvé ça via Lisp PDF et GDAL : https://gis.stackexchange.com/questions/408478/is-there-a-tool-that-directly-exports-a-dwg-map-with-coordinates-to-geotiff mais il faut un passer par un format personnalisé de papier. Pas possible avec DWG to PDF.PC3, mais possible à priori via PDF Créator via la base de registre (info lue mais non vérifiée).

La solution m'intéresse si tu trouves un truc simple.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Gégé et Olivier,

Je suis peut être à côté de la plaque et en plus je n'ai pas testé mais IGNMAP sait lire les dxf ainsi que tous les raster et permet apparement de faire des exports sous forme d'image.

Ca demanderait peut être un peu de manips mais ca meriterait d'être essayé

 

Eric

Lien vers le commentaire
Partager sur d’autres sites

Merci à tous les deux,

@Olivier,

Je vais essayer ton lien, et si ça marche pas,

J'ai toutes les briques du puzzle pour faire un truc pas mal, parceque j'avais développé un utilitaire d'impression png sous Autocad, qui recherchait parmi une 20taine de format raster le plus approprié. C'est développé propre, car c'était pour un client.

(on a du mal à s'imaginer qu'a une époque, on ne pouvait capturer l'écran  qu'avec un print-screen ! mais le but de ce développement était également de permettre le re-tracé automatique des cadres saisis en gardant le nom de fichier)

Dès que j'ai un truc potable, je te le fournirai (et à la communauté), c'est rare de pouvoir te rendre service !

@je56

En fait tous les bons logiciels SIG ont cette faculté, Qgis le fait sans problème, mais nous on veut exporter des dossiers existants Autocad vers Qgis.

Donc il faut créer l'image depuis Autocad.

même pour les nouvelles affaires ou il y du projet vrd, on travaille encore avec Autocad, car Covadis ...

Mais pour nous le meilleur logiciel de terrain, pour la tablette, c'est Qgis.

Donc on crée le projet sous Autocad, on cale les DICT, on crée une image raster et on l'importe dans qgis, pour travailler sur le terrain.

on veut éviter de faire 2 fois le boulot.

a+ gégé

 

 

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Salut à tous,

j'ai un résultat "potable" pour créer des géotiff à partir d'Autocad map,

passable serait plutôt le bon mot ...

et pourtant ça fait bien 15 ans que j'ai pas autant souffert pour accoucher d'un truc aussi minable.

J'avais pas mal d'outils pour faire du tracé raster, et d'autre pour générer des fichier world assoicé (Tfw, Pgw, Jpw ...)

ce que j'aimais pas, c'est que ça marchait avec des format fixes, sans rotation donc inévitablement tuilage, image mal adaptée à la forme etc...

je suis donc parti du lien à Olivier en me disant que je n'avais qu'a l'améliorer un peu,(il n'est pas très automatique) ça paraissait facile ...

Longtemps que je n'avais pas travaillé avec gdal, et là je dois dire que la syntaxe n'est pas claire, et ne comptez pas trop sur la doc ...

j'ai fait des tests, et de ces tests, j'ai tiré plein de fausses conclusions ...

je passe sur le fait que gdal_translate et gdalwarp n'utilisent pas les polygones de la même façon, plein de petites subtilités quoi ... et en plus je ne m'en suis pas servi pour l'instant !

Ensuite le gros morceau, les viewports et les layouts Autocad.

en dxf, on a pas grand chose, en activeX non plus, dumpallproperties en dit beaucoup plus, mais encore faut il comprendre ce qu'il dit, et s'en méfier.

Avez vous déjà remarqué que parfois, l'aperçu ou le tracé ne ressemblent pas à votre onglet ?

que l'onglet est décalé, alors que le tracé est centré, ou alors le contraire ?

et bien dumpallproperties donne la version pas a jour, celle qui ne sera pas utilisée pour tracer votre pdf.

C'est pour ça que j'ai jugé inutile de tester les impératifs genre échelle 1, tracé centré, car l'opérateur est obligé de le vérifier lui même.

Il reste beaucoup de boulot pour avoir un truc propre, je n'ai pas fait l'inventaire des variables, car le travail est en cours,

mais on peut désormais faire un géotif depuis Autocad, très rapidement et sans devoir créer un format personnalisé.

c'est déjà pas mal !

a+

gégé

 

;;; vp2tif.lsp
;;;
;;; Returns GDAL command to translate a paperspace viewport PDF printout to TIF
;;; 
;;; Supports clipped viewports.
;;; If vp-outline is called when in mspace it detects
;;; the active viewport.
;;;
;;; c:vp2tif
;;;
;;; original code from By Jimmy Bergmark (vp-outline.lsp: https://www.cadtutor.net/forum/topic/1173-modelspace-coordinates-from-paperspace-viewports)
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
;;; Website: [url="http://www.jtbworld.com"]www.jtbworld.com[/url]
;;; E-mail: [courriel="info@jtbworld.com"]info@jtbworld.com[/courriel]
;;;
;;; 2000-04-10
;;; 2003-11-19 Added support for drawing the outline in other ucs/view than world/current
;;;
;;; 2006-04-06 Added support for twisted views Tom Beauford
;;;
;;; Tested on AutoCAD 2000, 2000i, 2002, 2004, 2006, 2007

;;;retravaillé en 2022 par G.L
;;testé sur Autocad CIVIL 2018
;;www.g-eaux.com


;;**************************************************************************
;§/traces/Vieport vers géoTif en utilisant gdal pdf 2 tif / none
;;;Usage:
;;;Vérifier que le dessin à un système de coordonnées RGf93.CC?? ou lambert93 (les autres ne sont pas supportés)
;;;Se placer dans un onglet avec une seule fenêtre active,
;;;la fenêtre peut être délimitée, son scu peut être quelconque, avec une rotation par exemple.
;;;l'echelle de la fenêtre n'a pas d'importance.
;;;régler le tracé sur plot2pdf, echelle de tracé 1/1, centrer le tracé, c'est obligatoire !
;;;le format de papier n'importe pas, mais la commande ne tracera pas plus que le format choisi
;;;verifier que l'onglet se met bien à jour: l'aspect doit être identique à l'aperçu, cntré sur la zone à tracer.
;;;si l'onglet n'est pas à jour, il faut changer de format pour qu'il se recentre, c'est impératif !
;;;lancer Vp2Tif, sélectionner le viewport, l'impression du pdf se fait automatiquement avec le nom par defaut "dessin-onglet.pdf"
;;;dans le répertoire du dessin.
;;;la commande Gdal a été placée dans le presse papier:
;;;Sous windows, Qgis, Osgeo4W Shell, coller la commande (simple clic droit)
;;;Elle génère un géotif du même nom.
;;;Ce géotif n'est pas compris par map, qui ne comprend que les fichier world,
;;;mais vous pouvez le tester dans Qgis.
;;;Les marges ne sont pas détourée, mais Gdal les place en canal alpha, le contour de l'image n'apparait pas.
;;;
;;;


(defun c:VP2TIF (/ ad ss en ent pl plist xy n vpbl vpur msbl msur ven vpno ok ps_list)
 (setq vp2tif-dpi 254);_correspond à la largeur width obtenue en multiplinat la largeur en mm par 10: 10*25.4 = 254 dpi
 (setq ad (vla-get-activedocument (vlax-get-acad-object)))
 (if (= (getvar "tilemode") 0)
   (progn
     (if (= (getvar "cvport") 1)
       (progn
         (if (setq ss (ssget '((0 . "VIEWPORT"))))
           (progn
             (setq en (ssname ss 0)
                     ent (entget en)
                   vpno (dxf 69 ent)
             )
             (vla-Display (vlax-ename->vla-object en) :vlax-true)
             (vla-put-mspace ad :vlax-true)
             ; this to ensure trans later is working on correct viewport
             (setvar "cvport" vpno)
             (setq ok T)
           )
         )
       )
       (setq en (vlax-vla-object->ename (vla-get-activepviewport ad))
         ent (entget en)
             ok  T
       )
     )
     (if ok
       (progn
         (setq ven (vlax-ename->vla-object en))
         (if (/= 1 (logand 1 (dxf 90 ent))) ; detect perspective
           (if (= (vla-get-clipped ven) :vlax-false)
              (progn  ; not clipped
                  (vla-getboundingbox ven 'vpbl 'vpur)
		  (setq vpbl (vlax-safearray->list vpbl)
			vpur (vlax-safearray->list vpur)
			vpblPS vpbl ;_sauvegarde en coordonnées PaperSpace
			vpurPS vpur ;_sauvegarde en coordonnées PaperSpace
			vpulPS (list (car vpbl) (cadr vpur))
   			vpbl  (trans vpbl 3 2)
                        msbl  (trans vpbl 2 1)
                        msbl  (trans msbl 1 0)
                        vpur  (trans vpur 3 2)
                        msur  (trans vpur 2 1)
                        msur  (trans msur 1 0)
                        vpbr (list (car vpur) (cadr vpbl) 0)
                        msbr  (trans vpbr 2 1)
                        msbr  (trans msbr 1 0)
                        vpul (list (car vpbl) (cadr vpur) 0)
                        msul  (trans vpul 2 1)
                        msul  (trans msul 1 0)
                        plist (list (car msbl) (cadr msbl)
                                       (car msbr) (cadr msbr)
                                       (car msur) (cadr msur)
                                       (car msul) (cadr msul)
                                )
                   )
		;;(setq spy plist)
              )
              (progn  ; clipped
		(vla-getboundingbox ven 'vpbl 'vpur)
		  (setq vpbl (vlax-safearray->list vpbl)
			vpur (vlax-safearray->list vpur)
			vpblPS vpbl ;_sauvegarde en coordonnées PaperSpace
			vpurPS vpur ;_sauvegarde en coordonnées PaperSpace
			vpulPS (list (car vpbl) (cadr vpur)))

		;;ci dessous code original
                (setq pl (entget (dxf 340 ent))
                      plist (vla-get-coordinates
                              (vlax-ename->vla-object (dxf -1 pl))
                            )
                      plist (vlax-safearray->list (vlax-variant-value plist))
                      n     0
                      pl    nil
                )
                (repeat (/ (length plist) 2)
                  (setq xy (trans (list (nth n plist) (nth (1+ n) plist)) 3 2)
                        xy  (trans xy 2 1)
                        xy  (trans xy 1 0)
                        pl (cons (car xy) pl)
                        pl (cons (cadr xy) pl)
                        n  (+ n 2)
                  )
                )
               ;; (setq spy (setq plist (reverse pl)))
              )
           )
         )
         (setq width (dxf 40 ent)
                 height (dxf 41 ent)
         )
         (princ (strcat "Size of the vieport in mm: " (rtos width 2 2) " x " (rtos height 2 2) "\n"))


	 (setq chem (getvar "dwgprefix")
	       dwg (vl-filename-base (getvar "dwgname"))
	       oLay (get_aclayout)
	       eLay (vlax-vla-object->ename oLay)
	       nom (vla-get-name oLay))
	 (setq formX (getpropertyvalue elay "PlotPaperSize/X" )
	       formY (getpropertyvalue elay "PlotPaperSize/Y" ))
	 (princ (strcat "Size of the layout in mm: " (rtos formX 2 2) " x " (rtos formY 2 2) "\n"))



;;;  P1b----------------P2b
;;;  |	   Layout
;;;  |	  P1--------P2
;;;  |	  | Viewport
;;;  |	  P3
;;;  p3b


	 (setq cvpPS (list (/ (+ (car vpblPS) (car vpurPS)) 2.0)
			   (/ (+ (cadr vpblPS) (cadr vpurPS)) 2.0))
	       )
	 
	 	 (setq p3b (list (- (car cvpPS) (/ formX 2.0))
				 (- (cadr cvpPS) (/ formY 2.0))
			   )
		       p1b (list (- (car cvpPS) (/ formX 2.0))
				 (+ (cadr cvpPS) (/ formY 2.0))
				 )
		       p2b (list (+ (car cvpPS) (/ formX 2.0))
				 (+ (cadr cvpPS) (/ formY 2.0))
			   )
		 )
	 
	 (setq margX ( / (- formX width) 2.0)
	       margY ( / (- formY height) 2.0)
	       )


	   (setq scg1b (trans p1b 3 2);; from Paper space DCS to DCS of the current model space viewport.
		 scg1b (trans scg1b 2 1)
		 scg1b (trans scg1b 1 0)
		 scg2b (trans p2b 3 2)
		 scg2b (trans scg2b 2 1)
		 scg2b (trans scg2b 1 0)
		 scg3b (trans p3b 3 2)
		 scg3b (trans scg3b 2 1)
		 scg3b (trans scg3b 1 0)
	   )

	       
	(setq lscg (list scg1b scg2b scg3b))       
	 

	 (setq lcoord (strcat "1,\"POLYGON(("
			(rtos (nth 0 plist) 2 2) " " (rtos (nth 1 plist) 2 2) "," (rtos (nth 2 plist) 2 2) " " (rtos (nth 3 plist) 2 2) "," (rtos (nth 4 plist) 2 2) " " (rtos (nth 5 plist) 2 2) "," (rtos (nth 6 plist) 2 2) " " (rtos (nth 7 plist) 2 2) "," (rtos (nth 0 plist) 2 2) " " (rtos (nth 1 plist) 2 2)
			      "))\""))

	 ;;(princ lcoord)

 	 (print)
	 (print)
(plot_to_file_Clayout (strcat chem dwg "-" nom ".pdf") )
         (princ
	   (setq cmd 
             (strcat 
                 "gdal_translate --config GDAL_PDF_DPI 600 --config GDAL_PDF_BANDS 4 --config GDAL_CACHEMAX 1024 -co NUM_THREADS=ALL_CPUS -co COMPRESS=DEFLATE -co ZLEVEL=9 -co PREDICTOR=2 -co TILED=YES "
                 "-outsize " (rtos (* formX 10) 2 2) " 0 "
                 "-a_srs EPSG:" (prj2epsg (ade_projgetwscode)) " "
                 "-gcp 0 0 " (rtos (car scg1b) 2 2) " " (rtos (cadr scg1b) 2 2) " ";_p1
                 "-gcp " (rtos (* formX 10) 2 2) " 0 " (rtos (car scg2b) 2 2) " " (rtos (cadr scg2b) 2 2) " ";_p2
                 "-gcp 0 " (rtos (* formY 10) 2 2) " " (rtos (car scg3b) 2 2) " " (rtos (cadr scg3b) 2 2) " ";_p3
                  "\"" chem dwg "-" nom ".pdf" "\"" " " "\"" chem dwg "-" nom ".tif" "\""
             )
		 )
         )
	 (_SetClipBoardText  cmd)
       )
     )
   )
 )
 (if ss (vla-put-mspace ad :vlax-false)) ; equal (command "._pspace"))
 (princ)
)


(vl-load-com)
;;
;;; original code from By Jimmy Bergmark (vp-outline.lsp: https://www.cadtutor.net/forum/topic/1173-modelspace-coordinates-from-paperspace-viewports)
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved

(defun dxf (n ent) (cdr (assoc n ent)))
;;
(defun ax:List->VariantArray (lst)
 (vlax-Make-Variant
   (vlax-SafeArray-Fill
     (vlax-Make-SafeArray
       vlax-vbDouble
       (cons 0 (- (length lst) 1))
     )
     lst
   )
 )
)
;;**************************************************************************
;§/map/correspondance prj autocad - EPSG / prjAcad
;;(prj2epsg "RGF93.CC42") -> "3942"
;;
(defun prj2epsg (prjAcad /)

  (cadr	(assoc prjAcad
	       '(
		 ("RGF93.CC42" "3942")
		 ("RGF93.CC43" "3943")
		 ("RGF93.CC44" "3944")
		 ("RGF93.CC45" "3945")
		 ("RGF93.CC46" "3946")
		 ("RGF93.CC47" "3947")
		 ("RGF93.CC48" "3948")
		 ("RGF93.CC49" "3949")
		 ("RGF93.CC50" "3950")
		 ("Lambert93" "2154")
		)
	)
  )
)
;;**************************************************************************
;§/traces/retourne l'objet de l'onglet courant / none
;;
(defun get_aclayout ( / acadObject  acadDocument) 
  (setq acadObject (vlax-get-acad-object)) ;;accède au début de objets?
  (setq acadDocument (vla-get-ActiveDocument acadObject)) ;;accède au document actif
  (vlax-Get-property acadDocument 'ActiveLayout)
)

; ***************************************************************************
;§/divers/ incremente un point en x et en y/pt ix iy
; (pw_prp '(x y) incx incy )
; (pw_prp '(1 2) 2 1 )-> (3 3)
;
(defun pw_prp ( pt ix iy )
 (setq ix (+ ix (car pt))
       iy (+ iy (cadr pt))
 )
 (list ix iy)
)
;;**************************************************************************
;§/traces/trace la présentation courante dans u nfichier /none
;;(plot_to_file_Clayout (strcat chem dwg "-" nom ".pdf") )
;;
(defun plot_to_file_Clayout
       (plot-file / _acadObject acadDocument oplot AddedLayouts)
  (setq acadObject (vlax-get-acad-object))
  (setq acadDocument (vla-get-ActiveDocument acadObject))
  (setq oPlot (vla-get-plot acadDocument))
  (setq	AddedLayouts
	 (vlax-make-safearray vlax-vbString (cons 0 0))
  )


  (vlax-safearray-put-element
    AddedLayouts
    0
    (vla-get-Name (get_aclayout))
  )
  (vla-SetLayoutsToPlot oPlot AddedLayouts)
  (vlax-invoke-method oPlot 'PlotToFile plot-file)
)
;;**************************************************************************
;;§/vlax/envoi un texte au presse papier / text
;;(_SetClipBoardText "mon text")


(defun _SetClipBoardText ( text / htmlfile result )

    ;;  Caller's sole responsibility is to pass a
    ;;  text string. Anything else? Pie in face.

    ;;  Attribution: Reformatted version of
    ;;  post by XShrimp at theswamp.org.
    ;;
    ;;  See http://tinyurl.com/2ngf4r.

    (setq result
        (vlax-invoke
            (vlax-get
                (vlax-get
                    (setq htmlfile (vlax-create-object "htmlfile"))
                   'ParentWindow
                )
               'clipboardData
            )
           'SetData
            "Text"
            text
        )
    )

    (vlax-release-object htmlfile)

    text

)

 

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

Hello

1) Vu de loin, ton outil a l'air SYMPA !

2) PERSO: depuis longtemps je genere des PNG/JPG en haute resolution que je re-insere au bon XY avec la bonne echelle (Facile avec ALIGN)

3) Ensuite avec ces Images correctement inserees, je genere les fichiers JGW/PGW grace a l'excellente routine "GBTFW" de Bruno (Bonuscad)

4) Apres ayant des JPG+JGW ou PNG+PGW, n'importe quel outil SIG les traite sans probleme !

La Sante, Bye, lecrabe

 

 
;;  
;; Routine: GBTFW_v2 par Bonuscad (Bruno) 
;; 
;; Suite a Demande de Patrice BRAUD
;; 
;; 1) Traitement des Images TIF/JPG/PNG 
;;    ET Generation des TFW/JGW/PGW ET NON PAS seulement du TFW
;; 
;; 2) Traitement de N Images TIF/JPG/PNG ET NON PAS de 1 Image
;; 
;; 3) Support des blancs/espaces et caracteres speciaux/accentues
;; 
;;
;; 4) v2.1 : Micro-Micro-Modif :  Trt des ECW et generation d un fichier .TXT 
;;    Ajout de la ligne :         ((eq typ ".ECW") ".TXT") 
;; 
;;  
;; GBTFW.LSP v1.0 pour une IMAGE DEJA INSEREE au BON endroit en XY 
;; Creation d'un fichier ".TFW" par GB le 10/11/03 
;; Si Image inseree en JPG (et non pas en TIF), renommer le TFW genere en JGW ! 
;; Mirroir en Y des Parametres AutoCAD 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ATTENTION : en v1.0 SVP Images dans un chemin SANS caractere special NI blanc/espace !! 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;; 
;; Micro-Modif par Patrice BRAUD pour AutoCAD/MAP/CIVIL 2006 et plus 
;; Micro-Modif par Patrice BRAUD pour AutoCAD/MAP/CIVIL 2010 et plus 
;; 

;; 
;; --- Interrogation Entite/Objet en Lisp ---
;; (entget (car (entsel)) '("*"))
;; 

(defun c:GBTFW_v2 ( / index ent ent340 typ ext_file ef ftfw X10 Y10 X11 Y11 X12 Y12 X13 Y13 line1 line2 line3 line4 line5 line6)

;;; Pour AutoCAD/MAP       2000-2005 par GB vs Originale 
;;;  (command "_imageframe" "_on" ) 

;;; Pour AutoCAD/MAP/CIVIL 2006-2009 par PB vs 1.00 
;;;  (command "_imageframe" "1" ) 

;;; Pour AutoCAD/MAP/CIVIL 201X      par PB vs 1.01 
     (command "_imageframe"  2  ) 


  (princ "\nGeneration du Fichier de Calage TFW/JGW/PGW depuis UNE/DES Image(s) quelconque(s) inseree(s) ... ")
  (princ "\nSelectionnez une ou plusieurs Images ") 

  (setq js
    (ssget 
      (list
        '(0 . "IMAGE")
        (cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
        (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model"))
      )
    )
  ) 

  (cond
    (js
      (repeat (setq n (sslength js))
        
        (setq
          index ""
          ent (entget (ssname js (setq n (1- n))))
          ent340 (cdr (assoc 1 (entget (cdr (assoc 340  ent)))))
          typ (strcase (substr ent340 (- (strlen ent340) 3)))
          ext_file
          (cond
            ((eq typ ".TIF") ".TFW")
            ((eq typ ".PNG") ".PGW")
            ((eq typ ".JPG") ".JGW") 
            ((eq typ ".ECW") ".TXT") 

            (T nil)
          )
        ) 

        (cond
          (ext_file
            (setq 

;;            ef (strcat (substr ent340 1 (- (strlen ent340) 4)) index ".TFW") 
              ef (strcat (substr ent340 1 (- (strlen ent340) 4)) index ext_file)

              ftfw (open ef "w")
              X10 (car (cdr (assoc 10 ent)))
              Y10 (cadr (cdr (assoc 10 ent)))
              X11 (car (cdr (assoc 11 ent)))
              Y11 (cadr (cdr (assoc 11 ent)))
              X12 (car (cdr (assoc 12 ent)))
              Y12 (cadr (cdr (assoc 12 ent)))
              X13 (car (cdr (assoc 13 ent)))
              Y13 (cadr (cdr (assoc 13 ent)))
              line1 (rtos X11 2 9)
              line2 (rtos Y11 2 9)
              line3 (rtos (* -1 X12) 2 9)
              line4 (rtos (* -1 Y12) 2 9)
              line5 (rtos (+ X10 (* X12 Y13)) 2 9)
              line6 (rtos (+ Y10 (* Y12 Y13)) 2 9)
            )
            (write-line line1 ftfw)
            (write-line line2 ftfw)
            (write-line line3 ftfw)
            (write-line line4 ftfw)
            (write-line line5 ftfw)
            (write-line line6 ftfw)
            (close ftfw)
          )
        )
      )
    )
  )
  (prin1)
)

 

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Salut vieux Crabe,

C'est sur que cette méthode est plus simple, car les images sont plus bavardes que les layout, et les fichiers tfw/jpw/pgw ne sont pas bien compliqués à générer.

Mais je trouve baroque de créer une image à partir d'un dwg, et de la recaler dans ce même dwg.

Qgis sait aussi bien faire ça, donc si je dois recaler je le ferai dans qgis, qui en plus à un plug-in qui géoréférence les images (la même chose que GBTFW_v2)

Mon but était de ne pas avoir créer de format personnalisé, de pouvoir générer un projet Qgis (pour enquête terrain avec une tablette)  très rapidement à partir de n'importe projet Autocad, même s'il est composé d'images, de pdf et de références externes.

Comme le but est d'immédiatement l'importer dans Qgis, je pas du pricnipe que Qgis est installé, donc Osgeo4W Shell également.

Par contre je ne gère pas encore détourage (en fait je n'en ai pas besoin) mais pour la beauté du geste il faudra que je m'en occupe !

A ta santé le retraité !

Gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

Hello Le Bas Savoyard

1) OUI je suis OK avec toi

2) Tiens la semaine derniere, j'etais a Tignes Le Lac, pour faire decouvrir la vraie Neige et le Ski a mes 2 petits enfants (Paul 5 ans et Lily 2.5 ans)

Paul a "super accroche" le ski ... Lily pas du tout : trop jeune je pense ... On fera mieux l'annee prochaine !

3) Une semaine superbe avec un temps Tip-Top ...

La Sante, Bye, lecrabe de La Basse-Loire

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Tignes le lac,

toute ma jeunesse ... Un cadre majestueux, le glacier et l'incroyable aiguille percée.

Et maintenant j'y travaille sur un super projet avec une passerelle himalayenne de 200m de long au dessus du lac du Chevril

(le lac du barrage) ça sera la future attraction de la station...

a+

Gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

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é