1372826956:AAFe2Py65GSQkfGiRnXuOQ-eD9yXcwMv988

AutoLISP Öğreticisi-Nesneleri Değiştirme (Seçimler ile Çalışma)

Sekil-01

Yayınladığım AutoLISP öğreticileri makalelerimde AutoLISP kullanarak nasıl daha verimli çizebileceğimiz hakkında birçok konuyu ele aldık. Artık bir adım ileri gitme zamanı geldi. Şimdi çizimimizdeki mevcut nesneleri nasıl değiştireceğimizi öğreneceğiz.

Nesneleri değiştirme konusunda en önemli şey onları seçmektir. Bildiğiniz gibi AutoCAD’de (MOVE, COPY veya ROTATE v.b.g.) bir düzenleme komutunu çalıştırdığınız zaman, AutoCAD nesneleri seçmemizi isteyecektir.

Sekil-01

Seçimi bir Değişkene Kaydetme

Bunu yapmamıza izin veren fonksiyon ssget fonksiyonudur.

Örnek-1: Sola Taşıma

Aşağıdaki örnek program size seçtiğiniz nesneleri 5 birim sola taşıma olanağı verecektir.

(defun c:mleft ()

(setq sel1 (ssget))

(command “move” sel1 “” “0,0,0” “-5,0,0”)

)

ssget fonksiyonu seçiminizi sel1 isimli değişkene kaydedecektir. Daha sonra bu değişkeni move komutuna ekleyebileceksiniz.

Seçim işlemini sonlandırmak için, AutoLISP’te Enter tuşuna basmak olan  “” karakterlerini eklemeyi unutmayın. Şayet eklemezseniz, AutoCAD nesne seçmenizi sormaya devam edecektir.

Örnek-2: Özellikleri Tabakaya Göre “Bylayer” Olarak Ayarlama

CAD standartlarımızı uygulama çalışırken bizi rahatsız eden şeylerden birisi de nesnelerin özelliklerinin Tabakaya Göre “Bylayer” olarak değilde farklı bir şekilde ayarlanmış olmasıdır.

Nesne özelliklerini CHPROP komutunu kullanarak değiştirebilirsiniz. Aşağıdaki kodun ne yapacağını tam olarak anlayabilmek için, önce AutoCAD’de CHROP komutunu deneyin.

(defun c:rst ()

(setq sel1 (ssget))

(command “CHPROP” sel1 “”

“COLOR” “BYLAYER”

“LWEIGHT” “BYLAYER”

“LTYPE” “BYLAYER”

“”)

)

Diğer Seçim Modlarını Kullanma

Bazen kullanıcıdan veri istemeden nesneleri seçmemiz gerekebilir. Bazen de kullanıcının kullanacağını kısıtlamamız gerekebilir.

Yukarıdaki kod kullanıcıya AutoCAD’i ön tanımlı modda kullanma izni verecektir.

Aşağıdaki kod ile ise, program içerisinden nesneleri seçebilirsiniz:

(setq sel1 (ssget “w” ‘(0 0) ‘(10 10)))

Bu kod bir köşesi 0,0 koordinatında ve karşı köşesi 10,10 koordinatında olan dikdörtgenin içerisine tam olarak giren tüm nesneleri seçecektir.

Nesne seçme ile ilgili kullanabileceğiniz diğer kod örnekleri aşağıdadır:

  • setq sel1 (ssget “c” ‘(0 0) ‘(10 10))

Yukarıdaki kod 0,0 koordinatından başlayıp 10,10 koordinatında biten değen pencere açacak ve içe aldığı ve değdiği tüm nesneleri seçecektir.

  • setq sel1 (ssget “l”))

Yukarıdaki kod yaratılmış son nesneyi seçecektir.

  • setq sel1 (ssget “p”))

Yukarıdaki kod önceki seçim setindeki nesneleri seçecektir.

  • setq sel1 (ssget “x”))

 Yukarıdaki kod çizimdeki tüm nesneleri seçecektir.

İçine alan ve değen pencere seçim yöntemleri için de kullanıcıdan veri isteyebiliriz.

Örneğin:

(setq pt1 (getpoint ”
BİRİNCİ NOKTAYI TIKLAYIN: “))

(setq pt2 (getpoint ”
DİĞER KÖŞE NOKTASINI TIKLAYIN: “))

(setq sel1 (ssget “c” pt1 pt2))

Hakkında Sertan Türkan

AutoCAD Beyni

Bunu da Kontrol edin

Revitte Plan Görünüşünün Derinliğini Ayarlama Hakkında

Revit’te bir modelin parçalarını kesme düzleminin altında görüntülemek için, Derinlik Kırpma “Depth Clipping“ parametresini kullanın. …

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.