6 Ekim 2018

Autolisp ders no 8


 Autolisp











; Çizgi çizme lispi

(defun c:lineciz3 ()
(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)
(setq pt1 (getpoint "\n İlk nokta için ekrana tıkla ?! :"))
(setq pt2 (getpoint "\n İkinci nokta için ekrana tıkla ?! :"))
(setq pt3 (getpoint "\n Üçüncü nokta için ekrana tıkla ?! :"))
(setq pt4 (getpoint "\n Dördüncü nokta için ekrana tıkla ?! :"))
(setq pt5 (getpoint "\n Beşinci nokta için ekrana tıkla ?! :"))
(command "line"  pt1  pt2 "")
(command "line"  pt2  pt3 "")
(command "line"  pt3  pt4 "")
(command "line"  pt4  pt5 "")
(setvar "osmode" oldsnap)
(princ)
)

(Princ "Lisp'i çalıştırmak için lineciz3 yazınız! [http://hqlibrary.blogspot.com] ")


Şimdiye kadar yayınlanan Autolisp derslerinde çizgi , daire , yay çizmeyi öğrenmiştik..

En son Autolisp dersimizde de birçok çizim objesi bulunan karmaşık çizimleri tanımaya başladık.
Bu tip çizim uygulamaları için osmode açıp kapatmamız gerekli.

Oluşturulan Autolisp programında bu işlem uygulanmaz ise, yaptığınız autolisp programı ara sıra hata verir.



Program hakkında açıklamalar :

1) İlk satırda bulunan c: sonrasındaki ifade komut ismidir.Yani buradaki komut ismi lineciz3 olarak belirlendi.

2) Getvar komutu ile osmode deyişkenin güncel değerini öğrendik. Bu değeri de setq komutuyla oldsnap deyişkenine atadık. Setvar komutunu kullanarak osnap değerini sıfırladık. En son yazdığımız bu program bitmeden önce osnap değerini tekrar eski haline getirmemiz gerekiyor.


3) Setq komutu ile ard arda 5 tane deyişken tanımladık. Bu deyişken için isim olarak pt1, pt2, pt3 dedik.. Pt1 demek point1 demek, yani 1 nolu kordinat noktası demek. Pt2 demek 2 nolu kordinat noktası demek.

4) Getpoint komutu ile kullanıcıdan ekrana tıklamasını istedik. Ekrana tıklanıldığında belli bir kordinat noktasını setq komutu ile pt1 deyişkenine tanımladık.

5) Bizlerin kordinat dediği şey aslında x,y,z kordinatı. Çizgi çizdirmek için ekranda birkaç noktaya tıklamak gerekiyor. Bu programda bunu gerçekleştirdik.

5) Command komutunu kullanarak çizgi çizme işini gerçekleştirdik. Daha önceki derslerden farklı olarak daha fazla çizgiyi çizdirmiş oluyoruz. 

6) Autolisp programı bitmeden önce osmode'yi eski haline çevirmek için setvar komutu kullandık. Programın başlangıcında osmode değerini setq komutu ile oldsnap deyişkenine kaydetmiştik.

7) Princ komutunu kullandık.


Sormak istediğiniz bir soru var mı ?!











EmoticonEmoticon