CADxp: Inserer Plusieurs DXF - CADxp

Aller au contenu

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

Inserer Plusieurs DXF

#1 L'utilisateur est hors-ligne   yb1971 

  • ceinture orange
  • Groupe : Membres
  • Messages : 27
  • Inscrit(e) : 12-octobre 11

Posté 17 octobre 2018 - 13:23

Bonjour,
je suis à la recherche d'une personne qui pourrais me faire un LISP voir deux ou les deux en un!
dans un premier temps:

Il s'agit d'insérer plusieurs fichiers .dxf qui sont des planches de cadastres pour en faire un fichier .dwg
le point d'insert est tjrs 0.0.0
pas de mis à l'échelle
pas de rotation..

purger
et enregistrer.
j'ai trouver des lignes de programmation sur le net
______________________________________________________________________________________________
(defun c:Test (/ directory files)
(setq directory "C:\Users\vpeter\Documents\DXF")
(if (setq files (vl-directory-files directory "*.dxf" 1))
(foreach dxf files
(command "_.-insert"
(strcat directory "\\" dxf)
'(0. 0. 0.)
""
""
""
)
)
(princ "\n No DXF files found into that folder !")
)
(princ)
)
________________________________________________________________________________________

Mais je n'y arrive pas cela e dit erreur de syntaxe quand j'essai de lancer le lisp!!!

Et dans un deuxième temps (c'est pour ça que j'ai mis ce sujet dans autocad 3d) je voudrais aussi automatiser le passage du LAMBERT93 au CC48.
cette fonction es possible que sur autocad3D il me semble en passant par le volet des tâches et lui demandant d'exécuter une requête.
Donc je sais pas si on peux faire un Lisp pour ça??

Merci d'avance
0

#2 L'utilisateur est hors-ligne   Demixav 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 675
  • Inscrit(e) : 28-mars 12
  • LocationLa pampa du Gard

Posté 17 octobre 2018 - 13:55

Salut,

Pour ton soucis d'insertion de DXF, je ne peux pas t'aider...

Par contre, pour le changement de système, il existe un lisp projectchange.lsp
Je ne l'ai jamais testé mais il est là : http://cadxp.com/top...__1#entry234231

Une question par curiosité... pourquoi vouloir passer du lambert93 (la projection avec laquelle tout le monde devrait bosser il me semble!) au CC48?

Xav
AutoCad Map 3D 2011 - Covadis v16.0d
Windows 7 - 64b
0

#3 L'utilisateur est hors-ligne   yb1971 

  • ceinture orange
  • Groupe : Membres
  • Messages : 27
  • Inscrit(e) : 12-octobre 11

Posté 17 octobre 2018 - 14:10

Voir le messageDemixav, le 17 octobre 2018 - 13:55 , dit :

Salut,

Pour ton soucis d'insertion de DXF, je ne peux pas t'aider...

Par contre, pour le changement de système, il existe un lisp projectchange.lsp
Je ne l'ai jamais testé mais il est là : http://cadxp.com/top...__1#entry234231

Une question par curiosité... pourquoi vouloir passer du lambert93 (la projection avec laquelle tout le monde devrait bosser il me semble!) au CC48?

Xav

Merci pour ton Lips, je vais essayer ça.
Pour la conversion c'est parce que en TOPO ça travail en CC48!
0

#4 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4573
  • Inscrit(e) : 20-juin 03

Posté 17 octobre 2018 - 14:17

Bonjour,
Pour ce qui est écrit en rouge, double les anti-slash: (barre oblique inversée :\\), ou remplace simplement par un slash (barre oblique : /) et ça devrait fonctionner

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

#5 L'utilisateur est hors-ligne   yb1971 

  • ceinture orange
  • Groupe : Membres
  • Messages : 27
  • Inscrit(e) : 12-octobre 11

Posté 17 octobre 2018 - 14:37

Voir le messagebonuscad, le 17 octobre 2018 - 14:17 , dit :

Bonjour,
Pour ce qui est écrit en rouge, double les anti-slash: (barre oblique inversée :\\), ou remplace simplement par un slash (barre oblique : /) et ça devrait fonctionner


Ca change rien Tjrs erreur de syntaxe!!

et sinon pour l'autre lips, je n'y arrive pas non plus.

Je m'y prend peut-être comme un manche...
normaement en faisant juste un copier coller des lignes de commandes dans autocad cela fonctionne!
sinon tu le copie dans un fichier du bloc note et tu changes l'extention en .lsp!
on est bien d'accord?

Merci
0

#6 L'utilisateur est hors-ligne   Demixav 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 675
  • Inscrit(e) : 28-mars 12
  • LocationLa pampa du Gard

Posté 17 octobre 2018 - 14:55

Voir le messageyb1971, le 17 octobre 2018 - 14:37 , dit :

Ca change rien Tjrs erreur de syntaxe!!

et sinon pour l'autre lips, je n'y arrive pas non plus.

Je m'y prend peut-être comme un manche...
normaement en faisant juste un copier coller des lignes de commandes dans autocad cela fonctionne!
sinon tu le copie dans un fichier du bloc note et tu changes l'extention en .lsp!
on est bien d'accord?

