LUDWIG Posté(e) le 19 janvier 2005 Posté(e) le 19 janvier 2005 J'avais créer un code pour exploser tous les blocs d'un espace.Je l'ai modifié pour qu'il explose tous les blocs de tous les espaces. Mais cela ne marche pas. Quelqu'un pourrait-il m'ouvrir les yeux sur mon erreur ? ;**************************************** ; ------ Exploser tous les blocs --------- NE MARCHE PAS ENCORE CORRECTEMENT (présentations) ;**************************************** ; By Ludwig DESMIER ; Permet d'exploser tous les blocs d'un dessin (même imbriqués) dans toutes les présentations (defun c:XB (/ layouts LAYOUT cmd expl Esp NB JEU C) (graphscr) (setq cmd (getvar "CMDECHO")) (setvar "CMDECHO" 0) (setq expl (getvar "explmode")) (setvar "explmode" 1) (setq Esp (getvar "CTAB")) (setq C 0) (setq layouts (cons "Model" (layoutlist))); A RECTIFIER : ne marche pas dans toutes les présentations (Foreach n layouts (setvar "CTAB" n) (setq LAYOUT (getvar "CTAB")) (setq JEU (ssget "x" '((0 . "INSERT")(410.LAYOUT)))) (If (= JEU Nil) (setq NB 0) (setq NB (sslength JEU)) ) (while (> NB 0) (progn (setq JEU (ssget "x" '((0 . "INSERT")))) (If (= JEU Nil) (setq NB 0) (progn (setq NB (sslength JEU)) (sssetfirst nil JEU) (c:burst) (setq C (+ C NB)) ) ) ;fin du if ) ;fin du progn ) ;fin du while ) ;fin du Foreach (setvar "CMDECHO" cmd) (setvar "explmode" expl) (setvar "CTAB" Esp) (prompt "\n ") (print C) (if (<= C 1) (prompt " bloc explosé") (prompt " blocs explosés") ) (prin1) ) ;fin du defun (prompt "\nXB : Exploser tous les blocs (même imbriqués)") Autocad 2021 - Revit 2022 - Windows 10
rebcao Posté(e) le 19 janvier 2005 Posté(e) le 19 janvier 2005 c'est quoi ces 2 lignes :casstet: : (sssetfirst nil JEU)(c:burst) 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 @)
Patrick_35 Posté(e) le 19 janvier 2005 Posté(e) le 19 janvier 2005 J'ai un peu modifié ton programme tout en essayant de garder ton principe de fonctionnement (defun c:de(/ layouts jeu n j cmd) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "_.undo" "_group") (setq layouts (layoutlist)) (if (vl-position "Model" layouts) (setq layouts (vl-remove "Model" layouts)) ) (foreach n layouts (while (setq jeu (ssget "x" (list (cons 0 "INSERT") (cons 410 n)))) (setq j 0) (command "_.layout" "_set" n) (while (ssname jeu j) (command "_explode" (ssname jeu j)) (setq j (1+ j)) ) ) ) (command "_.undo" "_end") (setvar "cmdecho" cmd) (princ) ) @+ [Edité le 19/1/2005 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bonuscad Posté(e) le 19 janvier 2005 Posté(e) le 19 janvier 2005 Si tu veux absolument utilisé (burst) qui est interressant pour les attribut en texte., mais délicat a appelé d'une autre fonction, car les appels interdépendant des express sont de véritable casse-tête. toujours est-il que tu peux remplacer: (setq JEU (ssget "x" '((0 . "INSERT")(410.LAYOUT)))) ->FAUXpar(setq JEU (ssget "x" (cons '(0 . "INSERT") (list (cons 410 LAYOUT))))) et supprimer ta boucle (while .....) en ne conservant que les lignes:(sssetfirst nil JEU)(c:burst)(setq C (+ C NB)) De cette manière la routine à l'air de fonctionner, mais j'ai l'impression que plusieurs passes seront necessaires.NB: Il Semble avoir des problème si les blocs font parti de groupe. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
LUDWIG Posté(e) le 20 janvier 2005 Auteur Posté(e) le 20 janvier 2005 c'est quoi ces 2 lignes :casstet: : (sssetfirst nil JEU)(c:burst) Christian SSSETFIRST : je ne me rappelle plus, je l'ai récupéré d'un autre programme...BURST : c'est la commande d'express équivalente à édécomposer" mais qui transforme les attributs des blocs en textes. Autocad 2021 - Revit 2022 - Windows 10
LUDWIG Posté(e) le 20 janvier 2005 Auteur Posté(e) le 20 janvier 2005 J'ai mixé le tout et maintenant ça marche : burst des blocs (même imbriqués) dans toutes les présentations, retour à la présentation courante et comptage. ;**************************************** ; ------ Exploser tous les blocs ------- ;**************************************** ; By Ludwig DESMIER corrigé par Patrick_35 ; Permet d'exploser tous les blocs d'un dessin (même imbriqués) dans toutes les présentations (defun c:XB (/ layouts jeu n j i cmd) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "_.undo" "_group") (setq expl (getvar "explmode")) (setvar "explmode" 1) (setq ESP (getvar "CTAB")) (if (vl-position "Model" layouts) () (setq layouts (cons "Model" (layoutlist))) ) (setq i 0) (foreach n layouts (while (setq jeu (ssget "x" (list (cons 0 "INSERT") (cons 410 n)))) (setq j 0) (command "_.layout" "_set" n) (while (ssname jeu j) (setq NB (sslength JEU)) (sssetfirst nil JEU) (c:burst) (setq j (+ NB j)) ) (setq i (+ i j)) ) ) (setvar "CTAB" ESP) (setvar "explmode" expl) (command "_.undo" "_end") (setvar "cmdecho" cmd) (prompt "\n ") (print i) (if (<= i 1) (prompt " bloc décomposé") (prompt " blocs décomposés") ) (prin1) ) ;fin du defun (prompt "\nXB : Exploser tous les blocs (même imbriqués)") Autocad 2021 - Revit 2022 - Windows 10
Patrick_35 Posté(e) le 20 janvier 2005 Posté(e) le 20 janvier 2005 http://smileys.smileycentral.com/cat/36/36_1_55.gifBravo, rien de plus plaisant que de comprendre, de réussir et de voir fonctionner correctement son lisp @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Patrick_35 Posté(e) le 20 janvier 2005 Posté(e) le 20 janvier 2005 Pour Rebcao (sssetfirst sel1 sel2) sssetfirst est une fonction qui permet d'afficher les grips d'une sélection (sel1) et aussi de les mettrent en surbrillance (sel2) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
rebcao Posté(e) le 20 janvier 2005 Posté(e) le 20 janvier 2005 merci Patrick_35, ça fait un certain temps que je n'ai plus trop suivi les nouvelles fonctions Lisp ! :exclam: 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 @)
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