laud69 Posté(e) le 11 avril 2007 Partager Posté(e) le 11 avril 2007 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 More sharing options...
(gile) Posté(e) le 11 avril 2007 Partager Posté(e) le 11 avril 2007 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 More sharing options...
laud69 Posté(e) le 11 avril 2007 Auteur Partager Posté(e) le 11 avril 2007 Merci !Je teste demain :) Ah, est ce que ce lips tient compte de la casse ? Merci!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 11 avril 2007 Partager Posté(e) le 11 avril 2007 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 More sharing options...
laud69 Posté(e) le 11 avril 2007 Auteur Partager Posté(e) le 11 avril 2007 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 More sharing options...
(gile) Posté(e) le 11 avril 2007 Partager Posté(e) le 11 avril 2007 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 More sharing options...
Bred Posté(e) le 11 avril 2007 Partager Posté(e) le 11 avril 2007 dans les liste je vais écrire et qui va etre longueIl 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 More sharing options...
laud69 Posté(e) le 11 avril 2007 Auteur Partager Posté(e) le 11 avril 2007 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 More sharing options...
laud69 Posté(e) le 11 avril 2007 Auteur Partager Posté(e) le 11 avril 2007 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 More sharing options...
BIM G CO Posté(e) le 12 avril 2007 Partager Posté(e) le 12 avril 2007 :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 More sharing options...
Bred Posté(e) le 12 avril 2007 Partager Posté(e) le 12 avril 2007 Désolé de ne pas tous connaitre, Maximilien...vraiment désolé.... Mais merci pour ce lien. 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 More sharing options...
laud69 Posté(e) le 12 avril 2007 Auteur Partager Posté(e) le 12 avril 2007 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étier3- 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 More sharing options...
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