|
Orhan Toker |
||||||||
| DERS.8 Seçim Setleri (Selection Sets) Seviye: İleri Kaynaklar: Autodesk, VisualLISP IDE Help file [12.Nisan.2006] |
|||||||||
Merhabalar, Bu dersle birlikte AutoLISP'te ileri seviyeye geçeceğiz. AutoLISP ile yapacağınız çoğu programda nesneleri kullanıcının yardımı olmadan da seçmeniz gerekebilecektir. Ya da kullanıcıdan bir seçim oluşturduğunda sizin bu seçim içerisinden sadece istediğiniz nesneleri kullanmak, ya da çizim veri tabanından bir eleme yapmak gibi ihtiyaçlarınız olacaktır. İşte tüm bu bahsettiğim sebeplerden dolayı seçim setleri ve bunları yönetme kavramlarını öğrenmeniz gereklidir. Önce biraz Autocad'de herhangi bir düzenleme komutuna girdiğimizde neler olduğunu gözden geçirelim. Örneğin ERASE komutuna girdiğinizde hemen komut satırında
ibaresi belirir. Siz dilediğiniz yöntemle, ister pikleyerek, ister pencere ya da çit açarak seçim yaparsınız ve siz bu seçim modundan çıkana dek sçer ya da çıkarırsınız. İşte bu esnada Autocad, nokta-nokta olarak seçtiğiniz objeleri gösterir. Bu objeler o anda oluşturduğunuz seçim setinin üyeleridir. Yenisini seçtiğinizde seçim setinize bir eleman daha eklemiş, REMOVE seçeneği ile yanlış seçtiğinizi çıkardığınızda seçim setinden bir eleman silmiş olursunuz. Bütün bu faaliyetleri AutoLISP içinde de yapma işine seçim seti oluşturma ve seçim seti yönetimi denir. |
|||||||||
| (ssget) Kullanarak yeni seçim seti oluşturmak | |||||||||
(ssget) fonksiyonu seçim seti yaratmak için kullanılır. Fonksiyonun kullanım biçimi aşağıdaki gibidir.
Argümanları açıklayacak olursak: Seçim Metodu [sel-method]
[pt1 [pt2]]
[point-list] Nokta Listesi
[filter-list]
Örnekler:
Bu kullanıcıdan bir seçim yapmasını ister ve seçim bittiğinde sonuç olarak yeni seçim setini döner.
2,2 Noktasından geçen bir obje varsa onu seçer.
Bir önceki seçim seti ile yeni bir seçim seti oluşturur.
0,0 ve 1,1 noktalarının oluşturduğu crossing penceresinin değdiği ve içine aldığı tüm obleri seçim setine koyar
0,0 ve 5,5 penceresinin içine giren objlerle seçim seti yaratır.
Bu örnek önceden seçilmiş objelerin içinde rengi mavi olan çizgileri seçer. '((0 . "LINE") (62 . 5)) bu kısım rengi mavi objeleri filtrelemek için kullanılır.
Bu örnekte 1,1 3,1 5,2 2,4 noktalarının oluşturduğu çit poligonun değidiği ve kapsadığı objeler seçilir. ssget fonksiyonuna nokta listesinin nasıl pas edildiğini görebilirsiniz. |
|||||||||
| Seçim setlerini işlemek | |||||||||
Bir kez seçim seti yarattığınızda, ona nesneler ekleyebilir ya da çıkartabilir, içinde dolaşabilir, nesneleri sorgulayabilirsiniz. Örnekte entnext ve entlast fonksiyonlarını kullanarak çizimdeki ilk ve son nesneleri aldık Eğer çiziminizde hiç varlık yoksa örnek çalışmayacaktır.
kodu seçim setinden çizimin ilk nesnesini siler. Eğer çizimde 1 eleman varsa ilk eleman ve son elaman aynı olacaktır ve kod seçim setini tamamen silmiş olacaktır. (sslength) fonksiyonu seçim setinin içinde kaç elaman olduğunu sayar. Eğer çizimde birden fazla eleman varsa yukarıdaki örneğimiz (sslength ourset) dediğimizde 2 sonucunu verecektir. |
|||||||||
| Seçim setinin içinde ilerlemek (ssname) | |||||||||
Seçim setinizin içindeki nenseleri ssname kullanarak çağırırsınız. Aşağıdaki örnek ssname fonksiyonunun kullanımını anlatıyor.
|
|||||||||
| Seçim setinden nesne çıkartmak | |||||||||
ssdel fonksiyonu ile seçim setinden nesne çıkartabilirsiniz. Kullanım şekline örnek olarak yukarıdaki seçim setinden ent1 nesnesini çıkartabiliriz.
|
|||||||||
| Seçim setini filtrelemek | |||||||||
Seçim seti oluştururken içinden istediğimiz özelliğe göre filtreleme yapabiliriz. Bunun için seçim seti oluşturma esnasında bir filtre listesi pas geçmeliyiz. Oluşturacağımız liste, tıpkı DXF kod listesi gibi noktalı çift listesi olmalıdır. Aşağıda size bir kaç örnek veriyorum:
Bu dersimiz bu kadar. İleride yapacağımız uygulamalarda seçim setlerine örnekler vermeye çalışacağım. Kolay gelsin. |
|||||||||
| (c) Copyright 2006 Taliasoft, by Orhan Toker |