Visual LISP Dersleri Visual LISP’e Giriş – Ders-2

 

Bu derse başlamadan önce, AutoCAD Nesne Modeline bakmanız iyi bir fikir olabilir. Aslında bunu resmi yazdırabilir ve bu öğreticiler üzerinde çalışırken yanınızda bulundurabilirsiniz. Bu resim size tıpkı bir yol haritası gibi rehberlik edecektir.

Her neyse, nerde kalmıştık? Oh evet. Şimdi VLisp kullanarak AutoCAD Destek Dosya Klasör yolunu Nesne Modelinden çıkarmayı deneyeceğiz. Kafanızın karışma ihtimaline karşı işi en başından alacağız. İşte başlıyoruz. Aşağıdaki ifadelerin tümünü Konsol penceresine yazın ve her birinden sonra “Enter” tuşuna basın:

Kırmızı olan satırlar VLisp’in geri döndürdüğü satırlardır; bunları yazmayın! Sadece mavi satırları yazıp Enter tuşuna basın.

VLisp desteğini yükleme:

_$ (vl-load-com)

Referansı Uygulama Nesnesine “Application Object” depolama

_$ (setq acadObject (vlax-get-acad-object))

#<VLA-OBJECT IAcadApplication 00adc088>

Referansı Tercihler  Nesnesine “Preferences Object” depolama

_$ (setq prefsObject (vlax-get-property acadObject ‘Preferences))

#<VLA-OBJECT IAcadPreferences 018adfdc>

Store a reference to the Dosyalar  Nesnesine “Files Object” depolama

_$ (setq tabnameObject (vlax-get-property prefsObject ‘Files))

#<VLA-OBJECT IAcadPreferencesFiles 018adfc0>

Destek klasör yolunu elde etme

_$ (setq klasör_yolu (vlax-get-property tabnameObject ‘SupportPath))

“D:\\ACAD2018\\SUPPORT;D:\\ACAD2018\\FONTS;

D:\\ACAD2018\\HELP;D:\\ACAD2018\\EXPRESS”

Bu harika; ancak Destekklasör yolumuza yeni bir dizin ekleyebilir miyiz?

Tabii ki yapabiliriz, ancak önce yeni yolumuzu mevcut  klasör_yolu değişkenine eklemeliyiz. Ne kullanmalıyız? Kolay, haydi sadece (strcat) fonksiyonunu kullanalım:

_$ (setq klasör_yolu (strcat klasör_yolu “;” “C:\\TEMP”))

“D:\\ACAD2018\\SUPPORT;D:\\ACAD2018\\FONTS;

D:\\ACAD2018\\HELP;D:\\ACAD2018\\EXPRESS;C:\\TEMP”

Yeni dizini klasör_yolu değişkenine ekledik; şimdi onu güncelleyelim.

Şu satırı yazın:

_$ (vlax-put-property tabnameObject ‘SupportPath klasör_yolu)

nil

Şimdi, AutoCAD‘e geri dönün ve “Seçenekler “Options” – Dosyalar “Files – Destek Dosya Araştırma Klasör Yoluna “Support Path“ gidin.

Yeni dizininiz C: / TEMP, Destek Yolunuza eklenmiş olmalıdır. Çok kolay değil mi? Bu Vlisp çok kolay!

Haklısınız, dosya dolabının AutoCAD çekmecesini (Uygulama Nesnesini “Application Object”) açtık ve o çekmece özelliklerine baktık. Şimdi çekmeceyi incelememiz ve içinde saklanan belge klasörlerinden birine göz atmamız gerekiyor.

_$ (vl-load-com)

 

 

_$ (setq acadObject (vlax-get-acad-object))

#<VLA-OBJECT IAcadApplication 00adc088>

Aktif Dokümana bir referans depolama.

_$ (setq acadDocument (vla-get-ActiveDocument acadObject))

#<VLA-OBJECT IAcadDocument 00ee0f84>

Seçmek için, “AcadDocument” değişkenine çift tıklayın ve değişkeni İzleme “Watch”  penceresine ekleyin:

Şimdi “ACADDOCUMENT” nesnesine çift tıklayın.

Vay canına, şunlara bir bakın! Şimdi <Tabakalar > “<Layers>” öğesine çift tıklayın:

