LISP

<< Cliquez pour afficher la Table des matières >>

Navigation :  Caractéristiques principales >

LISP

ABViewer prend en charge environ la moitié des commandes LISP (plus de 50 commandes). Y compris sont les fonctions dont l’argument est une fonction et celles récursives. SiCeux qui sont expérimentés en LISP peuvent utiliser ses commandes afin d’élargir considérablement les fonctions d'ABViewer. Afin de déboguer LISP, ABViewer dispose d’un débogueur intégré que vous pouvez trouver sous l’onglet Avancé > Lisp > LISP Débogueur.

Le progiciel inclut deux fichiers qui montre comment ajouter de nouvelles fonctions LISP : functiongraph.lsp et sqr.lsp. Après l'installation du logiciel, les exemples sont ajoutés au dossier c:\Users\USER_NAME\Documents\ABViewer 15\Examples\Lisp\...

functiongraph.lsp


L'exemple montre comment ajouter la fonction draw-graph qui trace des graphes.

(defun draw-line (p1 p2)

  (command "_line" p1 p2 ""))

 

(defun square (x)

  (* x x))

 

(defun rational (x)

   (/ 1 x))

 

(defun draw-graph (min max step f)

  (setq x min)

  (setq p (list x (f x)))

  (while (<= x max)

     (draw-line p (setq p (list x (f x))))

  (setq x (+ x step))))

 

Afin d'appeler la fonction draw-graph, dans la ligne de commande, veuillez entrer :

(load "С:\Users\USER_NAME\Documents\ABViewer 15\Examples\Lisp\functiongraph.lsp")

Charge le fichier functiongraph.lsp dans le fichier courant

(draw-graph -10 10 0.5 square)

Trace le graphe de la fonction y=x2

(draw-graph -10 10 0.5 sin)

Trace le graphe de la fonction y=sinx

(draw-graph -10 10 0.5 cos)

Trace le graphe de la fonction y=cosx

(draw-graph -10 10 0.5 atan)

Trace le graphe de la fonction y=arctgx

Voici le résultat de la commande exécutée :

Command: (draw-graph -10 10 0.5 square)

sqr.lsp


Cette fonction ajoute la fonction SQR qui trace un carré.

(defun SQR (/ pt1 pt2 pt3 pt4 len ang)

  (setq pt1 (getpoint "First corner: "))

  (setq pt2 (getpoint "Length of one side: "))

  (setq len (distance pt1 pt2))

  (setq ang (angle pt1 pt2))

  (setq pt3 (polar pt2 (+ ang (/ PI 2.0)) len))

  (setq pt4 (polar pt3 (+ ang PI) len))

  (command "_PLINE" pt1 pt2 pt3 pt4 pt1 "")

)

 

Voici un exemple :

(load "С:\Users\USER_NAME\Documents\ABViewer 15\Examples\Lisp\sqr.lsp")

Charge le fichier sqr.lsp dans le fichier courant

(sqr)

Demande l’utilisateur d’entrer les coordonnées de deux points la distance entre lesquels est la longueur d’un côté du carré

Voici le résultat de la commande exécutée :

Command: (sqr)

First corner: (0,0)

Length of one side: (10,5)  //au lieu de la longueur on a entré les coordonnées du deuxième point.


Débogueur LISP

Accéder au site d’ ABViewer