Aller au contenu

comment remplacer/traduire des textes


laud69

Messages recommandés

bonjour,

 

J'aurais besoin d'aide pour automatiser une traduction de liste de mots svp.

 

J'ai une nomenclature dans une table Autocad, les textes sont des textes multilignes.Mtext

(cette nomenclature est créée à partir d'une extraction d'attributs )

 

Je voudrais à partir d'une liste de mots en français les remplacer chaque occurence d'un mot par un autre.

Par exemple : remplacer le mot " vanne" par "valve" ; "filtre" par "filter" etc.

Je pensais faire un script avec la commande rechercher / remplacer mais apparement on ne peut pas désactiver la boite de dialogue....

Donc:

- Est ce que qqu'un sait désactiver la boite de dialogue de "rechercher" ?

- comment faites vous pour traduire vos nomenclture de pièces ?

- vais je devoir apprendre le lisp ?...

 

En gros j'ai une liste avec une trentaine d'expression identifiées que je veux pouvoir remplacer facilement sans avoir à les retaper systematiquement.

 

Merci d'avance !

 

PS: version utilisée Autocad 2006

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Un petit LISP vite fait, il te faut compléter les listes de textes à remplacer et de textes de remplacement en repectant l'ordre dans les deux listes.

Charge le LISP, tape TRADUC, et sélectionne les mtextes.

 

(defun c:traduc	(/ l1 l2 ss n txt)
 (setq	l1 '("vanne" "filtre")		; liste à compléter
l2 '("valve" "filter")		; liste à compléter dans le même ordre
 )
 (if (setq ss (ssget '((0 . "MTEXT"))))
   (repeat (setq n (sslength ss))
     (setq txt (entget (ssname ss (setq n (1- n)))))
     (if (setq pos (vl-position (cdr (assoc 1 txt)) l1))
(entmod (subst (cons 1 (nth pos l2)) (assoc 1 txt) txt))
     )
   )
 )
 (princ)
) 

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

Lien vers le commentaire
Partager sur d’autres sites

Ah, est ce que ce lips tient compte de la casse ?

 

En l'état, oui. mais je peux facilement le modifier pour qu'il n'en tienne pas compte dans la recherche des mots à remplacer, il en tiendra toujours compte pour les mots de remplacement.

 

Voilà une version qui ne tient pas compte de la casse, tu n'as même pas à t'en préoccuper en complétant la liste des noms à remplacer (l1).

 

(defun c:traduc	(/ l1 l2 ss n txt)
 (setq	l1 (mapcar 'strcase '("vanne" "filtre"))		; liste à compléter
l2 '("Valve" "Filter")		; liste à compléter dans le même ordre
 )
 (if (setq ss (ssget '((0 . "MTEXT"))))
   (repeat (setq n (sslength ss))
     (setq txt (entget (ssname ss (setq n (1- n)))))
     (if (setq pos (vl-position (strcase (cdr (assoc 1 txt))) l1))
(entmod (subst (cons 1 (nth pos l2)) (assoc 1 txt) txt))
     )
   )
 )
 (princ)
) 

 

[Edité le 11/4/2007 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

 

Je viens de faire un test rapide et ça marche super bien !

je pense que ça va bien m'aider !

 

Par contre, une question tres basique:

dans les liste je vais écrire et qui va etre longue... est ce qu'il y a une limitation de nombre de lignes ou de carateres dans une fonction lips ?

 

Merci Gile !

Lien vers le commentaire
Partager sur d’autres sites

Par contre, une question tres basique:

dans les liste je vais écrire et qui va etre longue... est ce qu'il y a une limitation de nombre de lignes ou de carateres dans une fonction lips ?

 

Je ne peux pas affirmer qu'il n'y en a pas, mais quand on récupère la liste des données d'un maillage 3d, par exemple, il peut y avoir des millers de sommets et je n'ai jamais rencontré cette limite. J'espère pour toi que ta liste de noms ne sera pas aussi longue.

 

Bon courage...

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

Lien vers le commentaire
Partager sur d’autres sites

dans les liste je vais écrire et qui va etre longue

Il y a peut-être moyen aussi de te faire moitié moins de boulot de saisis en récurant les textes à traduire en lisp et créér la liste automatiquement...

Il ne te resteras "qu'a" saisir la liste des traductions....

 

(defun lst-txt (/ LST N SEL)
(setq sel (ssget '((0 . "MTEXT")))
     lst nil)
(repeat (setq n (sslength sel))
 (setq lst (append (list (cdr (assoc 1 (entget (ssname sel (setq n (1- n))))))) lst))
 )
 )

 

Si tu fais un

(setq l1 (lst-txt))

tu auras dans l1 la liste des mots que tu auras selectionné à l'écran, que tu n'auras qu'a mettre dans le lisp de (gile).

 

Pendant que j'y pense, il y a aussi moyen de mettre automatiquement cette liste sous excel ou dans un txt ....

 

[Edité le 11/4/2007 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

Je ne peux pas affirmer qu'il n'y en a pas, mais quand on récupère la liste des données d'un maillage 3d, par exemple, il peut y avoir des millers de sommets et je n'ai jamais rencontré cette limite. J'espère pour toi que ta liste de noms ne sera pas aussi longue.

 

Bon courage...

 

Ca devrait le faire alors ;)

Lien vers le commentaire
Partager sur d’autres sites

Pendant que j'y pense, il y a aussi moyen de mettre automatiquement cette liste sous excel ou dans un txt ....

 

Merci, c'est bien cette methode que j'avais imaginée :)

 

Mais en fait t'as solution m'interresse qd meme car je me suis rendu compte que m'a liste excel n'est pas tout a fais à jour...

Lien vers le commentaire
Partager sur d’autres sites

:casstet: :casstet:

Pourquoi se casser la tête à faire puisque cela existe déjà?

 

CADxp

 

OnONINC

 

 

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Lien vers le commentaire
Partager sur d’autres sites

Ben déjà parce que j'avais pas vu...

(faut dire que j'avais pas chercher puisque j'étais confiant pour le script...)

Ensuite, le code de Gile correspond beaucoup mieux à mon besoin car :

 

1- il est gratuit ;) Onon coute 1000$...

2- je peux traduire les termes techniques de mon métier

3- sur trans-easy il faut saisir tous les texte un par un puis traduire.Avec le code de Gile toutes les occurences d'une expression sont traduites . Par contre trans-easy est plus complet car il prend aussi en compte les textes simple ligne et les attributs.

 

Vala... le pourquoi du comment

 

En tout cas merci à tous pour votre aide, je suis bien content du résultat :)[Edité le 12/4/2007 par laud69][Edité le 12/4/2007 par laud69]

 

[Edité le 12/4/2007 par laud69]

Lien vers le commentaire
Partager sur d’autres sites

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é