CXFONTCHKNettoyageVersion 1.0.0Testé dans AutoCAD
Lister les styles de texte dont le fichier de police est introuvable
Vérifie chaque style de texte et liste ceux qui pointent vers un fichier de police SHX introuvable, cause habituelle des points d'interrogation dans le texte.
Comment l'utiliser
- Saisissez CXFONTCHK.
- Lisez la liste des styles et des fichiers manquants.
- Utilisez CXFONTSUB pour les rediriger vers une police dont vous disposez.
Bon à savoir
- Les polices TrueType ne sont pas vérifiées ici.
Le charger dans AutoCAD
- Enregistrez le fichier où vous voulez.
- Tapez APPLOAD, choisissez le fichier et cliquez sur Charger.
- Tapez le nom de la commande : CXFONTCHK.
Pour l'avoir à chaque démarrage, ajoutez-le à la Mallette de démarrage dans la même boîte de dialogue, ou chargez un dossier entier d'un coup avec le chargeur facultatif. À propos du chargeur facultatif
Testé dans AutoCAD (version complète). D'autres programmes qui exécutent AutoLISP peuvent fonctionner, mais ils n'ont pas été testés.
Le code
Du texte brut, rien de caché. Copiez-le dans un fichier nommé cxfontchk.lsp ou téléchargez-le.
;;; ============================================================================
;;; CXFONTCHK - List text styles whose font file is missing
;;; Version 1.0.0
;;; CADXChange LISP tools - https://cadxchange.net/resources/lisp/cxfontchk
;;; Tested in: AutoCAD (full version). Other programs that run AutoLISP may work but are not tested.
;;; Copyright (c) CADXChange. Free for personal and commercial use; do not resell or
;;; republish it as a collection. Terms: https://cadxchange.net/legal/lisp-terms
;;; ============================================================================
;; The text styles whose font file cannot be found by the program: ((style . file) ...).
;; Only .shx fonts are checked; TrueType fonts and shape files are skipped.
(defun cx:fontchk-run ( / r out file)
(setq r (tblnext "STYLE" T))
(while r
(setq file (cx:dxf 3 r))
(if (and (= (logand 1 (cx:dxf 70 r)) 0)
file
(wcmatch (strcase file) "*.SHX")
(not (findfile file)))
(setq out (cons (cons (cx:dxf 2 r) file) out)))
(setq r (tblnext "STYLE")))
(reverse out))
(defun c:CXFONTCHK ( / *error* cx:sv rows)
(setq *error* cx:err)
(setq rows (cx:fontchk-run))
(if rows
(progn
(princ "\nText styles with a missing font file:")
(foreach r rows (princ (strcat "\n " (car r) " " (cdr r))))
(princ "\nCXFONTSUB can replace a missing font by another one."))
(princ "\nEvery shx font file used by a text style was found."))
(princ))
;;; ---- Shared helpers (used by the command above; identical in every CADXChange tool) ----
(defun cx:dxf (code ed)
(cdr (assoc code ed)))
;; Close the undo step and put the system variables back.
(defun cx:end ()
(foreach v cx:sv (setvar (car v) (cdr v)))
(command "_.UNDO" "_End")
(setq cx:sv nil)
(princ))
;; Error handler: restores everything, stays quiet on Esc.
(defun cx:err (msg)
(if (> (getvar "CMDACTIVE") 0) (command))
(cx:end)
(if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")))
(princ (strcat "\nError: " msg)))
(princ))
(princ "\nCXFONTCHK loaded. Type CXFONTCHK to start.")
(princ)
Historique des versions
Version 1.0.0 · 27 octobre 2026
Première version.
Besoin de le faire sur de nombreux dessins ?
TextSync effectue ce genre de tâche sur tout un dossier de dessins en une seule passe.
TextSyncAutres commandes : Nettoyage
CXBYLAYERRemettre couleur, type de ligne et épaisseur DuCalqueCXZEROLENTrouver et supprimer les lignes et polylignes de longueur nulleCXEMPTYTXTTrouver et supprimer les textes videsCXFONTSUBRemplacer un fichier de police par un autre dans tous les styles de texteCXPURGEPurger le dessin jusqu'à ce qu'il n'y ait plus rien à retirerCXDELTYPESupprimer tous les objets du type que vous désignezCXDIMRESETRemettre la valeur mesurée dans les textes de cotes modifiés à la mainCXDUPDELSupprimer les objets strictement en doubleCXOBJCOUNTCompter les objets par type