yb1971 Posté(e) le 17 octobre 2018 Posté(e) le 17 octobre 2018 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 .dwgle point d'insert est tjrs 0.0.0pas de mis à l'échellepas de rotation.. purgeret 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
Demixav Posté(e) le 17 octobre 2018 Posté(e) le 17 octobre 2018 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.lspJe ne l'ai jamais testé mais il est là : http://cadxp.com/topic/41555-resolu-comment-attribuer-un-systeme-de-projection/page__p__234231__hl__projectchange__fromsearch__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.0dWindows 7 - 64b
yb1971 Posté(e) le 17 octobre 2018 Auteur Posté(e) le 17 octobre 2018 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.lspJe ne l'ai jamais testé mais il est là : http://cadxp.com/topic/41555-resolu-comment-attribuer-un-systeme-de-projection/page__p__234231__hl__projectchange__fromsearch__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!
bonuscad Posté(e) le 17 octobre 2018 Posté(e) le 17 octobre 2018 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
yb1971 Posté(e) le 17 octobre 2018 Auteur Posté(e) le 17 octobre 2018 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
Demixav Posté(e) le 17 octobre 2018 Posté(e) le 17 octobre 2018 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.0dWindows 7 - 64b
bonuscad Posté(e) le 17 octobre 2018 Posté(e) le 17 octobre 2018 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
yb1971 Posté(e) le 17 octobre 2018 Auteur Posté(e) le 17 octobre 2018 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
bonuscad Posté(e) le 17 octobre 2018 Posté(e) le 17 octobre 2018 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
yb1971 Posté(e) le 17 octobre 2018 Auteur Posté(e) le 17 octobre 2018 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
Olivier Eckmann Posté(e) le 17 octobre 2018 Posté(e) le 17 octobre 2018 Bonjour, pourquoi ne pas télécharger directement les planches du cadastre en projection CC plutôt que Lambert93?Opendata - DGFiP Olivier
Vincent P. Posté(e) le 18 octobre 2018 Posté(e) le 18 octobre 2018 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 éternel débutant! Autocad Map3D 2023 Covadis-Autopist 18.2
bonuscad Posté(e) le 18 octobre 2018 Posté(e) le 18 octobre 2018 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
lecrabe Posté(e) le 18 octobre 2018 Posté(e) le 18 octobre 2018 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
Demixav Posté(e) le 31 octobre 2018 Posté(e) le 31 octobre 2018 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.0dWindows 7 - 64b
COME Posté(e) le 5 novembre 2018 Posté(e) le 5 novembre 2018 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
rebcao Posté(e) le 5 novembre 2018 Posté(e) le 5 novembre 2018 Bonjour, On peut également utiliser un SCRIPT ! Avec le SUPERAUTOSCRIPT de CADERIX... Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Demixav Posté(e) le 5 novembre 2018 Posté(e) le 5 novembre 2018 Salut Come, le LISP et le DCL doivent avoir le même nom : IGIRAvant 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.0dWindows 7 - 64b
COME Posté(e) le 5 novembre 2018 Posté(e) le 5 novembre 2018 Salut Come, le LISP et le DCL doivent avoir le même nom : IGIRAvant 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 ! COME La vie sans musique est tout simplement une erreur, une fatigue, un exil. »Friedrich Nietzsche
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