Comment insérer un champ dans un texte AutoCAD qui affiche uniquement les 36 premiers caractères du nom du fichier courant ? Est-il également possible de référencer un caractère spécifique du nom de fichier ?
Bonjour,
L’insertion d’un champ affichant une partie du nom de fichier dans AutoCAD nécessite une approche via la programmation, car les champs natifs ne permettent pas de tronquer le nom de fichier directement.
Voici la démarche pour obtenir le nom de fichier partiel et une explication pour la référence à un caractère spécifique :
1. Champ Nom de Fichier Partiel (36 premiers caractères) :
Pour cette fonctionnalité, il est nécessaire d’utiliser une routine LISP ou .NET.
-
Approche LISP (recommandée pour sa simplicité d’intégration) :
- Définir une fonction LISP qui récupère le nom complet du dessin courant (
(getvar "DWGNAME")). - Tronquer ce nom pour ne garder que les 36 premiers caractères à l’aide de la fonction
substr. - Créer un objet texte (ou modifier un objet texte existant) et y insérer cette chaîne tronquée.
- Charger et exécuter cette routine LISP dans votre dessin AutoCAD.
Exemple de code LISP (à adapter) :
(defun c:InsertNomFichierPartiel () (vl-load-com) (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq ed (vla-get-Editor doc)) (setq dwgName (getvar "DWGNAME")) (setq nomFichierPartiel (substr dwgName 1 36)) (setq pt (getpoint "\nSpécifiez le point d'insertion du texte : ")) (setq txtObj (vla-AddText doc nomFichierPartiel (vlax-3d-point pt) 0.0)) (vla-put-Height txtObj 2.5) ; Hauteur du texte, à ajuster (vla-put-StyleName txtObj "Standard") ; Style de texte, à ajuster (princ) )Pour l’utiliser, enregistrez ce code dans un fichier
.lsp(par exemple,NomFichierPartiel.lsp) et chargez-le dans AutoCAD via la commandeAPPLOAD. - Définir une fonction LISP qui récupère le nom complet du dessin courant (
-
Approche .NET (plus complexe mais plus puissante) :
Vous pouvez développer une application .NET qui interagit avec l’API d’AutoCAD pour réaliser la même opération de récupération et de troncation du nom de fichier, puis de création d’entité texte.
2. Champ Référençant un Caractère Spécifique du Nom de Fichier :
Les champs natifs d’AutoCAD ne permettent pas de sélectionner un caractère spécifique par son index dans le nom du fichier. Pour réaliser cela, vous devrez impérativement passer par une routine de programmation (LISP ou .NET) similaire à celle décrite ci-dessus. La différence résidera dans la manière de récupérer le caractère souhaité à partir de la chaîne du nom de fichier (par exemple, (substr dwgName 10 1) pour le 10ème caractère).
Bonnes pratiques :
- Utilisez des noms de fichiers clairs et concis pour minimiser les problèmes de longueur.
- Si vous utilisez des routines personnalisées, documentez-les et stockez-les dans un emplacement centralisé.
- Pour des besoins récurrents, envisagez de créer un style de texte spécifique ou une commande qui gère l’insertion de ces champs dynamiques.
Ces méthodes vous permettront de gérer le nom de fichier de manière plus flexible dans vos annotations.