jujugeometre Posté(e) le 10 décembre 2020 Posté(e) le 10 décembre 2020 Bonjour, Jeune lispeur, j'essaie de construire une procédure pour nettoyer les fichiers qui me sont envoyer pour les intégrer dans mes dessins. Je décompose les blocs avec BURST, je renomme les calques avec un préfixe et je vide le calque 0. j'ai encore des dessins qui arrivent avec le type de ligne CONTINU, je veux le remplacer par CONTINUOUS dans tous les objets puis supprimer l'entité dans la table de type de ligne. j'ai donc essayé plusieurs versions qui ressemblaient à ca : defun c:ztest ( / indice jeusel elst ltypemodif ) ; jeusel indice elst layermodif *error* ;je dois selectionner toutes les entités qui ont un type de ligne CONTINU et modifier ce type de ligne ;puis supprimer l'entrée CONTINU dans la table des calques ;test sur le type de ligne "BATI" (setq indice 0 jeusel (ssadd) ) (while (setq jeusel (ssget "_X" '((6 . "bati")))) ;tant que la liste_totale ne retourne pas nil (setq elst (entget (ssname jeusel indice)) ; liste DXF de l'objet indice (+ 1 indice)) ; incrémentation de l'indice (entmod (subst (cons 6 "continuous") (assoc 6 elst) elst)) ; modification type de ligne en continuous de tous les objets );while (setq ltypemodif (entget (tblobjname "LTYPE" "bati"))) (entmod (subst '( 2 . "continuous") (assoc 2 ltypemodif ) ltypemodif)) (princ) );defun Alors j'ai un message d'erreur lors de la première exécution (; erreur: type d'argument incorrect: lentityp nil) et autant ca modifie les objets mais le type de ligne ne disparait pas, y a t il une autre approche? Merci d'avance, Geometre - Autocad 2016 - Covadis v17.0
Olivier Eckmann Posté(e) le 11 décembre 2020 Posté(e) le 11 décembre 2020 Bonjour, Normalement, si plus aucun objet ne possède le type de ligne CONTINU, il suffit de purger pour le faire disparaître.S'il n'est pas purgeable, c'est qu'il est encore utilisé, donc non supprimable. Olivier
Luna Posté(e) le 11 décembre 2020 Posté(e) le 11 décembre 2020 Coucou, Pour commencer, ton dessin ne possède plus aucun bloc et l'ensemble des définitions de blocs ont été bien purgées ? Car parfois le soucis vient simplement du fait qu'un objet possède cette propriété mais apparaît en tant que sous objet et donc non sélectionnable par un (ssget)... Ensuite le fait de modifier sa définition ne signifie pas qu'il va disparaître, Olivier à raison, il faudrait ajouter une (command "_-PURGE") à la fin pour purger ce type de ligne (à condition que aucun objet n'y fasse référence). A quel moment obtiens-tu ce message d'erreur ?Alors j'ai un message d'erreur lors de la première exécution (; erreur: type d'argument incorrect: lentityp nil) et autant ca modifie les objets mais le type de ligne ne disparait pas, y a t il une autre approche? Bisous,Luna
DenisHen Posté(e) le 13 décembre 2020 Posté(e) le 13 décembre 2020 Salut. Il y a aussi l'option de passer par un DXF et de l'éditer tel un fichier ASCII, pour renommer CONTINU par CONTINUOUS... 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)
jujugeometre Posté(e) le 13 décembre 2020 Auteur Posté(e) le 13 décembre 2020 Bonjour, J'ai changé de boucle et j'ai compris que le nom des types de ligne étaient sensibles à la casse, puis j'ai utilisé un PURGER au lieu de la table des calques ce qui m'a fait modifier en : (setq n 0 *error* err jeusel (ssget "_X" '((6 . "CACHE")))) (if (/= nil jeusel) (repeat (sslength jeusel) (entmod (subst '(6 . "Continuous") '(6 . "CACHE" ) (entget (ssname jeusel n)))) (setq n (+ 1 n)) );repeat );if (command "-PURGER" "TO" "*" "n") (setq *error* nil) ca fonctionne sur CACHE. Merci pour vos conseils, ca m'a fait avancer. La suite au prochain épisode. Geometre - Autocad 2016 - Covadis v17.0
jujugeometre Posté(e) le 13 décembre 2020 Auteur Posté(e) le 13 décembre 2020 Salut. Il y a aussi l'option de passer par un DXF et de l'éditer tel un fichier ASCII, pour renommer CONTINU par CONTINUOUS... Bonsoir, je voulais faire ca dans le dessin directement pour enchainer plusieurs traitements, je ne voulais pas passer par DXF. Geometre - Autocad 2016 - Covadis v17.0
jujugeometre Posté(e) le 13 décembre 2020 Auteur Posté(e) le 13 décembre 2020 A quel moment obtiens-tu ce message d'erreur ? J'avais ce message d'erreur avec la boucle while, j'avais 6 lignes, il en traitait 3 et s'arrêtait sur le message d'erreur, je n'ai pas compris d'ou ca venait mais ca fonctionna avec REPEAT, du coup tant pis. Geometre - Autocad 2016 - Covadis v17.0
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