Aller au contenu

[résolu] Texte auto dans cartouche


La Lozère

Messages recommandés

Bonjour,

Dans un but d'optimiser un peu de temps de travail, je voudrais qu'une zone de mon cartouche se remplisse automatiquement en fonction du nom de mon fichier.

Ainsi, voici la zone que je voudrais remplir automatiquement:

 

http://pimg.imagesia.com/fichiers/17l/capture_imagesia-com_17lyk_large.JPG

Hébergé par Imagesia, le meilleur hébergeur d'images du net !

 

Sachant que le nom de mon fichier est toujours sous la forme:

toto_titi_tutu_tata_tet_fifi_fofo_123456_A1 - 01.dwg

 

Pour chaque zone texte, il faudrait extraire la zone correspondante du nom de fichier.

J'ai pensé au champs ou encore avec RTEXT ($(getvar, "dwgname"), mais cela extrait la totalité du nom alors que moi je n'en veux qu'une partie.

 

Question posé ICI, mais sans réponse

 

Une idée?

Merci.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Je pense à un petit lisp qui remplirait les attributs de ce cartouche grâce au nom du fichier...

 

Peut-être aussi en utilisant les variables "champs lisp"...

 

Mais mes deux solutions imposent de lancer au moins une fois un lisp...

 

Mais d'autres auront peut-être la solution...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

tu peux utiliser un champ -> Expression diesel

Avec cette formule : $(substr,$(getvar,dwgname),1, 1)

 

A la fin le premier chiffre correspond au caractère de début de la chaîne à conserver et le deuxième chiffre correspond au nombre caractères.

 

Exemple, si tu souhaite conserver "titi" dans ton nom de fichier, l'expression sera :

$(substr,$(getvar,dwgname),6, 4)

 

;)

PIRO Charles

Developpeur Revit, RV/RA - Formateur Revit

PIRO CIE

Lien vers le commentaire
Partager sur d’autres sites

Pfff...

 

J'avais fais un petit lisp qui créait des "VariablesLisp" que tu pouvais insérer en tant que champs. L'avantage, c'est que ça fonctionne même s'il y a des longueurs différentes dans le nom du fichier, exemple tatata_ti_tutu_blablabla_EncoreUnAutre_.....

 

Mais comme Goldorak44 est tombé juste...

 

Oui, j'ai un peu de temps devant moi...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

En réponse à l'interrogation du message #7

oui je voulais proposer une solution lisp mais comme je ne gère que très mal les réacteurs j'ai supprimé mon message.

J'ai fait très vite et je ne pensais pas me faire gauler, raté ! pan sur les doigts.

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bon, comme je l'avais commencé, je l'ai fini et te le poste :

;;; ****************************************************************************************
;;; Répartition du nom du fichier dans des variables Lisppour La Lozère de CadXP *
;;; ****************************************************************************************
(defun c:LaLozere (/)
 (setq NomFichier (str2lst (getvar "dwgname") "_"))
 (setq Phase (nth 0 NomFichier))
 (setq Zone (nth 1 NomFichier))
 (setq PK (nth 2 NomFichier))
 (setq Discipline (nth 3 NomFichier))
 (setq TypeOuvrage (nth 4 NomFichier))
 (setq Emetteur (nth 5 NomFichier))
 (setq TypeDoc (nth 6 NomFichier))
 (setq Numero (nth 7 NomFichier))
 (setq Indice (substr (nth 8 NomFichier) 1 (vl-string-search " " (nth 8 NomFichier))))
 (princ)
) ;_ Fin de defun

;; STR2LST
;; Transforme un chaine avec séparateur en liste de chaines
;;
;; Arguments
;; str : la chaine à transformer en liste
;; sep : le séparateur

;;
;; Exemples
;; (str2lst "a b c" " ") -> ("a" "b" "c")
;; (str2lst "1,2,3" ",") -> ("1" "2" "3")
;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3)

(defun str2lst (str sep / pos)
 (if (setq pos (vl-string-search sep str))
   (cons (substr str 1 pos)
         (str2lst (substr str (+ (strlen sep) pos 1)) sep)
   ) ;_ Fin de cons
   (list str)
 ) ;_ Fin de if
) ;_ Fin de defun

 

Il suffit de le charger et de taper "LaLozere" et les variables lisp sont créées.

 

Reste plus qu'à les insérer en tant que champs, je te joins le bloc que j'ai utiliser pour mes testes...

 

Denis...

toto_titi_tutu_tata_tete_fifi_fofo_123456_A1 - 01.zip

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é