1372826956:AAFe2Py65GSQkfGiRnXuOQ-eD9yXcwMv988

AutoLISP Öğreticisi-Filitreler ile Seçim Setleri Yaratma

Sekil-01

Son makalemizde, AutoLISP’te nesne seçimleri ile nasıl çalışacağımızı öğrenmiştik.

Bu öğreticimizde, AutoLISP’te seçim filtrelerini “filters” kullanarak konumuzu derinleştireceğiz. AutoLISP’te filtreleri “filters” kullanmak AutoCAD’de filtreleri “filters” kullanmak kadar kolaydır.

Seçmek istediğimiz nesne tiplerini tanımlayabiliriz. Seçmek istediğimiz nesnelerin sahip olmasını istediğimiz özellikleri tanımlayabiliriz.

Sekil-01

Örneğin, çizimimizdeki tüm ölçüleri seçen ve bunları açıklama isimli tabakaya “layer” taşıyan bir program yazabiliriz. Bu öğreticide, bu programı yaratacağız.

Bu program muhtemelen çok basit bir program olacaktır; fakat çizim standartlarınızı sağlamada sizlere faydalı olacağını düşünüyorum.

Daha önceki öğreticilerimizde öğrendiğimiz gibi aşağıdaki kodu kullanarak çizimimizdeki tüm nesneleri seçebiliriz:

(setq sel1 (ssget “x”))

Nesne Filtresi Filter”

Çizimimizdeki ölçüleri “dimensions” seçmek istediğimiz için, aşağıdaki kodu kullanarak seçimimizi filtreleyebiliriz:

(setq sel1 (ssget “x” ‘((0 . “DIMENSION”))))

Kodumuzun tam hali aşağıdaki gibi olacaktır:

(defun c:dimla (/ sel1 CLAYER )
(setq sel1 (ssget “X” ‘((0 . “DIMENSION”)))) ; tüm ölçüleri “dimension” seçer.
(setq OLDLAYER (getvar “CLAYER”)) ;o anki geçerli (aktif) tabakayı “layer” elde eder.
(command “_layer” “m” “ÖLÇÜ” “”) ;ÖLÇÜ isimli yeni bir tabaka “layer” yaratır.
(setvar “CLAYER” OLDLAYER) ;o anki geçerli (aktif) tabakayı ilk haline getirir.
(command “CHPROP” sel1 “” ; çizimdeki ölçülerin “dimensions” tabakasını ÖLÇÜ isimli tabaka olarak değiştirir.
“”)
);END PROGRAM

Bu basit kod ile çiziminiz içerisindeki tüm ölçüleri “dimensions” bulup istediğiniz tabakaya “layer” taşıyabilirsiniz. Faydalı değil mi?

DXF Kodları

Bu konu ile ilgili bilmeniz gereken bir şey de DXF kodlarıdır.

Kodumuz içerisinde geçen (0 . “DIMENSION”) ifadesi bize seçimimizi nesne tipine göre tanımlama olanağı vermektedir. Buradaki 0 DXF kodu olup; sadece ölçü “dimension” nesnelerini seçmemize izin vermektedir.

(8 . “DIMENSION”) ifadesi bize seçimimizi nesne tabakasına “layer” göre tanımlama olanağı vermektedir. Buradaki 8 DXF kodu olup; sadece dimension isimli tabaka “layer” üzerindeki nesneleri seçmemize izin vermektedir.

DXF kodlarını AutoLISP’te seçim filtreleriyle birlikte kullanırız.

DXF kodlarının tam listesi aşağıda olup; bu kodların anlamlarını açıklamayı başka bir makaleme bırakıyorum.

 

