1372826956:AAFe2Py65GSQkfGiRnXuOQ-eD9yXcwMv988

Örneklerle Fonksiyon Tanımları #16 – Varlıklara Erişim

sekil-01


entlast            Veri tabanındaki son varlığın ismini geri döndürür. Varlık ana varlık olmalıdır ve silinmiş olamaz.

(entlast) veri tabanındaki son varlığın ismi olarak döner

Bu varlık ismi varlığın tam tanımını elde etmek için, varlık ismi entget fonksiyonuna gönderilebilir. Aşağıdaki entget fonksiyonuna bakın.

Sıklıkla command fonksiyonu ile yaratılmış varlığın ismini elde etmek için, kullanılır.

Bu varlığın ismi AutoCAD genel bir nesne seçimi yapması için uyarıldığı zaman, AutoCAD’e gönderilebilir.

Aşağıdaki entnext fonksiyonuna bakın.


entnext           Veri tabanından (ana varlık veya alt varlık) bir varlığın ismini geri döndürür.

(entnext) veri tabanındaki ilk varlığın ismi olarak döner (entnext en) en değişkeni tarafından belirlenen değişken tarafından tanımlanan varlıktan bir sonraki varlık olarak döner.

Şayet en değişkeni tarafından belirlenen varlık veri tabanındaki son varlıksa, hiçbir şey geri döndürmez (boş olarak geri döner).

Bu varlığın ismi AutoCAD genel bir nesne seçimi yapması için uyarıldığı zaman, AutoCAD’e gönderilebilir.  Örneğin, ERASE komutu girildikten sonra kullanıcı nesne seçmesi için, uyarılması için, en1 argümanını kullanırsınız (burada en1 isimli değişkene bir varlığın ismini atandığı kabul edilmiştir.).

(command “.erase” en1 “”) örneğinde olduğu gibi isim bir command fonksiyonu içerisinde de kullanılabilir.


entsel              Hem (fare ile veya koordinatları girilerek seçilen) varlık ismini hem de noktayı geri döndürür.

(entsel “Varlığı tıklayarak seçin. “) varlığın ismi ve varlığın seçilirken tıklandığı noktanın koordinatları olmak üzere 2 eleman ile döner. Varlığın ismini bu listeden car fonksiyonu ile ve noktayı cadr fonksiyonu ile elde edebilirsiniz.

Şayet örneğimizde belirttiğimiz gibi “Varlığı tıklayarak seçin. “gibi bir uyarı mesajı belirtilmezse, ön tanımlı uyarı mesajı olan Nesne Seç “Select object: “uyarı mesajı görüntülenir.


nentsel           Şayet basit bir varlık seçilirse, entsel fonksiyonu ile aynı bilgileri geri döndürür.

Şayet (sürekli çizgi “polyline” veya blok gibi) karmaşık bir varlık seçilirse, seçilen varlığın alt varlık bilgisi de ilave bilgi olarak geri döndürülür.

nentselp         nentsel fonksiyonu ile aynı bilgileri geri döndürmekle birlikte; kullanıcı verisine ihtiyaç duyulmasın diye bir nokta belirleyen ilave ikinci bir argümanı kabul eder.


entget             Bir varlığı tanımlayan varlık listesini geri döndürür.

(entget en) en değişkeni tarafından tanımlanan varlığı AutoCAD’in DXF grup kodlarına benzeyen (fakat bire bir aynı değil) varlık listesi formunda elde eder.

Birkaç varlık listesi örneği aşağıda verilmiştir. Varlığın “sözel” tanımı ilk önce verildikten sonra, geri dönen varlık listesi AutoLISP tanımı formunda verilmiştir. Bu varlık listesi tam liste olmayıp; görsel amaçlı olarak sadece anahtar elemanları içermektedir:

  • 2 isimli tabaka üzerinde 0,2 noktasından 1,3 noktasına çizgi

((-1 . <Entity name: #######>) (0 . “LINE”) (8 . “LAYER2”) (10 0.0 2.0 0.0) (11 1.0 3.0 0.0))

  • Merkezi 3,2 noktasında olan 0.75 birim yarıçaplı çember

((-1 . <Entity name: #######>) (0 . “CIRCLE”) (8 . “LAYER4”) (10 3.0 2.0 0.0) (40 . 0.75))

  • Sertan isimli tabaka üzerinde, merkezi 5,6 noktasında olan 0.5 birim yarıçaplı 0 derece ile 90 derece arasındaki yay

((-1 . <Entity name: #######>) (0 . “ARC”) (8 . “SERTAN”) (10 5.0 6.0) (40 . 0.5) (50 . 0.0) (51 . 1.5708))

  • 2 isimli tabaka üzerinde 1,8 noktasında yüksekliği 0.4 birim olan 51 derecelik (0.261799 radyan), “AutoCAD beyni .com” yazısı

((-1 . <Entity name: #######>) (0 . “TEXT”) (8 . “0”) (10 1.0 8.0 0.0) (40 . 0.4) (1 . “AutoCAD beyni .com”) (50 . 0.261799) (41 . 1.0) (51 .0.0) (7 . “STANDARD”) (71 . 0) (72 . 0) (11 0.0 0.0 0.0)

  • 1,1,0 noktasından 2,1,0 noktasına ve 2,1,1 noktasından 1,1,1 noktasına 3 boyutlu yüz “3dface”

((-1 . <Entity name: #######>) (0 . “3DFACE”) (8 . “2”) (10 1.0 1.0 0.0) (11 2.0 1.0 0.0) (12 2.0 1.0 1.0) (13 1.0 1.0 1.0))

Herhangi bir varlığın varlık listesinde istediğiniz bilgiyi öğrenmek için, öncelikle varlığı çizin ve sonrasından komut satırına (entget (entlast)) ifadesini girerek Enter tuşuna basın.

Her bir alt liste (örneğin tabaka için 8, yarıçap için 40 gibi) bir grup numarası içerir. cdr ve assoc fonksiyonları kullanılarak, belirlenmiş grup numarası ile ilişkilendirilmiş bir değer elde edilebilir. Örneğin, şayet yukarıdaki çember için olan varlık listesi el değişkenine ayarlanırsa,

(assoc 40 el) (40 . 0.75) olarak döner

(cdr (assoc 40 el)) 0.75 olarak döner

(assoc 10 el) (10 3.0 2.0 0.0) olarak döner

(cdr (assoc 10 el)) (3.0 2.0 0.0) olarak döner

Bir noktasal çiftin cdr fonksiyonu tarafından bir liste olarak değil de, bir atom (tekil varlık) olarak döndürüleceğini unutmayın.


entmod           Varlığı veri tabanındaki değişmiş varlık listesine göre düzenler (değiştirir. Varlık listesi entget fonksiyonundan elde edilen listenin formundadır.

(entmod elnew)  elnew değişkeninin subst fonksiyonunun kullanılması sonucunda elde edilen varlık listesi olması kabulüyle; bu entmod fonksiyonu elnew değişkenindeki mevcut verilerle eşliği sağlama amacıyla veri tabanını değiştirir.


entupd            Ekrandaki düzenlenmiş varlığı günceller (yeniler). Sürekli çizgilere “Polyline” birleşim noktalarına “vertice” veya blok özniteliklerine “block attributes” uygulanır.

(entupd en) en değişkeninde depolanmış olan varlığı günceller


entdel             Varlığı siler veya geri getirir. Sadece ana varlıklar üzerinde çalışır.

(entdel en) en değişkeni tarafından tanımlanan varlığı siler (veya şayet varlık aynı düzenleme oturumunda daha önceden silindiyse, geri getirir).


entmake         entget fonksiyonu tarafından geri döndürülen elde edilen varlık listesine göre yeni bir varlık yaratır.

(entmake ‘((0 . “CIRCLE”) (10 2.25 3.25 0.0) (40 . 0.75))) merkezi 2.25, 3.25 koordinatında olan 0.75 birim yarıçaplı bir çember yaratır. Tabaka “Layer”, renk “color” ve çizgi tipi “linetype” belirlenmediği için, bunlar o anki geçerli (aktif) tabakaya “layer”, renge “color” ve çizgi tipine “linetype” ayarlanırlar.


handent          Varlığın ismini elde etmek için, varlığın tutamacını kullanır. Varlığın ismi bir düzenleme işleminden sonraki düzenleme işlemine değişir.

Tutamaç (hex ID numarası) eh değişkenine atandıktan sonra,

(handent eh) varlık silinmiş olsa da ya da silinmemişse bile varlığın o anki geçerli (aktif) düzenleme işlemindeki ismi olarak döner.


textbox           yazı varlığını çevreleyen kutucuğun çapraz köşelerini geri döndürür. Yazı varlığı mevcut veya başka bir fonksiyon tarafından “sunulmuş” olabilir.

Çizime bir yazı yarattıktan sonra

Yazının varlık listesini el değişkenine atayan (setq el (entget (entlast))) ifadesinden sonra,

(textbox el) yazının 0,0,0 noktasına yerleştirilmiş, sıfır (0) dönme açısına sahip olduğu kabulü ile yazıyı çevreleyen kutucuğun sol alt ve sağ üst köşeleri olan iki noktayı içeren liste olarak döner. textbox fonksiyonu yazı tarafından kullanılan yazı karakter yüzünü “font” ve stilini dikkate alır.

Başka bir fonksiyon tarafından “sunulmuş” yazıyı çizime yerleştirmeden önce analiz etmek için, (en azından metin dizgesini içeren) varlık listesi aşağıdaki formda textbox fonksiyonuna teslim edilir:       (textbox ‘((1 . “yazınızı buraya koyun”))) Şayet yukarıda gösterildiği gibi sadece metin dizgesi teslim edilirse, textbox fonksiyonu yazının stili (stilin ilişkili yazı karakter yüzünü “font, en faktörünü “width factor”) ve yüksekliğini o anki geçerli (aktif) ayarlardan alır. Şayet o anki geçerli(aktif) ayarların kullanılması istenmiyorsa, bu ayarlar textbox fonksiyonuna teslim edilen varlık listesinde açıkça tanımlanmalıdır.

 

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.