Jump to content

supprimer un Linetype


Recommended Posts

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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 10 Pro 64bits / AutoCAD MAP 3D 2019

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres...
Davantage d'avantages, avantagent davantage. (Bobby Lapointe)
La connaissance s'accroît quand on la partage.(Socrate)

Link to post
Share on other sites

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...