Grup Kodu Tanımı
-5 UYGLM “APP”: kalıcı reaktör zinciri
-4 UYGLM “APP”: (sadece ssget fonksiyonuyla kullanılan) şart işlemcisi ”operatör”
-3 UYGLM “APP”: genişletilmiş veri (XDATA) sentinel sabiti
-2 UYGLM “APP”: varlık adı referans sabiti
-1 UYGLM “APP”: varlık adı. Bu değer her çizim açıldığında değişir. Hiçbir zaman kaydedilmez.
0 Varlık tipini gösteren metin dizgesi (sabit)
1 Bir varlık için birincil metin değeri
2 İsim (öznitelik “attribute” etiketi, blok ismi v. b. g.)
3-4 Diğer yazı veya isim değerleri
5 Varlık tutamacı. 16 hegzadesimal basamağa kadar olabilen metin dizgesi (sabit)
6 Çizgi tipi “Linetype” ismi (sabit)
7 Yazı stili “Text style” ismi (sabit)
8 Tabaka “Layer” ismi (sabit)
9 DXF: değişken adı tanımlayıcısı (sadece DXF dosyasının Başlık “Header” kısmında kullanılır).
10 Birincil nokta. Bu bir çizginin veya yazının başlangıç noktası, çemberin merkezidir.
DXF: Birincil noktanın X değeri
UYGLM “APP”: 3B “3D” nokta
11-18 Diğer noktalar.
DXF: Diğer noktaların X değeri
UYGLM “APP”: 3B “3D” nokta
20, 30 DXF: Birincil noktanın Y ve Z değerleri
21-28, 31-37 DXF: Diğer noktaların Y ve Z değerleri
38 DXF: Şayet sıfır değilse, varlığın yüksekliği. Sadece AutoCAD 11 sürümünden önceki AutoCAD çıktılarında mevcuttur.
39 Şayet sıfır değilse, varlığın kalınlığı (sabit)
40-48 Kayan “Floating” nokta değerleri (yazı yüksekliği, ölçek faktörü v. b. g.)
48 Çizgi tipi ölçeği. Kayan-nokta “floating-point” skaler değeri. Ön tanımlı değer tüm varlık tipleri için tanımlanır.
49 Tekrarlayan kayan-nokta “floating-point” değeri.
50-58 Açılar (çıktı DXF dosyalarına derece, AutoLISP ve ARX uygulamalarında radyan cinsindendir).
60 Varlık görünürlüğü “visibility”. Tam sayıdır. Bir değer olmaması veya 0 görünürlüğü; 1 görünmezliği gösterir.
62 Renk “Color” numarası (sabit)
66 “Varlık izi” işareti (sabit)
67 (Model veya kağıt) olabilen Alan (sabit)
68 UYGLM “APP”: görüntü bakışının “viewport” açık veya kapalı oluşunu gösterir.
69 UYGLM “APP”: görüntü bakışı “viewport” belirleme numarası.
70-78 Tekrar eden sayım, işaret bitleri veya modlar gibi tam sayılar
90-99 32-bit tam sayı değerleri
100 (türetilmiş sınıf ismi dizge olarak) alt sınıf veri işaretçileri
102 Control dizgesi
105 DIMVAR sembol tablo varlığı nesne tutamacı
210 Dışa çekme yönü (sabit).
DXF: Dışa çekme yönünün X değeri
UYGLM “APP”: 3B “3D” dışa çekme yönü vektörü
220, 230 DXF: Dışa çekme yönünün Y ve Z değerleri
280-289 8-bit tam sayı değerleri
300-309 Gelişi güzel metin dizgeleri
310-319 Gelişi güzel ikili yığınlar. Gösterimleri 1004 grup kodu ile sınırlıdır.
320-329 Gelişi güzel nesne tutamaçları INSERT ve XREF işlemlerinde transfer edilmezler.
330-339 Soft-işaretçi tutamacı. Aynı çizim veya DXF dosyası içindeki gelişi güzel soft işaretçiler INSERT ve XREF işlemlerinde transfer edilirler.
340-349 Hard-işaretçi tutamacı. Aynı çizim veya DXF dosyası içindeki gelişi güzel hard işaretçiler INSERT ve XREF işlemlerinde transfer edilirler.
350-359 Soft-sahip tutamacı. Aynı çizim veya DXF dosyası içindeki başka nesnelere gelişi güzel soft sahiplik bağlantıları INSERT ve XREF işlemlerinde transfer edilirler.
360-369 Hard-sahip tutamacı. Aynı çizim veya DXF dosyası içindeki başka nesnelere gelişi güzel hard sahiplik bağlantıları INSERT ve XREF işlemlerinde transfer edilirler.
999 DXF: 999 grup kodu aşağıdaki satırın bir açıklama dizgesi olduğunu gösterir. DXFOUT komutu bir DXF çıktı dosyasında bu grupları desteklemez; fakat DXFIN komutu bu açıklamaları ihmal eder. Düzenlediğiniz bir DXF dosyası içerisine açıklamaları dahil etmek için, 999 nolu grup kodunu kullanabilirsiniz.
1000 Genişletilmiş veride (255 byte uzunluğa kadar) ASCII dizgesi
1001 Kayıtlı uygulama ismi genişletilmiş veri için (31 byte uzunluğa kadar) ASCII dizgesi
1002 Genişletilmiş veri kontrol dizgesi (“{” veya “}”).
1003 Genişletilmiş veri tabaka “layer” ismi
1004 Genişletilmiş veride (127 byte uzunluğa kadar) byte yığını
1005 Genişletilmiş veride varlık tutamacı. 16 hegzadesimal basamağa kadar metin dizgesi
1010 Genişletilmiş veride bir nokta
DXF: X değeri
UYGLM “APP”: 3B “3D” nokta
1011 Genişletilmiş veride bir 3B “3D” dünya alanı pozisyonu
DXF: X değeri
UYGLM “APP”: 3B “3D” nokta
1012 Genişletilmiş veride bir 3B ”3D” dünya alanı yer değiştirmesi
DXF: X değeri
UYGLM “APP”: 3B “3D” vektör
1013 Genişletilmiş veride bir 3B ”3D” dünya alanı yönü
DXF: X değeri
UYGLM “APP”: 3B “3D” vektör
1020, 1030 DXF: Bir noktanın Y ve Z değerleri
1021, 1031 DXF: Bir dünya alanı pozisyonunun Y ve Z değerleri
1022, 1032 DXF: Bir dünya alanı yer değiştirmesinin Y ve Z değerleri
1023, 1033 DXF: Bir dünya alanı yönünün Y ve Z değerleri
1040 Genişletilmiş veri kayan nokta “floating-point” değeri.
1041 Genişletilmiş veri mesafe değeri.
1042 Genişletilmiş veri ölçek faktörü.
1070 Genişletilmiş veri 16-bit uzunluğunda tam sayı.
1071 Genişletilmiş veri 32-bit uzunluğunda reel sayı.

 

Hakkında Sertan Türkan

AutoCAD Beyni

Bunu da Kontrol edin

Revitte Görüş Aralığı Hakkında

Revit’te Görüş Aralığı “View Range”, bir plan görünüşündeki nesnelerin görünürlüğünü ve görüntülenmesini kontrol eden bir …

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.