AutoLISP, AutoCAD ortamında özelleştirilmiş komutlar ve araçlar geliştirmek
için kullanılan güçlü bir programlama dilidir. Uygulamalarınızı daha
etkileşimli hale getirmek için, çalışma sırasında kullanıcıdan gerekli
bilgileri almanız gerekebilir. İster bir nokta seçimi, ister bir metin girişi
veya bir sayısal değer olsun, kullanıcıdan bu verileri almak için AutoLISP'te
dahili fonksiyonlar bulunur.
Bu fonksiyonlar sayesinde, kullanıcılar klavye aracılığıyla metin veya sayısal
değerler girebilir ya da fare ile ekranda nokta seçimi, uzunluk girdisi, açı
girdisi, nesne seçimi ve komut alt menü elemanı seçimi yapabilir.
Örneğin, bir çizgi çizmek için başlangıç ve bitiş noktalarını kullanıcıdan
almak veya bir metin etiketi oluşturmak için kullanıcıya metin girişi
yaptırmak mümkündür. Bu tür etkileşimler, uygulamanızın daha esnek ve
kullanıcı dostu olmasını sağlar.
Girdi Fonksiyonları
1) getint Fonksiyonu: Kullanıcıdan Tamsayı Değeri Alma
getint fonksiyonu, kullanıcıdan bir tamsayı (integer)
değeri almak için kullanılır. Kullanıcı bir değer girdikten sonra
Enter veya Boşluk
tuşuna basarak girişini onaylar. Giriş sağlanana kadar uygulama duraksar.
Bu fonksiyon, özellikle sayısal bir değer girilmesi gereken durumlarda
tercih edilir. Örneğin, bir nesnenin kaç kopyasının oluşturulacağı veya
belirli bir mesafenin kaç birim olacağı gibi işlemlerde kullanılır.
Bu fonksiyona aktarılabilecek değerler -32,768 ile +32,767 arasında bir
tam sayıdır. (16 bit. Bir bit, sayı işareti için kullanıldığı için 15
bitlik sayı. 2^15 = 32768)
Kullanıcı tamsayı dışında bir değer(örneğin ondalıklı sayı veya metin)
girerse, fonksiyon “Requires an integer value" (Bir tamsayı
değeri gerektiriyor) mesajını görüntüler ve kullanıcının tekrar giriş
yapmasına izin verir.
Veri girmeden Entere basılırsa fonksiyon nil
sonucunu verir.
Kullanımı:
(getint [mesaj])
mesaj : Kullanıcıya gösterilecek mesajdır. Kullanılması zorunlu
değildir. Eğer belirtilmezse, fonksiyon herhangi bir mesaj göstermeden sayı
girişi bekler.
Örnekler:
(setq sayi1 (getint))
Mesaj vermeden kullanıcıdan tam sayı girdisi bekler. Girilen tam sayı
sayi1 değişkenine aktarılır.
(setq kopyasayisi (getint "\nKopya sayısı:"))
(princ (strcat "\nGirilen sayı: " (itoa kopyasayisi)))
\n satır başı kodudur. mesaj yeni satırda yazılır.
itoa tam sayıyı metne dönüştürür.
strcat metinleri birleştirir.
princ metni komut satırında yazdırır.
(setq sayi (getint "\nLütfen bir tamsayı girin: "))
(if sayi ; sına: sayi nil değilse?
;doğru ise
(princ (strcat "\nGirdiğiniz sayı: " (itoa sayi)))
;yanlış ise ise
(princ "\nGeçersiz giriş! Lütfen bir tamsayı girin.")
)
2) getreal Fonksiyonu: Kullanıcıdan Ondalıklı Sayı Alma
Bu fonksiyon kullanıcıdan bir reel sayı (floating-point number) değeri almak
için kullanılır. Özellikle kullanıcının ondalıklı bir değer girmesi gereken
durumlarda (örneğin, bir uzunluk, yarıçap veya ölçek faktörü belirtirken)
oldukça kullanışlıdır. getint fonksiyonundan farklı olarak küsuratlı
(ondalıklı, reel) sayılar da girilebilir. Tam sayı girilirse sayı reel sayıya
dönüştürülür. 5 sayısı 5.0 reel sayısına dönüşür.