Créer une boite de dialogue AutoCAD avec le langage DCL et AutoLISP

1ère étape, créer le fichier DCL à l'aide un éditeur de texte :

hello : dialog {
    label = "Exemple de boite de dialogue";
    : text { label = "Coucou tout le monde."; }
    ok_only;
}

Ici, on définit une boite de dialogue nommée hello. L'attribut label permet de définir son titre. La boite comporte deux éléments, un texte et un bouton OK.

Si vous utilisez l'éditeur Visual LISP, vous pouvez avoir un aperçu de cette boite de dialogue en passant par le menu déroulant : Outils > Outils d'interface > Aperçu DCL dans l'éditeur (vous devez avoir un fichier .dcl ouvert pour que cet élément de menu soit actif). L'éditeur vous demande de sélectionner la boite de dialogue à afficher car un fichier .dcl peut en contenir plusieurs.

Aperçu de la boite de dialogue

A présent, voyons comment procéder pour afficher cette boite à partir d'un programme AutoLISP :

(defun coucou (/ file-name path dcl-id)

  ;; Charge le fichier .dcl en mémoire
  ;; La fonction load_dialog renvoie un identifiant
  ;; qu'on stocke dans la variable locale dcl_id
  (setq file-name "coucou.dcl")
  (setq path (findfile file-name))
  (if (not path)
    (progn
      (alert
        (strcat
          "Le fichier "
          file-name
          " n'a pas été trouvé."
          "\n\nVérifiez qu'il se trouve bien dans un des répertoires"
          " du chemin de recherche d'AutoCAD."
         )
      )
      (exit)
    )
  )
  (setq dcl-id (load_dialog path))
  (if (< dcl-id 0)
    (progn (alert
             (strcat "Le fichier " file-name " ne peut pas être chargé.")
           )
           (exit)
    )
  )

  ;; Crée la boite de dialogue. Le premier argument (hello)
  ;; correspond à l'identifiant défini dans coucou.dcl
  (if (not (new_dialog "hello" dcl-id))

    (exit)
  )

  ;; Demande à AutoCAD d'afficher la boite de dialogue
  (start_dialog)

  ;; Décharge la boite de dialogue de la mémoire
  (unload_dialog dcl-id)

  (princ)
)

On peut faire plus court, mais j'ai ajouté du code de gestion des erreurs pour vous permettre d'identifier plus rapidement un éventuel problème. Il faut notamment que le fichier .dcl soit placé dans un des répertoires du chemin de recherche d'AutoCAD (variable système ACADPREFIX qui peut être définie dans Outils > Options).

Add new comment