Ha, şimdi çizimdeki tüm tabakalara “layer”  bir ulaşım yolu açtık. Başka bir deyişle, “Tabakalar “Layer” Koleksiyonuna” ulaştık.

“Tamam, bu harika” dediğinizi duyuyorum, “Bu çizimde 13 tabaka “layer” olduğunu görebiliyorum; ancak  tabakalar “layer” nerede? Aşağıdaki kodu girin:

_$ (vl-load-com)

 

_$ (setq acadDocument (vla-get-activedocument (vlax-get-acad-object)))

#<VLA-OBJECT IAcadDocument 00ee0f84>

 

_$ (setq theLayers (vla-get-layers acadDocument))

#<VLA-OBJECT IAcadLayers 018aee84>

Bu çizimde artık tüm tabakalara “layer” sahip olmaktan gurur duyuyoruz. Onlara bakmak ister misiniz? Sadece çok dikkatli olun ve onları geçersiz hale getirmeyin!

Her satıra sonra Ctrl tuşuna ve  ardından Enter tuşuna basarak aşağıdaki kodu Konsol “Console” veri giriş satırına girin:

Son satırdaki kapat parantezden ()) sonra sadece Enter tuşuna basın:

_$ (setq i 0)

(repeat (vla-get-count theLayers)

(setq aLayer (vla-item theLayers i))

(princ (vla-get-name aLayer))

(terpri)

               (setq i (1+ i))

               )

Çiziminizdeki tüm tabaka “layer” isimleri listelenmelidir. Benimki aşağıdaki şekilde gözüküyor:

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

12

DEFPOINTS

Çiziminizdeki tabakalardan “layer” birine daha yakından bakmak ister misiniz? O zaman aşağıdaki kodu  yazın:

(setq aLayer (vla-item theLayers “2“))

#<VLA-OBJECT IAcadLayer 018aeec4>

Şimdi Tabakalar Koleksiyonundan “2” isimli tabakaya “layer” eriştik. Şimdi haydi bu tabakanın “layer”  özelliklerini ve içeriğini listeleyelim:

_$ (vlax-dump-object aLayer 2)

 

; AcadLayer: Bir çizim üzerine serilmiş şeffaf asetata benzeyen mantıksal bir veri grubu

;Özellik değerleri: “Property values:”

; Application (RO) = #<VLA-OBJECT IAcadApplication 00adc088>

Color = 2

;Document (RO) = #<VLA-OBJECT IAcadDocument 00ee0f84>

;Freeze = 0

;Handle (RO) = “40”

;HasExtensionDictionary (RO) = 0

;LayerOn = -1

;Linetype = “DASHED2”

;Lineweight = -3

;Lock = 0

;Name = “2”

;ObjectID (RO) = 21872128

;ObjectName (RO) = “AcDbLayerTableRecord”

;OwnerID (RO) = 21871632

;PlotStyleName = “Color_511”

;Plottable = -1

;ViewportDefault = 0

;Methods supported:

;Delete ()

;GetExtensionDictionary ()

;GetXData (3)

;SetXData (2)

T

Şayet tabakanın “layer” rengini değiştirmek isterseniz, aşağıdaki kodu girin :

_$ (vla-put-color aLayer 4)

nil

Bu 2 isimli  tabakanın “layer” rengini ve çizim içindeki “ByLayer” rengine sahip tüm nesnelerin rengini “Camgöbeği” ya da “4 nolu renk” olarak değiştirmiştir.

Doküman Nesnesine “Document Object“ bir göz atın. Orada bir yığın göreceksiniz. Artık Visual Lisp’in güç ve yeteneklerini görebiliyor musunuz?

Bir sonraki derte daha derine ineceğiz ve çizim varlıklarını yaratma, seçme ve değiştirme konusunu incelemeye başlayacağız.

 

 

Hakkında Sertan Türkan

AutoCAD Beyni

Bunu da Kontrol edin

Revitte Kompozit Yapıda Katmanları Düzenleme

Revit’te kompozit yapıdaki katmanların fonksiyonlarını, malzemesini ve kalınlığını belirleyebilirsiniz.  Video: Bileşik Yapıları Düzenleme (İngilizce) Kompozit …

Bir cevap yazın

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.