AutoCAD : Adapter un LISP de métré aux unités en millimètres

J’utilise un LISP pour extraire des quantités de moquette sur AutoCAD. Je suis récemment passé d’un environnement de travail en mètres à un autre en millimètres, ce qui a créé plusieurs problèmes. Le texte de référence inséré sur les lignes est devenu minuscule, les calculs de longueur sortent en millimètres alors que je les veux en mètres, et je n’arrive pas à modifier la référence (ex: « 3901 ») pour qu’elle soit prise en compte dans l’extraction. Comment puis-je corriger mon code LISP pour qu’il fonctionne correctement avec cette nouvelle échelle ?

Le problème provient de valeurs fixes (codées en dur) dans votre routine LISP qui ne sont plus adaptées à votre nouvelle unité de travail. Il faut ajuster la hauteur du texte définie dans le style et appliquer un facteur de conversion lors du calcul des longueurs.

Voici les modifications à apporter à votre fichier LISP :

  1. Agrandir la hauteur du texte :
    Le style de texte « MOQUETTE » est créé avec une hauteur fixe de 100 unités, ce qui est trop petit en millimètres.

    • Dans la fonction mmq:definestyles, localisez la ligne suivante :
      (vl-cmdf "_.-style" "moquette" "romans.shx" "100" "50" "25" "" "" "")
    • Modifiez la valeur de hauteur "100" par une valeur plus appropriée pour une échelle en millimètres, par exemple "150" ou "200".
      (vl-cmdf "_.-style" "moquette" "romans.shx" "150" "50" "25" "" "" "")
  2. Convertir les longueurs calculées en mètres :
    La fonction distance retourne une valeur dans l’unité du dessin (millimètres). Il faut diviser ce résultat par 1000 pour obtenir des mètres.

    • Dans la fonction c:moqext, trouvez la ligne qui calcule et ajoute la distance à la liste :
      (setq d_list (cdr_moq++ (dxf 2 en1) d_list (distance p1 p2)))
    • Modifiez cette ligne pour intégrer la division. L’utilisation de 1000.0 garantit une division en nombre réel.
      (setq d_list (cdr_moq++ (dxf 2 en1) d_list (/ (distance p1 p2) 1000.0)))
  3. Comprendre la gestion de la référence :
    La référence de la moquette (ex: « 3901 ») est utilisée pour créer le nom du style de multiligne. Elle est donc définie à la création de l’objet avec la commande MMQ et ne peut pas être modifiée a posteriori via la palette des Propriétés.

    • Pour changer la référence d’une laie, il faut l’effacer et la redessiner en utilisant la commande MMQ et en saisissant la nouvelle référence lorsqu’elle vous est demandée. Le LISP fonctionne correctement sur ce point, c’est le flux de travail qui doit être adapté.

Après avoir effectué ces modifications, enregistrez votre fichier .lsp et rechargez-le dans AutoCAD avec la commande APPLOAD pour que les changements soient pris en compte.