Aller au contenu

(résolu) StripMtext


Messages recommandés

Posté(e)

Bonjour

 

Pour les habitués ce lisp est super pratique même si on s'en sert pas tous les jours, il remet les options de texte forcé dans l'éditeur à des valeur par défaut

C'est hyper pratique quand on veux remettre tous les textes en couleur ducalque par exemple car la couleur dans l'éditeur est prioritaire sans ça.

Pour ceux qui connaissent pas c'est ici que ça se passe https://cadabyss.wor...tripmtext-v5-0/

 

ça fait quelques dessins ou un module d'export à la noix balance tout en bloc, y compris les textes. Si le texte transformé en bloc contient des option forcée StripMtext ne rentre pas dans les blocs pour faire son petit ménage...(et parfois c'est imbriqué dans d'autre bloc ect..)

 

Comment faire un petit lisp pour tester si dans un bloc il y a un texte (ou un bloc avec un texte) et de le traiter avec SMT (ça sent la récurrence et j'ai vraiment du mal)

 

merci

 

Un exemple de fichier énervant

https://www.dropbox....xte-CF.dwg?dl=0

Posté(e)

Une idée en passant.

 

Appliquer la commande FILTRER avec comme définition:

Objet = Bloc

Nom du bloc = A19-BLK*

 

Une fois cette sélection faite, utiliser la commande BURST (des ExpressTools), comme cela tu sera débarrassé de tes blocs (que tu pourra purger car inutiles) et tu récupérera ainsi que des MTEXT que tu pourra traité avec SMT.

 

Bon ça peu chambouler pas mal de paramètres des textes qui seront peut être pénible à remettre en place.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Salut,

 

Tu peux essayer ce petit truc vite fait :

 

(defun c:StripMTextColorInBlocks (/ regex)
 (vl-load-com)
 (or *acad* (setq *acad* (vlax-get-acad-object)))
 (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
 (or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*)))
 (setq regex (vlax-create-object "VBScript.RegExp"))
 (vlax-put regex 'Pattern "\\\\[Cc][0-9]?[.]?[0-9]+;")
 (vlax-for blk	*blocks*
   (if	(and (= (vla-get-IsLayout blk) :vlax-false)
     (= (vla-get-IsXRef blk) :vlax-false)
)
     (vlax-for	obj blk
(if (= (vla-get-ObjectName obj) "AcDbMText")
  (vla-put-textstring
    obj
    (vlax-invoke regex 'Replace (vla-get-textstring obj) "")
  )
)
     )
   )
 )
 (vlax-release-object regex)
 (vla-Regen *acdoc* acAllViewports)
 (princ)
)

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

Posté(e)

J'avais déjà tenté le burst, mais la semaine dernière, je n'ai pas eu le temps de creuser, ça m'avait changé les polices et taille de texte, bref généré un sacré boxon...

 

(Gile) ton lisp marche comme sur des roulettes.... comme c'est la seule propriété qui me dérange ça fera grandement l'affaire

 

merci beaucoup.... encore une fois...

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é