Aller au contenu

[résolu] Coordonnées Lambert


philsogood

Messages recommandés

Salut.

 

Pour faire simple, j'ai eu aussi le même problème face à tous ces DXF...

 

J'ai donc fais un petit code en lisp, très simple d'utilisation.

 

1. tu décompresses tout les BZ2 et TAR, de façon à te retrouver avec tous les DXF dans un même répertoire,

2. tu ouvres un nouveau DWG et tu l'enregistre dans ce répertoire.

3. tu lances ma routine en tapant : "InsCadDxf".

 

Voici le code :

;;; Insert les feuilles du Cadastre en DXF
(defun c:InsCadDXF (/ Select ent n a b RepDXF ListFich)
 (princ "\nDéveloppé par Denis H (2.0)")
 (princ "\nInitialisation du dessin...'")
   (if (/= (vlax-ldata-get "Cadastre" "Norme") "Oui")
   (progn (vlax-ldata-put "Cadastre" "Norme" "Oui") (c:ConfigCad))
 ) ;_ Fin de if
 (setq RepDXF (getvar "dwgprefix"))
 (setq ListFich (vl-directory-files RepDXF "*.dxf"))
 (setq a 0)
 (while (/= (nth a ListFich) nil) (setq a (+ a 1)))
 (setq b 0)
 (while (/= (nth b ListFich) nil)
   (princ (strcat "\nProgression : " (rtos (+ b 1) 2 0) "/" (rtos a 2 0) "\n"))
   (command "_insert" (strcat RepDXF (nth b ListFich)) '(0 0 0) 1 1 0)
   (command "_explode" "_last")
   (command "-purger" "bl" (substr (nth b ListFich) 1 (- (strlen (nth b ListFich)) 4)) "n")
   (command "zoom" "et")
   (setq b (+ b 1))
 ) ;_ Fin de while
 (Steal "Cadastre.dwg" (list (list "Layers" (list "*"))))
 (c:ConfCadastre)
 (command "-calque" "e" "CAD_BATI_DUR_HACH" "")
 (setq n 0)
 (if (setq Select (ssget "_X"
                         (list (cons 0 "LWPOLYLINE") (cons 8 "CAD_BATI_DUR") (cons -4 "&") (cons 70 1)) ;_ Fin de list
                  ) ;_ Fin de ssget
     ) ;_ Fin de setq
   (while (setq ent (ssname Select n)) (command "_hatch" "solid" ent "") (setq n (1+ n))) ;_ Fin de while
 ) ;_ Fin de if
 (command "_qsave")
 (command "-calque" "e" "CAD_BATI_LEG_HACH" "")
 (setq n 0)
 (if (setq Select (ssget "_X"
                         (list (cons 0 "LWPOLYLINE") (cons 8 "CAD_BATI_LEG") (cons -4 "&") (cons 70 1)) ;_ Fin de list
                  ) ;_ Fin de ssget
     ) ;_ Fin de setq
   (while (setq ent (ssname Select n)) (command "_hatch" "solid" ent "") (setq n (1+ n))) ;_ Fin de while
 ) ;_ Fin de if
 (command "_qsave")
 (princ)
) ;_ Fin de defun

 

Je reste à l'écoute, au cas...

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)

Lien vers le commentaire
Partager sur d’autres sites

Elle est OÙ la routine/fonction STEAL de Lee-Mac sans doute !?

Salut à toi, Ô Décapode...

 

Effectivement, tu as raison, et je m'aperçois que j'utilise souvent Steal qui est bien de LeeMac...

 

Voici le code corrigé pour fonctionner seul :

;;; Insert tous les DXF du répertoire courant du dessin ouvert.
(defun c:InsCadDXF (/ a b RepDXF ListFich)
 (princ "\nDéveloppé par Denis H (2.0)")
 (setq RepDXF (getvar "dwgprefix"))
 (setq ListFich (vl-directory-files RepDXF "*.dxf"))
 (setq a 0)
 (while (/= (nth a ListFich) nil) (setq a (+ a 1)))
 (setq b 0)
 (while (/= (nth b ListFich) nil)
   (princ (strcat "\nProgression : " (rtos (+ b 1) 2 0) "/" (rtos a 2 0) "\n"))
   (command "_insert" (strcat RepDXF (nth b ListFich)) '(0 0 0) 1 1 0)
   (command "_explode" "_last")
   (command "-purger" "bl" (substr (nth b ListFich) 1 (- (strlen (nth b ListFich)) 4)) "n")
   (command "zoom" "et")
   (setq b (+ b 1))
 ) ;_ Fin de while
  (command "_qsave")
 (princ)
) ;_ Fin de defun

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)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

pour ma part j'utilise la routine IGIR de Vincent P : MAGIQUE !

 

;;----------------------------------------------------------------------------------;;;;--------------------------------- Par Vincent P. ---------------------------------;;
;; Insérer massivement des DXF sous la forme de blocs, et dans un calque spécifique ;;
;;------------------- !! Nécessité l'utilisation de IGIR.DCL !! --------------------;;
;;----------------------------------------------------------------------------------;;
(vl-load-com)
;;-
;; Routine insdxf
;;-
(defun insdxf ( chem / nom ssb n)
 (setq nom (vl-filename-base chem)
       n 0)
 (if (= nil (tblsearch "layer" nom))
   (command "FCALQUE" "Nouv" nom ""))
 (if (setq ssb (ssget "_X" (list (cons 2 nom))))
   (repeat (sslength ssb)
     (entdel (ssname ssb n))
     (setq n (1+ n))
     ))
 (if (tblobjname "BLOCK" nom)
   (command "-PURGER" "BLOCS" nom "NON")
   )
 (setvar "clayer" nom)
 (command "-INSERER" chem '(0 0 0) 1 1 0)
 (princ)
 ); /defun

;;-
;; Fonction principale
;; IGIR
;;-
(defun c:IGIR (/ chem ddiag index start-lst dcl_id i n lst-nom lst lay)
 ;;;création de la liste qui sera affichée
 (setq chem (getvar "dwgprefix")
       start-lst (ACAD_STRLSORT (vl-directory-files chem "*.dxf" 1))
       lay (getvar "clayer")
       n 0)
 ;;;chargement du fichier DCL
 (if (not (setq dcl_id (load_dialog "IGIR.dcl")))
   (progn ;Si DCL non chargé
     (alert "Le fichier DCL n'a pas été trouvé !")
     (exit)
     )
   (progn ;Si DCL chargé
     (if (not (new_dialog "IGIR" dcl_id))
       (progn ;Si dialogue non présent
         (alert "La définition n'a pas été trouvée dans le fichier DCL !")
         (exit)
         )
       (progn ;Si dialogue présent
         (start_list "LST")
         (mapcar 'add_list start-lst)
         (end_list)
         (action_tile "cancel" "(done_dialog 1)")
         (action_tile "accept" "(done_dialog 2)")
         (action_tile "LST" "(setq index $value)")
         ;;;Affichage de la case
         (setq ddiag (start_dialog))
         (unload_dialog dcl_id)
         (if (= ddiag 1);; Si bouton annulé choisi :
           (alert "\n Vous êtes sorti sans rien choisir !")
           )
         (if (= ddiag 2);;;Si bouton OK choisi :
           (progn
             (setq index (read (strcat "(" index ")")))
             (foreach i index
               (insdxf (strcat chem (nth i start-lst)))
               (setq n (+ 1 n))
               )
             (alert (strcat "\n" (itoa n) " DXF ont étés importés\nsous la forme de blocs!"))
             )
           )
         )
       )
     )
   )
 (setvar "clayer" lay)
 (princ)
 );/defun

(setq nom_lisp "IGIR")
(if (/= app nil)
 (if (= (strcase (substr app (1+ (- (strlen app) (strlen nom_lisp))) (strlen nom_lisp))) nom_lisp)
   (princ (strcat "..." nom_lisp " chargé."))
   (princ (strcat "\n" nom_lisp ".LSP Chargé.....Tapez " nom_lisp " pour l'éxecuter.")))
 (princ (strcat "\n" nom_lisp ".LSP Chargé......Tapez " nom_lisp " pour l'éxecuter.")))
(setq nom_lisp nil)
(princ) 

COME

 

La vie sans musique est tout simplement une erreur, une fatigue, un exil. »

Friedrich Nietzsche

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Il a l’œil sur tout ce Maître Décapode... ;)

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)

Lien vers le commentaire
Partager sur d’autres sites

Hello Mr COME

 

Et si tu faisais aussi un Copier/Coller de IGIR.DCL !

Ca pourrait aider !?

 

Merci d'avance, Bye, lecrabe "triste"

 

Voilà, voilà ! Toutes mes excuses pour cet oubli ! Aïe pas sur la tête ! tongue.giflaugh.gif

 

 

IGIR : dialog {

label = "IGIR Multy";

// Titre de la case

: column {

: row {

: boxed_column {label ="Choisissez les DXF";

: list_box {

key = "LST";

height = 15;

width = 50;

multiple_select = true;

fixed_width = false;

}

}

}

ok_cancel;

}

}

COME

 

La vie sans musique est tout simplement une erreur, une fatigue, un exil. »

Friedrich Nietzsche

Lien vers le commentaire
Partager sur d’autres sites

merci Olivier, très pratique ce site.... j'étais apssé à cote

concernant les lisps je n'en vois aps trop l'intéret

comme je le disais les ficheirs sont zippés deux fois, il me faudrait donc tout dizippé, pour la commune que je cherche il y a 29 ficheirs à dézippé deux fois soit 58 manip autant tapé juste tout de suite!! ;)

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

Salut Phil.

 

Tu peux dé-zippé tous les .bz2 et ensuite, tous les .tar en quatre clics...

 

Denis...

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)

Lien vers le commentaire
Partager sur d’autres sites

Salut Phil.

 

Il me semble que 7zip décompressera les .bz2 et qu'il faudra dé-zippé ensuite les .tar, mais ce n'est pas un problème, tu décompresse tout en une seule fois, ça devrait pouvoir passer.

 

WinRar dé-zippe tout d'un coup...

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)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

En utilisant Winrar, la décompression se fait en 1 fois, on obtient le DXF directement.

On peut aussi sélectionner plusieurs fichiers bz2, puis click droit "Extraire ici".

 

Olivier

 

OK merci pour l'info, je testerai sur le prochain dossier !

COME

 

La vie sans musique est tout simplement une erreur, une fatigue, un exil. »

Friedrich Nietzsche

Lien vers le commentaire
Partager sur d’autres sites

sinon avec geoportail afficher la couche parcellaire express(PCI)et en cliquant sur la parcelle on obtient toutes les infos à savoir : N° de la parcelle, N° de la feuille, section cadastrale et codde insee, bien plus rapide a mon avis que toute vos manips de decompression...sauf si le site en question est sur plusieurs feuilles! ;)

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é