15) ssget Fonksiyonu : Seçim seti oluşturma
ssget fonksiyonu, AutoCAD'de belirli kriterlere uyan nesneleri seçmek için kullanılır. Bu fonksiyon, seçim seti (selection set) oluşturmanıza olanak tanır. Seçim seti, AutoCAD çizimindeki nesnelerin bir koleksiyonudur.
(ssget [seçim-modu] [n1 [n2]] [nokta-listesi] [filtre-listesi])seçim-modu: Bu parametre isteğe bağlıdır ve seçim yöntemini belirler. Örneğin, "W" (Window), "C" (Crossing), "L" (Last), "P" (Previous), "I" (Implied), "X" (All) gibi modlar kullanılabilir.
Mod | Açıklama |
---|---|
A | (All) Tüm nesneler seçilir |
C | (Crossing) Belirtilen dikdörtgenin içinden geçen ve içindeki tüm nesneler |
CP | (Crossing Polygon) Belirtilen noktalardan oluşan çokgenin içinden geçen ve içindeki tüm nesneler. |
F | (Fence) Çit seçimi: Belirtilen noktalarla oluşan hattın kestiği tüm nesneler seçilir. |
I |
(Implied) Zımni seçim; AutoCAD PICKFIRST sistem değişkeni
etkinken seçilen nesneler. Not: ssget işlevi geçerli bir seçim kümesi veya nil döndürür. İşlev çağrıldığında bir nesne seçilirse, geçerli bir seçim kümesi döndürülür. |
L | (Last) AutoCAD veri tabanına eklenen son görünür nesne seçilir. |
P | (Previous) Önceki seti kümesi seçilir. |
W | (Window) Belirtilen dikdörtgen içindeki tüm nesneler seçilir. |
WP | (Window Polygon) Belirtilen noktalardan oluşan çokgen içindeki tüm nesneler seçilir. |
X | (Entire database) Filtre listesi sağlamazsanız kapalı, dondurulmuş ve görünür ekranın dışında olan katmanlardaki varlıklar da dahil olmak üzere veri tabanındaki tüm varlıkları seçer. |
:D | (Double)Yinelenen nesnelerin seçilmesine olanak tanır. |
:E | (Everything) İmlecin nesne seçimi seçim kutusundaki her şey seçilir ve seçim setine eklenir. |
:L | (unLocked)Yalnızca kilidi açılmış katmanların seçilmesine izin verir. |
:N |
(Nested) Seçim işlemi sırasında seçilen nesneler hakkında ek
bilgiler almak için ssnamex fonksiyonunu çağırabilirsiniz. Bu fonksiyon, özellikle container bloklar ve dönüşüm matrisleri hakkında bilgi sağlar. Ancak, bu ek bilgiler yalnızca grafiksel seçim yöntemleri (W, WP, F vb.) kullanılarak seçilen nesneler için mevcuttur. Diğer nesne seçim yöntemlerinden farklı olarak, :N seçim modu, seçim kümesinde aynı nesne adına sahip birden fazla nesne döndürebilir. Örneğin, kullanıcı BlockReference, PolygonMesh veya eski tip polyline'lar gibi karmaşık nesnelerin alt nesnelerini seçtiğinde, ssget hangi alt nesnenin seçildiğini kontrol eder. Ancak, ssget seçim kümesine ana nesneyi (örneğin BlockReference veya PolygonMesh) ekler. Bu durum, seçim kümesinde aynı nesne adına sahip birden fazla girişin bulunmasına neden olabilir. Ancak her giriş, ssnamex fonksiyonunun rapor edebileceği farklı alt nesne bilgilerine sahip olacaktır. |
_:R |
Uzun işlemler (long transactions) içinde bulunan nesnelerin seçilmesine
olanak tanır. AutoCAD'de uzun işlemler, harici referanslar (Xref) veya veritabanı işlemleri sırasında başka bir çizimden nesneleri geçici olarak düzenleme durumlarını ifade eder. |
:S |
(Single) Sadece bir nesne seçilmesine izin verir, ancak birden
fazla nesne seçilebilir. Fare ile bir nesne üzerinde tıklandığında sadece tıklanan nesne seçilir ancak çerçeve veya çit seçim moduyla birden çok nesne de seçilebilir. Eğer sadece tek bir nesne seçilmesini zorunlu kılmak istiyorsanız, "+." seçeneğini kullanmalısınız: (ssget "+.:S") |
_:U | (Subentity) Alt varlık seçimini etkinleştirir. Yinelenen (“:D”) veya iç içe geçmiş (“:N”) seçim modlarıyla birleştirilemez. Bu modda, üst düzey varlıklar varsayılan olarak seçilir, ancak kullanıcı seçim yaparken CTRL tuşuna basarak alt varlıkları seçmeyi deneyebilir. Bu seçenek yalnızca pencere, çaprazlama ve çokgen gibi etkileşimli seçimlerle desteklenir. Tümü, filtrelenmiş veya grup seçimleri için desteklenmez. |
_:V | Alt varlık seçimini zorlar. Kullanıcı tarafından gerçekleştirilen tüm etkileşimli, grafik seçimleri alt varlık seçimleri olarak değerlendirir. Döndürülen seçim kümesi yalnızca alt öğeleri içerir. Bu seçenek yinelenen (“:D”) veya iç içe (“:N”) seçim modlarıyla birleştirilemez. Bu seçenek yalnızca pencere ve çaprazlama gibi etkileşimli seçimlerle desteklenir. Tümü, filtrelenmiş veya grup seçimleri için desteklenmez. |
# |
Hangi nesne seçim modlarına izin verildiğini kontrol eder.
+ ve - ile birlikte, ilgili seçim modlarını kontrol etmek için aşağıdaki anahtar kelimeleri kullanın: A - Tümü B - Kutu (Dikdörtgen seçim) C - C ve CP F - F G - Grup L - L M - Çoklu P - P W - W ve WP |
_ | (Alt tire _ )Yerelleştirilmemiş mod anahtar öneki. AutoCAD'in İngilizce olmayan sürümlerinde mod anahtarının İngilizce sürümünün kullanılmasını sağlar. Tüm mod dizeleri için kesinlikle gerekli değildir (çünkü bazı mod dizeleri tüm dil sürümlerinde aynıdır), ancak hariç tutmaktansa dahil etmek daha güvenlidir. |
; Kullanıcıdan seçilecek nesneleri seçmesini bekler (ssget) ; 10,10 konumunda bulunan son nesneyi seçer (ssget '(10 10)) ; Tüm nesneleri seçer (ssget "X") ; 10,10 ile 100,100 noktaları ile oluşan çerçeve içine tamamı sığan ; tüm nesneleri seçer. Sağa çapraz seçme gibi (ssget "W" '(10 10) '(100 100)) ; 10,10 ile 100,100 noktaları ile oluşan dikdörtgen çerçeve içine ; tamamı veya bir kısmı giren tüm nesneleri seçer. Sola çapraz seçme gibi (ssget "C" '(10 10) '(100 100)) ; Tüm çemberleri seçer (ssget "X" '((0 . "CIRCLE"))) ; Kat_4 katmanındaki tüm neneler (ssget "X" '((8 . "Kat_4"))) ; Elektrik katmanındaki tüm çizgi(LINE) nesneleri (ssget "X" '((0 . "LINE") (8 . "Elektrik"))) ; Nesne tür adında LINE olan tüm nesneleri seçer ; LINE PLINE SPLINE MLINE (ssget "X" '((0 . "*LINE"))) ; Son oluşturulan nesneyi seçer (ssget "L") ; Bir önceki seçim setini tekrar seçer (ssget "P") ; Nesne üzerinde tıklanarak sadece bir nene seçer. ; Çapraz çerçeve oluşturarak veya diğer seçme yöntemleri ile ; birden fazla nesne de seçilebilir. (ssget ":S") ; Nesne üzerinde tıklanarak birer birer nesne seçilir (ssget ":E") ; Yeşil renkli yay nesneleri seçilir (ssget "X" '((0 . "ARC") (62 . 3))) ; Kullanıcının seçtiği nesnelerden kırmızı çizgiler seçilir (ssget ":S" '((0 . "*LINE") (62 . 1)))Örnek 2:
Çizim alanında kaç tane çember var?
(setq ss (ssget "X" '((0 . "CIRCLE")))) ; çemberleri seç ; Eğer çember bulunduysa (if ss (progn ; Seçim setindeki çember sayısını hesapla (setq count (sslength ss)) ; Sonucu ekrana yazdır (princ (strcat "\nÇizimde toplam " (itoa count) " adet çember var")) ) ; Eğer çember yoksa (princ "\nÇizimde hiç çember yok.") )
; Çizgileri seç, seçim seti oluştur (setq ss (ssget '((0 . "LINE")))) (if ss ; Eğer seçimde çizgi varsa (progn (setq n 0 top 0.0) ; Değişkenleri sıfırla ; Seçim setindeki her bir çizgiyi işle (while (< n (sslength ss)) (setq entdata (entget (ssname ss n)) ; Çizgi verilerini al ; Çizgi uzunluğunu hesapla, toplam uzunluğa ekle top (+ top (distance (cdr (assoc 10 entdata)) (cdr (assoc 11 entdata)))) n (1+ n) ; Sonraki çizgiye geç ) ) (princ (strcat "\nToplam çizgi uzunluğu: " (rtos top))) ) (princ "\nSeçimde çizgi yok.") ; Eğer çizgi yoksa )
- ssadd
- ssdel
- ssgetfirst
- sslength
- ssmemb
- ssname
- ssnamex
- sssetfirst