27 Eylül 2018

Autolisp ders no 7


 Autolisp











Şimdiye kadar yayınlanan Autolisp derslerinde çizgi , daire , yay çizmeyi öğrenmiştik. Bu dersimizde farklı olarak birden fazla çizim objesini çizmeyi öğreneceğiz. Birden fazla çizim objesi demek biraz karmaşık bir çizim demek.

Bu tip çizim tipi için uygulamamız gereken yöntem osmode deyişkenini açıp kapatmaktır. Eğer bunu yapmazsak, oluşturulan Autolisp programı yanlış çizim yapabiliyor ara sıra.. Autocad saçmalamaya başladı, yanlış çizim yapıyor dersiniz sonra. :-)


; Çizgi çizme lispi

(defun c:lineciz2 ()
(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 İlk nokta için ekrana tıkla ?! :"))
(command "line"  pt1  pt2 "")
(command "line"  pt2  pt3 "")
(command "line"  pt3  pt1 "")
(setvar "osmode" oldsnap)
(princ)
)

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


Program hakkında açıklamalar :

1) İlk satırda bulunan c: sonrasındaki ifade komut ismidir.Yani buradaki komut ismi lineciz2 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 üç 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 birden 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ı ?

Bir önceki ders için tıkla ( 6 nolu ders)












EmoticonEmoticon