Merci



Heu... les vrais lispeurs te répondront mieux que moi, mais si tu copies colle ton code tel qu'il est présenté dans ton post, ça ne fonctionnera pas sans "la mise en forme" du lisp.
Les lignes du codes d'un LISP ne sont pas toutes "alignées" sur le début d'une ligne, il y a une sorte de tabulation à chaque fois! en espérant avoir été clair...

Bon courage!
Xav
AutoCad Map 3D 2011 - Covadis v16.0d
Windows 7 - 64b
0

#7 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4573
  • Inscrit(e) : 20-juin 03

Posté 17 octobre 2018 - 15:01

J'ai fais un copier coller de ton code, ajuster la variable directory à un de mes chemin valable (en doublant les barres inversées) et il fonctionne sur ma bécane....
Donc pas de réponse!
Et pour l'autre lisp proposé, il faut un Autocad Map (ou peut être Civil) pour pouvoir l'utiliser: il fait appel à des commande propre à ces produits verticaux.

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

#8 L'utilisateur est hors-ligne   yb1971 

  • ceinture orange
  • Groupe : Membres
  • Messages : 27
  • Inscrit(e) : 12-octobre 11

Posté 17 octobre 2018 - 15:23

Voir le messagebonuscad, le 17 octobre 2018 - 15:01 , dit :

J'ai fais un copier coller de ton code, ajuster la variable directory à un de mes chemin valable (en doublant les barres inversées) et il fonctionne sur ma bécane....
Donc pas de réponse!
Et pour l'autre lisp proposé, il faut un Autocad Map (ou peut être Civil) pour pouvoir l'utiliser: il fait appel à des commande propre à ces produits verticaux.



je ne comprend ce que tu me dit!!!
"" ajuster la variable directory à un de mes chemin valable (en doublant les barres inversées)""

je suis sur autocad map
0

#9 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4573
  • Inscrit(e) : 20-juin 03

Posté 17 octobre 2018 - 15:33

Voir le messageyb1971, le 17 octobre 2018 - 15:23 , dit :

je ne comprend ce que tu me dit!!!
"" ajuster la variable directory à un de mes chemin valable (en doublant les barres inversées)""

je suis sur autocad map


Oulà!!
Je dis que la ligne
(setq directory "C:\Users\vpeter\Documents\DXF") Dossier qui n'existe pas chez moi!
Je l'ai modifiée en par exemple
(setq directory "I:\\Depart\\BD_PARCELLAIRE")
Chemin qui est propre à mon poste et dossier que je veux traiter.

C'est plus clair?

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

#10 L'utilisateur est hors-ligne   yb1971 

  • ceinture orange
  • Groupe : Membres
  • Messages : 27
  • Inscrit(e) : 12-octobre 11

Posté 17 octobre 2018 - 15:36

Voir le messagebonuscad, le 17 octobre 2018 - 15:33 , dit :

Oulà!!
Je dis que la ligne
(setq directory "C:\Users\vpeter\Documents\DXF") Dossier qui n'existe pas chez moi!
Je l'ai modifiée en par exemple
(setq directory "I:\\Depart\\BD_PARCELLAIRE")
Chemin qui est propre à mon poste et dossier que je veux traiter.

C'est plus clair?


Si Si excuse moi et merci ça marche.
Merci encore
0

#11 L'utilisateur est hors-ligne   Olivier Eckmann 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1151
  • Inscrit(e) : 29-décembre 11
  • LocationLongjumeau (91)

Posté 17 octobre 2018 - 17:29

Bonjour,

pourquoi ne pas télécharger directement les planches du cadastre en projection CC plutôt que Lambert93?
Opendata - DGFiP


Olivier
0

#12 L'utilisateur est hors-ligne   Vincent P. 

  • ceinture orange
  • Groupe : Membres
  • Messages : 20
  • Inscrit(e) : 08-décembre 16
  • Location44

Posté 18 octobre 2018 - 08:10

Hé hé hé,

J'ai fait un code (qui marche bien) pour importer des DXF sous forme de bloc :

DCL :
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;
 }
}



Lisp :
;;----------------------------------------------------------------------------------;;
;;--------------------------------- 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)



Les DXF sont choisis par l’utilisateur, parmi les DXF contenu dans le dossier dans lequel est enregistré le DWG où vous exécutez la commande.
Il faut donc créer au préalable un fichier DWG dans le même dossier utilisé pour ranger les DXF des girations, et dans ce DWG utiliser la commande IGIR.

Pensez à nommer proprement vos DXF car ces noms seront réutilisés comme noms de blocs et de calques.



Si ça peut aider!
Vincent P.
Lispeur débutant!
0

#13 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4573
  • Inscrit(e) : 20-juin 03

Posté 18 octobre 2018 - 09:32

Voir le messageOlivier Eckmann, le 17 octobre 2018 - 17:29 , dit :

Bonjour,

pourquoi ne pas télécharger directement les planches du cadastre en projection CC plutôt que Lambert93?
Opendata - DGFiP


