Milli aviasiya akademiyasi


Lİsp dİlİndə proqramlaşdırma



Yüklə 13,77 Mb.
səhifə245/248
tarix01.01.2022
ölçüsü13,77 Mb.
#104836
1   ...   240   241   242   243   244   245   246   247   248
Lİsp dİlİndə proqramlaşdırma

A utoCAD mühitində ikinci proqlaşdırma dili Lisp adlanır. Bu dil AutoCAD -ın əsas dili hesab edilir. Lisp dili siyahıları emal etmək üçün funksianal alqoritmik dildir.

L isp-də proqram yaz­maq üçün əsasən zolağın Manage menyu­sun­dakı App­­lications lövhəsin­də­ki Visual LİSP Editor ko­m­an­dasından istifadə edilir. Bu zaman Visual Lisp for AutoCAD redaktə etmə üçün dialoq pəncərəsi açılır.

Bu pəncərədə proqram kodu yığılır.

M əsələn, verilmiş detalın parametrik cizgisini tutaq. Şəkildən göründüyü kimi detal silindrik formalı iki pillədən ibarət simmetrik detaldır. Detalın içərisində oxu detallın simmetriya oxu ilə üst-üstə düşən silindirik yuva açıl­mış­dır. Detalın bütün ölçüləri parametrik verilmişdir və üzə­rin­də bi baza nöqtə seçilmişdir. Bu detal üçün Lisp dilində proqramın yazılmasına baxaq. Proqramı ya Visual LİSP Editor da ya da ki, Windows -un standart redaktoru olan БЛОКНОТ -yazmaq olur.

Ə vvəlcə detal tam kəsikdə parametrik ölçüləri ilə və xarakterik nöqtələri qeyd edilmiş qrafı tərtib olunur. Bu ölçülər detalın cizgisini çəkmək üçün giriş parametrləridir. Eskizdəki nöqtələr giriş parametrləri əsasında hesablanıb təyin ediləcək və onların köməyi ilə cizgi çəkiləcək.

İndi isə Блокнот -an istifadə edərək proqram yazılır.

; Verilənlərin daxil edilməsi bloku

;əsas funksiya:


(defun C:Try_param ( / p1 d1 d2 d3 s h )
; Giriş parametrlərinin təyini
   (initget 1)
   (setq p1 (Getpoint "Detalın baza nöqtəsini göstər :"))
   (initget 6)
   (setq d1 (Getreal "\nDaxil et d1 <10.0>:"))
   (if (not d1) (setq d1 10.0))
   (initget 6)
   (setq d2 (Getreal " Daxil et d2 <5.0>:"))
   (if (not d2) (setq d2 5.0))
   (initget 6)
   (setq d3 (Getreal " Daxil et d3 <15.0>:"))
   (if (not d3) (setq d3 15.0))
   (initget 6)
   (setq s (Getreal " Daxil et s <6.0>:"))
   (if (not s) (setq s 10.0))
   (initget 6)
   (setq h (Getreal " Daxil et h <12.0>:"))
   (if (not h) (setq h 12.0))
   ; Çertyojun çəkilməsi- çəkmə (DrawDetail) funksiyası işə salınır
   (DrawDetail p1 d1 d2 d3 s h)
)
(prompt "Try_param, ")
; Detalın çəkilməsi bloku
;******************************************
;əsas funksiya:
(defun DrawDetail (p1 d1 d2 d3 s h / p2 p3 p4 p5 p6 p7 x y det)
; Saat əqrəbi istiqamətində detal üzərində hərəkət
   (setq
      x (nth 0 p1)
      y (nth 1 p1)
      p2 (list x (+ y (/ d2 2.0)))
      p3 (list x (+ y (/ d1 2.0)))
      p4 (list (+ x s) (+ y (/ d1 2.0)))
      p5 (list (+ x s) (+ y (/ d3 2.0)))
      p6 (list (+ x h) (+ y (/ d3 2.0)))
      p7 (list (+ x h) (+ y (/ d2 2.0)))
   )
; Osnap söndürülür
   (command "_.osnap" "_none")
; çəkmə
   (command "-layer" "s" "BaseLine" "")
   (command "_.pline" p2 "w" "0" "" p3       p4 p5 p6 p7 "c")
; çəkilmiş primitiv saxlanılır
   (setq det (entlast))
; çəkilmiş detal simmetrik çevrilir
   (command "_.mirror" det "" p1 "@1,0" "N")
; çəkmə
   (command "_.pline" p2 (list x (- y (/ d2 2.0))) "")
   (command "_.pline" p7 (list (+ x h) (- y (/ d2 2.0))) "")
; ağ rəng təyin edilir
   (command "-layer" "s" "Lines" "")
; simmetriya oxy
   (command "_.line" (list (- x 5) y) (list (+ x h 5) y)"")
; ştrixləmə
   (command "-layer" "s" "Hath" "")
   (command "_.bhatch" "p" "ansi31"
      (/ (+ d3 h) 70.0) ; ştrixin miqyasına nəzərən hesablama
      "0" ; dönmə bucağı
      (list (+ x (/ h 10.0)) (+ y (/ d2 2.0) (/ (- d1 d2) 4.0))) ; ştrixlənəcək sahə daxilində nöqtə
      (list (+ x (/ h 10.0)) (- y (/ d2 2.0) (/ (- d1 d2) 4.0))) ; ştrixlənəcək sahə daxilində nöqtə
      ""
   )
)
(prompt "DrawDetail ")

; Qatın yaradılması bloku


;******************************************
(defun create_layers()
(command "-linetype" "L" "DASHDOT" "" "")
; Qatda xəttin qalınlığı 0.5 мм - BaseLine, 0.2 мм - Lines, ştrix üçün

Hath   (command "-layer" "M" "BaseLine" "LW" "0.5" "" "C" "white" "" "M" "Lines" "LW" "0.2" "" "C" "blue" "" "L" "DASHDOT" ""
    "M" "Hath" "LW" "0.2" "" "C" "blue" "" "")
)

Yazılmış faylı istənilən adda .LSP formatında yadda saxlamaq olar. Lakin faylın adını elə proqramdakı adla eyni qoymaq məsləhətdir, belə olduqda fayl daha asan tapılır. D diskində MyLisp adında yeni qovluq yaradıb orada faylı saxlamaq daha məqsədəuyğun olar. Onda onun tam yolu belə olar: "D:\MyLisp\Try_param.lsp"




Yüklə 13,77 Mb.

Dostları ilə paylaş:
1   ...   240   241   242   243   244   245   246   247   248




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin