CADXChange

Todos los comandos LISP

CXFONTCHKLimpiezaVersión 1.0.0Probado en AutoCAD

Listar estilos de texto con el archivo de fuente ausente

Revisa cada estilo de texto y lista los que apuntan a un archivo de fuente SHX que no se encuentra, la causa más habitual de signos de interrogación en el texto.

Cómo se usa

  1. Escribe CXFONTCHK.
  2. Lee la lista de estilos y archivos ausentes.
  3. Usa CXFONTSUB para dirigirlos a una fuente que tengas.

Conviene saber

  • Las fuentes TrueType no se comprueban aquí.

Cargarlo en AutoCAD

  1. Guarda el archivo donde quieras.
  2. Escribe APPLOAD, elige el archivo y pulsa Cargar.
  3. Escribe el nombre del comando: CXFONTCHK.

Para tenerlo en cada inicio, agrégalo al Contenido de inicio en el mismo cuadro de diálogo, o carga una carpeta entera de una vez con el cargador opcional. Sobre el cargador opcional

Probado en AutoCAD (versión completa). Otros programas que ejecutan AutoLISP pueden funcionar, pero no se han probado.

El código

Texto sin más, nada oculto. Cópialo en un archivo llamado cxfontchk.lsp o descárgalo.

;;; ============================================================================
;;; 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)

Historial de versiones

Versión 1.0.0 · 27 de octubre de 2026

Primera versión.

¿Lo necesitas en muchos dibujos?

TextSync hace este tipo de trabajo con toda una carpeta de dibujos en una sola pasada.

TextSync

Más comandos: Limpieza