En réaction à cette discussion sur le forum Autodesk je publie ci-dessous une analyse de l’erreur de documentation et de la confusion qui s’ensuit à propos de ces deux commandes des Express Tools.
En analysant le code source du fichier BLOCKTOXREF.LSP des Express Tools, il est évident que les deux commandes sont intimement liées et partagent le même fichier source d’origine. Voici une analyse détaillée de la situation pour éclaircir cette confusion.
Analyse du fichier LISP
Le fichier BLOCKTOXREF.LSP regroupe effectivement les définitions des deux commandes. Bien qu’elles soient dans le même fichier, le code les sépare très clairement en deux processus distincts :
-
La commande BLOCKTOXREF : * Définie par
(defun c:blocktoxref ())(et sa version en ligne de commandec:-blocktoxref).- Elle fait appel à la fonction
(acet-blocktoxref-ui)qui gère l’interface utilisateur pour sélectionner un bloc et un fichier.dwgexterne, puis lance la conversion.
- Elle fait appel à la fonction
-
La commande BLOCKREPLACE :
-
Définie un peu plus bas par
(defun c:blockreplace ())(etc:-blockreplace). -
Elle fait appel à la fonction
(acet-blockreplace-ui)qui gère une interface demandant de sélectionner un bloc source et un bloc de remplacement, tout en vérifiant qu’il n’y a pas de références circulaires.
-
De plus, à la toute fin du fichier, on remarque que les opérations lourdes (la logique de remplacement et de purge) ne sont même pas dans ce fichier. Elles sont externalisées vers un autre fichier appelé BLOCKTOXREFSUP.LSP via la fonction acet-autoload2.
L’origine de la confusion dans l’aide en ligne
La confusion dans la documentation d’AutoCAD 2027 provient très probablement de la façon dont ces outils ont été développés et packagés :
-
Un module unique : Ces deux outils font partie des « Express Tools » d’AutoCAD, qui sont souvent des scripts créés par des développeurs (ici, Randy Kintzley en 1999) pour répondre à des besoins spécifiques. Parce qu’ils partagent des fonctions similaires (manipuler et remplacer des blocs), le développeur les a regroupés dans un seul module (
BLOCKTOXREF.LSP). -
Erreur de documentation (Copier-Coller) : Lors de la rédaction ou de la mise à jour de l’aide en ligne pour AutoCAD, l’équipe de documentation traite souvent les outils groupés en lot. Puisque la commande
BLOCKREPLACEa été ajoutée au fichier nomméBLOCKTOXREF, il est extrêmement fréquent que le rédacteur technique ait dupliqué la description deBLOCKREPLACEsur la page deBLOCKTOXREFpar erreur, ou qu’il ait confondu les métadonnées des deux commandes du même fichier.
En résumé : Fonctionnellement, le code LISP est correct et fait bien la distinction entre « Remplacer par un bloc » et « Remplacer par une XREF ». L’erreur réside purement dans le manuel d’aide d’Autodesk, qui a fait un amalgame éditorial à cause du regroupement historique de ces deux commandes dans le même fichier source.
[!Note]
Vous pourriez être tenté d’utiliser les programmes Lisp d’AutoCAD 2027, dans AutoCAD LT 2027, mais cela ne fonctionnera pas directement car plusieurs bibliothèques des express tools doivent être chargées avant que cela ne fonctionne. Cela demanderait donc un certain bidouillage.

