1372826956:AAFe2Py65GSQkfGiRnXuOQ-eD9yXcwMv988

Visual LISP Dersleri Visual LISP’e Giriş – Ders-9 Özellikler & Metotlar Kısım #3

Nesnenin Güncelleme için Kullanılabilir olup olmadığını Belirleme

Şayet diğer bir uygulama, herhangi bir AutoCAD nesnesi ile programınızla eş zamanlı olarak çalışıyorsa, bu nesneler erişilebilir olmayabilir. Reaktörler, önceden tahmin edilemeyen harici olaylara tepki olarak kod bölümleri yürüttüklerinden; şayet uygulamanız reaktör içeriyorsa, bu konuda daha dikkatli olmak gerekir. Kilitli bir tabaka “layer” gibi basit bir şey bile bir nesne özelliklerini değiştirmenizi engelleyebilir.

Visual Lisp, bir nesneyi kullanmaya başlamadan önce o nesnenin erişilebilirliğini sınamak için aşağıdaki fonksiyonları sağlar:

vlax-read-enabled-p Bir nesneyi okuyup okuyamayacağınızı test eder.

vlax-write-enabled-p Bir nesnenin özelliklerini değiştirip değiştiremeyeceğinizi belirler.

vlax-erased-p Bir nesnenin silinip silinmediğini kontrol eder. Silinen nesneler çizim veri tabanında halen mevcut olabilir.

Bu fonksiyonların hepsi değerlendirme sonucu doğruysa “true” ise, T; değerlendirme sonucu yanlışsa “false” ise, boşnill” geri döndürür (hiçbir şey geri döndürmez).

Şimdi haydi bunları  test edelim. AutoCAD‘in çizim alanının herhangi bir yerinde bir çizgi çizin ve Konsol “Console “ istemine aşağıdaki kodu girin:

_$ (vl-load-com)

_$ (setq ent (entsel))

(<Entity name: 17e39f8> (434.601 389.588 0.0))

 

_$ (setq myLine (vlax-Ename->Vla-Object (car ent)))

#<VLA-OBJECT IAcadLine 01e81f84>

Çizginin okunabilir olup olmadığını belirleme:

_$ (vlax-read-enabled-p myLine)

T

Çizginin değiştirilebilir olup olmadığını belirleme:

_$ (vlax-write-enabled-p myLine)

T

Çizginin silinip silinmediğini görme:

_$ (vlax-erased-p myLine)

nil

Çizgiyi silme:

_$ (vla-delete myLine)

nil

Çizginin okunabilir olup olmadığını görme:

_$ (vlax-read-enabled-p myLine)

nil

Nesnenin silindiğini onaylamak için kontrol etme:

_$ (vlax-erased-p myLine)

T

Bir Yöntemin (Metodun) veya Özelliğin Bir Nesneye Uygulanabilir Olup Olmadığını Belirleme

Belirli bir nesneye uygulanması mümkün olmayan bir yöntemi (metodu) kullanmaya çalışmak hatayla sonuçlanır. Aynı şey, bir nesneye uygulanması mümkün olmayan bir özelliğe referans göstermeye çalışmak için de geçerli. Bu da bir hata ile sonuçlanır. Neyin uygulandığından emin olmadığınız durumlarda, vlax-method-applicable-p ve vlax-property-available-p fonksiyonlarını kullanın.

Bu fonksiyonlar, nesne için yöntem (metod) veya özellik kullanılabilir durumdaysa, T; aksi durumda boşnil” geri döndürür.

vlax-method-applicable-p ifadesinin söz dizimi aşağıdaki gibidir:

(vlax-method-applicable-p object method)

Aşağıdaki komut, nesneye KopyalaCopy” yönteminin (metodunun) uygulanıp uygulanamayacağını kontrol eder:

_$ (vlax-method-applicable-p myLine “Copy”)

T

Aşağıdaki komut, nesneye AddBox yönteminin (metodunun) uygulanıp uygulanamayacağını belirler:

_$ (vlax-method-applicable-p myLine “addBox”)

nil

Vlax-property-available-p fonksiyonu için sözdizimi şöyledir:

(vlax-property-available-p object property [T])

Aşağıdaki komutlar, Renk “Color” ve Merkez’ “Center” özelliklerinin myLine nesnesinin özelliği olup olmadığını belirler:

(vlax-property-available-p myLine “Color”)

T

(vlax-property-available-p myLine “Center”)

nil

İsteğe bağlı T argümanını vlax-property-available-p fonksiyonunun anlamını değiştirir. Şayet bu u bağımsız değişkeni belirtirseniz, fonksiyon yalnızca nesne ilgili özelliğe sahipse VE özellik üzerinde değişiklik yapılabiliyorsa T değerini döndürür. Nesnenin böyle bir özelliği yoksa veya özelliği salt okunur ise, vlax-property-available-p fonksiyonu boş “nil” döndürür (hiçbir şey döndürmez).

Örneğin, bir çember, alan  özelliği içerir; ancak bu özelliği güncelleyemezsiniz. Şayet bu özelliği, isteğe bağlı bağımsız değişkeni belirtmeden kontrol ederseniz, sonuç T olur.

(vlax-property-available-p myCircle “area”)

T

Şayet bu özelliği, isteğe bağlı bağımsız değişkeni belirtmeden kontrol ederseniz, sonuç boş nil” olur.

(vlax-property-available-p myCircle “area” T)

nil

Tamam, Visual Lisp’in yöntemleri (metotları)  ve özellikleri de bu şekilde anlattık. Kendime şöyle çift buzlu bi Chivas doldurup güneş batışını seyrederek kafa dinlememin zamanı geldi. İzmir’de yaşamanın avantajları…

Bu ders ile Visual LISP Derslerimizi tamamlamış oluyoruz. Şayet site kullanıcılarından bu konu ile ilgili daha derinlemesine sorular ve talepler gelirse, tabi ki o kunuları anlatan makaleler de yayınlarım. Şimdilik bu konuya elveda hoş geldin yeni AutoCAD konuları…

Hakkında Sertan Türkan

AutoCAD Beyni

Bunu da Kontrol edin

Revitte Altlıklar “Underlay” Hakkında

Revit’te koordinasyon ve inşaat için farklı kotlardaki bileşenlerin ilişkisini anlamanız gerektiğinde Altlıklar “Underlays” yararlıdırlar. Video: …

Bir cevap yazın

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

Yardıma mı ihtiyacınız var? Chat with us
Bir görüşme başlatmak için lütfen önce gizlilik politikamızı kabul edin.