1372826956:AAFe2Py65GSQkfGiRnXuOQ-eD9yXcwMv988

Siz bir Öbek “Block”, Harici Referans “Xref” veya Yerleşim “Layout” misiniz?

Çocukluğumun en ünlü ve en çok sevdiğim şovu idi Muppet Show. Herneyse, bu makaleme bu başlığı vermemin ilham kaynağı oldu. Geçenlerde bir radyoda Sen bir adam mısın? Yoksa bir kurbağa mı? “Are You A Man or A Muppet”  şarkısı çalıyordu ve benimde aklıma autocadbeyni.com kullanıcılarına bir öbek “block” mi? yoksa bir yerleşim “layout” mi olduklarını sorma fikri geldi.

Not: Bu makalemde yazdığım kod Mac işletim sistemi ActiveX uygulamasını desteklemediği için Mac işletim sistemi üzerinde kurulu olan AutoCAD programlarında çalışmaz.

AutoLISP kullanarak, o anki (aktif) çizimiz içerisindeki Öbekler “Blocks” tablosuna ulaşabilir ve çiziminizin içerisindeki öbek “block” tiplerini belirleyebilirsiniz. Öbekler “Blocks” INSERT komutunu kullanarak yerleştirdiğiniz tip, bir harici referans “xref” olarak iliştirdiğiniz tip veya örneğin Model veya Yerleşim1 “Layout1” yerleşim sekmesi üzerinde geometri için depo olan öbek tipi olabilirler. Aynı mantığı model veya kağıt alanına yerleştirilmiş öbek tiplerini belirmek içinde kullanabiliriz.

Aşağıdaki kod o anki (aktif) çizimdeki her öbek “block” için Harici referans “Xref”,YerleşimLayout” ve Dinamik ÖbekDynamic Block” metotlarını/özelliklerini kullanarak öbek tipinin “block type” nasıl belirlendiğini göstermektedir. Ayrıca bu kod her bir öbekteki “block” nesneleri tek tek inceleyerek bu nesnelerin öznitelikler “attributes” içerip içermediğini belirlemektedir.

(vl-load-com)
(defun c:WhatKindOfBlockAmI ( / acadObj doc msg block)
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))

(setq msg “”)

;; [Öbekler tablosundaki tüm öbekleri “blocks” tek tek inceleme] (vlax-for block (vla-get-Blocks doc)
(cond
;; [Standart öbek “block” mi? dinamik öbek “block” mi?] ((and (= (vla-get-IsLayout block) :vlax-false)
(= (vla-get-IsXRef block) :vlax-false))
(if (= (vla-get-IsDynamicBlock block) :vlax-false)
(setq msg (strcat msg (vla-get-Name block) “: Standard”))
(setq msg (strcat msg (vla-get-Name block) “: Dynamic”))
)

;; [Özniteliklere “attributes sahip mi?] (setq attsExist “”)
(vlax-for ent block
(if (= (vla-get-ObjectName ent) “AcDbAttributeDefinition”)
(setq attsExist ” with attributes”)
)
)

(setq msg (strcat msg attsExist))
)
;; Xref?
((= (vla-get-IsXRef block) :vlax-true)
(setq msg (strcat msg (vla-get-Name block) “: Xref”))
(if (= (vla-get-IsLayout block) :vlax-true)
(setq msg (strcat msg (vla-get-Name block) ” and layout”))
)
)
;; [Yerleşim “Layout” mi?] ((= (vla-get-IsLayout block) :vlax-true)
(setq msg (strcat msg (vla-get-Name block) “: Layout only”))
)
)
(setq msg (strcat msg “\n”))
)

;; Bu çizim için öbek “block” bilgilerini görüntületme] (alert (strcat “Bu çizim aşağıdaki tiplerde öbekleri “blocks” içermektedir: ” msg))
)

 Sekil-1

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.