1372826956:AAFe2Py65GSQkfGiRnXuOQ-eD9yXcwMv988

AutoLISP Kullanma-Değişkenler ve Kullanıcıdan Veri İsteme

Sekil-01

AutoLISP öğretici makalelerimize İlk AutoLISP Programınız-Orjine Görüntü Yaklaşma isimli makale ile başlamıştık. O program sorunsuz çalışıyordu; fakat sadece 0,0 noktasına (yani orijine) görüntü yaklaşma yapıyordu. O makalemizin sonunda bu ilk AutoLISP programımızı geliştireceğimizi söylemiştim. Şimdi programa bazı özellikler ekleyeceğiz. Böylece kullanıcı görüntü yaklaşma “zoom in yapılacak noktayı tıklayarak belirleyebilecekler. Kullanıcılar kendi noktalarını tıklayarak seçebilecekleri için, programın isminin Orjine Görüntü Yaklaşma değil de Noktaya Görüntü Yaklaşma olması daha uygun olacaktır. Hatırlayacağınız gibi, o programı komut satırına ZO yazıp Enter tuşuna basarak çalıştırıyorduk. Bu programımızı ise komut satırına ZP yazıp Enter tuşuna basarak çalıştıracağınıza dikkat edin.

Visual LISP Düzenleyicisi “Visual LISP Editor”

Bir AutoLISP programı yaratmak için, Not Defterinin “Notepad” yeterli olduğunu artık biliyorsunuz. Bununla birlikte, Visual LISP düzenleyicisi program karmaşık hale geldiğinde hataları ayıklamada daha kullanışlıdır.

Değişkenleri Kullanma

Programlamada, değerlerimizi saklamak, depolamak ve kaydetmek için, değişkenleri kullanırız. İlk öğreticideki örneğimizde herhangi bir değişken kullanmamıştık. Çünkü herhangi bir değeri depolamamız gerekmiyordu.

Hatırlayacağınız gibi ilk programımızda kodumuz aşağıdaki gibiydi.

(command “_ZOOM” “_C” “0,0” “2000”)

Şimdi koordinatı ZPT (noktaya yaklaş “zoom point”) ve büyütme oranını MRAT (büyütme oranını  “magnification ratio”)olarak kaydetmiş olsaydık kodumuz aşağıdaki gibi görünecekti:

(command “_ZOOM” “_C” ZPT MRAT)

Programın ismi ve kullanıcı değişkenleri benzersiz olmak zorundadır ve AutoCAD sistem değişkenleri değişken olarak kullanılamazlar. Diğer tüm harf dizilimlerini kullanabilirsiniz.

Peki değişkenin değerini AutoCAD’e nasıl söyleyeceğiz? Değişkenlere değerleri setq fonksiyonunu kullanarak atayabilirsiniz. ZPT ve MRAT değişkenlerinin değerlerini ayarlamak için, aşağıdaki iki satırı komt kodumuzun önüne ekleyeceğiz.

(setq ZPT ‘(0 0))
(setq MRAT 2000)

Artık programımız aşağıdaki gibi görünecektir:

(defun c:ZP ()
(setq ZPT ‘(0 0))
(setq MRAT 2000)
(command “_ZOOM” “_C” ZPT MRAT)
(princ)
)

Bu kodu Visual LISP düzenleyicinizde “Visual LISP Editor” yazın ve deneyin. Programı yükleyin ve çalıştırın. Çalışıyor mu?

Kullanıcıdan Veri İsteme

Şimdi kullanıcıdan noktasını belirlemesini isteyeceğiz. 0,0 koordinatının bulunduğu satırı aşağıdaki satırla değiştirin:

(setq ZPT (getpoint))

Programı tekrar yükleyin ve çalıştırın.

Çalışıyor değil mi? Fakat yapmamız gereken bir şey daha var. Program bize herhangi bir uyarı vermese de biz programın bizden bir noktayı tıklayarak seçmemizi istediğini biliyoruz. Fakat şayet programı başka kişilere verirsek, kafaları karışabilir! Bu yüzden kodumuzu düzeltelim.

