Kenan k?l??aslan

  • Baca Hesabı
  • Sürtünme Kaybı
  • Diferansiyel Denklem
  • Denklem Çözümü
lisp

SET ve SETQ Komutu

AutoLISP'te eşit işareti yerine kullanılır. En bilineni ve çok kullanılanı SETQ'dur. Birinci parametre, atama yapılacak değişken, ikinci parametre ise atama yapılacak değer veya AutoLISP denklemidir.

(setq a var) A değişkeni içine VAR değişkeni içindeki değer atanır.

(defun c:test ( / j lpt symb) 
 
   (setq j 1) 
   (while (set (read (strcat "point_" (itoa j))) 
      (getpoint "\nPoint : ") 
      ) 
      (setq j (1+ j)) 
   ) 
   ;; Son nokta nill 'dir. 
   (setq j (1- j)) 
   ;; noktaları sıralayalım 
   (sortpoints j) 
   ;; listelenen noktaların arasını çizelim (command "_line") 
   (setq lpt (list "")) 
   
   
    (while (> j 0) 
      (setq  
         symb (read (strcat "point_" (itoa j))) 
         lpt (cons (eval symb) lpt) 
      ) 
      (set symb nil) 
      (setq j (1- j)) 
   ) 
   ;; Çigileri çiz
   (command "_line") 
   (mapcar 'command lpt) 
   (princ) 
) 
 
 
;; Noktaların sıralanması fonksiyonu
(defun sortpoints (j / i cur_y prev_y cur_symb prev_symb point) 
   (setq i 2) 
   (while (<= i j) 
      (setq 
         cur_symb (read (strcat "point_" (itoa i))) 
         prev_symb (read (strcat "point_" (itoa (1- i)))) 
         cur_y (cadr (eval cur_symb)) 
         prev_y (cadr (eval prev_symb)) 
      ) 
      (if (> cur_y prev_y) 
         (progn 
            (setq   point (eval prev_symb)) 
            (set    prev_symb (eval cur_symb))  
            (set    cur_symb point) 
            (if (/= i 2) (setq i (1- i))) 
         ) 
      (setq i (1+ i)) 
      ) 
   ) 
) 
beyaz_sayfa_en_alt_oval