Olivier


Et je dirais même plus que si on a un AutocadMap pourquoi ne pas prendre le format Json afin de bénéficier des données d'objet.Je l'ai fait pour mon département entier et au moins je peut faire des requêtes dessus.
J'ai d'abord utiliser Map shaper pour convertir le format Json à un format Shape car Autocad Map ne connait pas ce format Json et ensuite avec des scripts et des lisps par ci par là, j'ai monté ma base cadastrale en une journée. Bien sur, je n'ai pas les propriétaires...

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

#14 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8056
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 18 octobre 2018 - 10:24

Hello

Et si vous avez un AutoCAD MAP (ou CIVIL) Et aussi un Covadis alors la commande d Import en EDIGEO en Mode MAP + MPOLYGON, vous donnera directement le Cadastre avec des ODs de MAP...

Bye, lecrabe
Autodesk Expert Elite Team
0

#15 L'utilisateur est hors-ligne   Demixav 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 675
  • Inscrit(e) : 28-mars 12
  • LocationLa pampa du Gard

Posté 31 octobre 2018 - 16:24

Voir le messageVincent P., le 18 octobre 2018 - 08:10 , dit :

Hé hé hé,

J'ai fait un code (qui marche bien) pour importer des DXF sous forme de bloc :

DCL :
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;
 }
}



Lisp :
;;----------------------------------------------------------------------------------;;
;;--------------------------------- 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)



Les DXF sont choisis par l’utilisateur, parmi les DXF contenu dans le dossier dans lequel est enregistré le DWG où vous exécutez la commande.
Il faut donc créer au préalable un fichier DWG dans le même dossier utilisé pour ranger les DXF des girations, et dans ce DWG utiliser la commande IGIR.

Pensez à nommer proprement vos DXF car ces noms seront réutilisés comme noms de blocs et de calques.



Si ça peut aider!
Vincent P.



Salut Vincent!

Si ça peut aider?! ça m'a sauvé oui !!! :)
Mercu beaucoup pour le LISP !!! Nickel !!!

Bon week!
Xav
AutoCad Map 3D 2011 - Covadis v16.0d
Windows 7 - 64b
0

#16 L'utilisateur est hors-ligne   COME 

  • ceinture marron
  • Groupe : Membres
  • Messages : 270
  • Inscrit(e) : 16-septembre 13

Posté 05 novembre 2018 - 08:41

Bonjour,

comme DemiXav je pense que ton lisp peut moi aussi "me sauver", mais lorsque je lance IGIR j'ai en retour une boite de dialogue qui s'affiche avec "la définition n'a pas été trouvée dans le le fichier DCL !".

J'ai enregistré le fichier DCL et LISP dans le même répertoire, je charge le lisp IGIR, tape IGIR et boite de dialogue.

Qu'est-ce qu je rate ? Faut-il modifier une ligne de commande pour l'accès au fichier DCL ?

Je précise : totalement débutant, à part le lisp "talus 3D" je n'utilise jamais de lisp.

Merci pour votre aide.
COME

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

#17 L'utilisateur est hors-ligne   rebcao 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6963
  • Inscrit(e) : 25-août 04
  • LocationSELESTAT

  Posté 05 novembre 2018 - 08:51

Bonjour,

On peut également utiliser un SCRIPT ! Avec le SUPERAUTOSCRIPT de CADERIX...

Christian
Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger des Supports de Cours AutoCAD, des Outils AutoCAD...
cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
0

#18 L'utilisateur est hors-ligne   Demixav 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 675
  • Inscrit(e) : 28-mars 12
  • LocationLa pampa du Gard

Posté 05 novembre 2018 - 09:51

Salut Come,

le LISP et le DCL doivent avoir le même nom : IGIR
Avant de charger le LISP, le chemin du dossier dans lequel ils se trouvent doit être ajouté dans le dossier AutoCad "chemin de recherche de fichiers de support" (Clic droit, options, fichiers). Un simple chargement du LISP ne suffit pas.

En espérant avoir pu t'aider,
Xav
AutoCad Map 3D 2011 - Covadis v16.0d
Windows 7 - 64b
0

#19 L'utilisateur est hors-ligne   COME 

  • ceinture marron
  • Groupe : Membres
  • Messages : 270
  • Inscrit(e) : 16-septembre 13

Posté 05 novembre 2018 - 10:01

Voir le messageDemixav, le 05 novembre 2018 - 09:51 , dit :

Salut Come,

le LISP et le DCL doivent avoir le même nom : IGIR
Avant de charger le LISP, le chemin du dossier dans lequel ils se trouvent doit être ajouté dans le dossier AutoCad "chemin de recherche de fichiers de support" (Clic droit, options, fichiers). Un simple chargement du LISP ne suffit pas.

En espérant avoir pu t'aider,
Xav


Super ! Merci beaucoup !

Effectivement cela change la vie !Image IPBImage IPB
COME

La vie sans musique est tout simplement une erreur, une fatigue, un exil. »
Friedrich Nietzsche
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)