(setq ZPT (getpoint ”
Bir noktayı tıklayarak seçin: “)

Tekrar yükleyin ve çalıştırın. Güzel… değil mi?

Yerel Değişkenleri Tanımlama

Şimdi AutoCAD’e gidelim. AutoCAD’de komut satırına !ZPT yazın ve Enter tuşuna basın. Değişken isminin önündeki ünlem (!) işareti size değişkenin değerini gösterecektir. Şayet programı hiç çalıştırmadıysanız, hiçbir şey göstermemelidir. Fakat şayet programı daha önce çalıştırdıysanız, tıklayarak seçtiğiniz son koordinatı gösterecektir.

Bu demek oluyor ki, AutoCAD değeri hatırlıyor ve bilgisayarınızın kaynaklarını kullanıyor. Tek bir AutoLISP programımız çalıştığı ve sadece iki değişkenimiz olduğu için, bu bir sorun oluşturmayacaktır. Fakat yüzlerce değişkene sahip onlarca çalışan AutoLISP programınız olduğu zaman, bilgisayarınızın performansı olumsuz etkilenecektir. Şayet başka programda da kullanmak isterseniz, değeri genel değişken olarak bırakmak isteyebilirsiniz. Fakat şayet başka programda da kullanmayacaksanız, değişkeni yerel değişken olarak ayarlamak daha iyidir.

Çiziminizi kapatın ve yeni bir çizim yaratın. Programınızın henüz yüklenip yüklenmediğini test etmek için, komut satırına ZP yazıp Enter tuşuna basın. Şayet yüklenmemişse, komut satırında Bilinmeyen Komut ZP “Unknown command “ZP”. Yardım için F1 tuşuna basın. “Press F1 for help uyarısını görmeniz gerekir. AutoCAD programını kapatın ve tekrar açın. Programınızı yüklemeyin.

Visual LISP Düzenleyicisini “Visual LISP Editor” açın. defun satırını aşağıda gördüğünüz gibi değiştirin:

(defun c:ZP (/ ZPT MRAT)

Şimdi programınızı yükleyin. Programınızı çalıştırdıktan sonra, değişkenin değerini görmek için, komut satırına !ZPT veya !MRAT yazın ve Enter tuşuna basın. Artık hiçbir şey görüntülenmemelidir. Artık AutoCAD programınız çalışmasını tamamladıktan sonra bilgisayarınızın hafızasında değişkenleri tutmamaktadır.

Açıklama Verme

Birçok AutoLISP programı açıklamalara sahiptir. Burada amaç programı bilmeyen insanlar programı çalıştırdığı zaman, onlara programın ne yaptığı, kim tarafından yaratıldığı ile ilgili bilgi vermektir. Ayrıca kodda herhangi bir satırın ne yaptığı bilgisini de ekleyebilirsiniz. Açıklamalar AutoCAD tarafından önemsenmeyecek olup; işleme alınmayacaklardır. Şimdi gerçek bir kod gibi görünsün diye kodumuza açıklamalar ekleyelim ve kodumuzu tamamlayalım.

AutoLISP programınıza açıklamaları noktalı virgül (;) işaretini kullanarak verirsiniz. Ben aşağıdaki şekilde gördüğünüz açıklamaları ekledim. Renkli olarak kodun hoş göründüğünün farkında mısınız? Kod yazarken renklerin ne anlama geldiklerini öğrenmek istiyorsanız,  Visual LISP Düzenleyicisi – Kısım #2 isimli makalemi okuyabilirsiniz.

Sekil-02

Şayet kod ile ilgili sorun yaşıyorsanız, kodun tamamlanmış halini aşağıda bulabilirsiniz. Kopyalayın ve Visual LISP Düzenleyicinize “Visual LISP Editor” yapıştırın.

;Noktaya Görüntü Yaklaşma
;Bu program belirlenen noktaya hızlıca görüntü yaklaşma yapacaktır
;Created by: Sertan Türkan
;www.autocadbeyni.com

(defun c:ZP (/ ZPT MRAT)
(setq ZPT (getpoint ”
Pick a point or type coordinate: “)) ;bu kullanıcıdan veri isteyecektir
(setq MRAT 2000)
(command “_ZOOM” “_C” ZPT MRAT) ; bu ZOOM komutunu çalıştıracaktır.
(princ)
)

Hakkında Sertan Türkan

AutoCAD Beyni

Bunu da Kontrol edin

2.1.3 – Bodrum Kat – İç Duvarlar

Bodrum katının dış ve iç duvarlarının son düzeni, aşağıdaki bodrum katının çiziminde gördüğünüz gibi olacaktır …

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.