Bir Koleksiyon nesnesinin belirli bir üyesini seçmek için şunu kullanın: Öğeyöntem.
O ÖğeBu yöntem, koleksiyon içindeki öğenin konumunu belirten bir indeks numarası veya öğenin adını temsil eden bir dize şeklinde bir tanımlayıcı gerektirir.
O Öğe`method`, bir koleksiyon için varsayılan yöntemdir. Bir koleksiyona atıfta bulunurken bir yöntem adı belirtmezseniz, `Item` varsayılır. Aşağıdaki ifadeler eşdeğerdir:
- AutoLISP
-
( vla - Item layerCollection "ABC" )
- VBA (Sadece AutoCAD için)
-
BuÇizim.Katmanlar.Öğe ( " ABC " ) BuÇizim.Katmanlar ( " ABC " )
Not: Varlık düzenleme yöntemlerini kullanmayın (Kopyala, Sıralamak, Ayna(ve benzeri) herhangi bir nesne üzerinde işlem yaparken aynı anda bir koleksiyon üzerinde yineleme yapmak. Her biri içinMekanizma. Koleksiyondaki bir nesneyi düzenlemeye çalışmadan önce yinelemeyi bitirin veya geçici bir dizi oluşturup bunu koleksiyona eşitleyin. Ardından kopyalanan dizide yineleme yaparak düzenlemelerinizi gerçekleştirebilirsiniz.
Katmanlar koleksiyonunda yineleme yapın. #
Aşağıdaki örnek, bir koleksiyon üzerinde yineleme yaparak koleksiyondaki tüm katmanların adlarını görüntüler:
- AutoLISP
-
( vl - load - com ) ( defun c : Ch2_IterateLayer () ( setq acadObj ( vlax - get - acad - object ) doc ( vla - get - ActiveDocument acadObj ) layerCollection ( vla - get - Layers doc ) msg "" ) ( vlax - for item layerCollection ( setq msg ( strcat msg ( vla - get - Name item ) "\n" )) ) ( uyarı mesajı )
- VBA (Sadece AutoCAD için)
-
Sub Ch2_IterateLayer () ' Koleksiyon üzerinde yineleme yap Hata durumunda sonraki adıma devam et Dim I As Integer Dim msg As String mesaj = "" I = 0'dan ThisDrawing.Layers.count - 1'e kadar mesaj = mesaj + BuÇizim.Katmanlar.Öğe(I).Adı + vbCrLf Sonraki MsgBox msg Son Alt Yordam
MyLayer adlı katmanı bulun. #
Aşağıdaki örnek, MyLayer adlı katmana atıfta bulunur ve katman mevcut değilse bir mesaj görüntüler:
- AutoLISP
-
( vl - load - com ) ( defun c : Ch2_FindLayer () ( setq acadObj ( vlax - get - acad - object ) doc ( vla - get - ActiveDocument acadObj ) layerCollection ( vla - get - Layers doc )) ( setq ABCLayer ( vl - catch - all - apply 'vla-Item (list layerCollection "MyLayer"))) (if (vl-catch-all-error-p ABCLayer)(Uyarı: "' MyLayer ' katmanı mevcut değil.") ) )
- VBA (Sadece AutoCAD için)
-
Sub Ch2_FindLayer () ' Item yöntemini kullanarak MyLayer adlı bir katmanı bulun Hata durumunda sonraki adıma devam et Dim ABCLayer As AcadLayer ABCLayer'ı ThisDrawing.Layers("MyLayer") olarak ayarla. Eğer Hata <> 0 iseMsgBox " ' MyLayer ' katmanı mevcut değil." Sonlandır Son Alt Yordam
