Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous !

 

Dans mes fonctions de "nettoyage de plans", j'utilise un lisp de (gile) qui permet de supprimer les textes et attributs vides cleantxt.

 

Je n'avais pas eu de soucis jusqu'à present, mais là, j'ai ce message :

 ; erreur: Le serveur ActiveX a renvoyé l'erreur: nom inconnu: "ATTRIBUTE" 

 

J'ai testé en remplaçant la ligne

(if (ssget "_X" '((0 . "*TEXT,INSERT")))

 

par

(if (ssget "_X" '((0 . "*TEXT")))

 

et là bien sûr plus d'erreur mais les attributs ne sont pas traités.

 

Est-ce que (gile) ou un autre pro pourrait débugger le code (ou me dire ou ça pêche dans mon dessin).

 

Merci d'avance !

 

[Edité le 18/12/2007 par LUDWIG]

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Merci Ludwig pour ce retour,

 

il y avait effectivement une erreur de syntaxe, j'en ai profité pour filtrer les xrefs (le code du message original est corrigé).

 

;; CLEANTXT
;; Supprime les caractères non imprimables (espaces, tabulations, retour charriot, ...)
;; situés à droite de tous les textes, mtextes et attributs du dessin.

(defun c:cleantxt (/ RightCleanText)
 (vl-load-com)

 (defun RightCleanText	(txt / lst)
   (setq lst (reverse (vl-string->list txt)))
   (while (and	lst
	(or (		    (and (= (car lst) 80) (= (cadr lst) 92))
	)
   )
     (if (	(setq lst (cdr lst))
(setq lst (cddr lst))
     )
   )
   (vl-list->string (reverse lst))
 )

 (if (ssget "_X" '((0 . "*TEXT,INSERT")))
   (vlax-for obj (vla-get-ActiveSelectionSet
	    (vla-get-ActiveDocument (vlax-get-acad-object))
	  )
     (if (= (vla-get-ObjectName obj) "AcDbBlockReference")
(if (= (vla-get-HasAttributes obj) :vlax-true)
  (foreach att (vlax-invoke obj 'GetAttributes)
    (vla-put-TextString
      att
      (RightCleanText (vla-get-TextString att))
    )
  )
)
(if (= "" (setq txt (RightCleanText (vla-get-TextString obj))))
  (vla-delete obj)
  (vla-put-TextString obj txt)
)
     )
   )
 )
 (princ)
) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité