1372826956:AAFe2Py65GSQkfGiRnXuOQ-eD9yXcwMv988

AutoLISP Öğreticisi-Tabaka ve Stil Yaratma

Sekil-01

AutoLISP Öğreticisi-Tabakalar “Layers” ile Çalışma isimli öğreticimizde AutoLISP programımızda nesneler yaratırken tabakalar “layers” ile nasıl çalışacağımızı öğrenmiştik. Programda o anki geçerli (aktif) tabakayı “Current layer” veya stili değiştirerek nesnelerimizin belirli özellikleri kullanmasını garantilemiş oluruz. Örneğin, çizimimize etiketler yerleştirmek istediğimiz zaman, bunları Açıklama tabakası “layer” üzerine yerleştiririz. Bu da şirket standartlarımız ile uyumluluk için iyi bir yoldur.

Bu öğreticimizde bir önceki AutoLISP Öğreticisi-Tabakalar “Layers” ile Çalışma isimli öğreticimizde yarattığımız kodda bazı değişiklikler yapacağız. Önceki öğreticimizde, programımız Açıklama isimli tabakayı tabakalar listesinde bulamazsa, bize sadece uyarı veriyordu. Kullanıcıya Açıklama isimli tabakayı yaratmayı isteyip istemediğini sormalıydı. Bu önceki programımızın küçük bir eksiğiydi.

Yapılması gereken en güzel şey ise, program Açıklama isimli tabakayı tabakalar listesinde bulamazsa, bu tabakayı kendisinin yaratmasıdır.

Sekil-01

Yeni bir Tabaka “Layer” Yaratma

Yeni bir tabaka yaratma çok kolaydır. LAYER komutunu kullanırız.

Komut satırına –layer yazıp Enter tuşuna basın. Komutun mevcut tüm seçeneklerinin bir listesini göreceksiniz. Herhangi bir komutu AutoLISP programımız içerisinde kullanmadan önce, AutoCAD’de komut satırına yazarak kontrol etmemiz gerektiğini hatırlayın. Komutu iletişim kutusunu görüntülemeden kullanmak için, komutun önüne tire ( ) işareti koyun. Zaten komutu AutoLISP programımız içerisinde de bu şekilde kullanıyoruz.

Komut: “Command:” -layer

O anki geçerli (Aktif tabaka: “Current layer:”  “0”
Bir seçenek girin  [?/Yap/Ayarla/Yeni/Yeniden isimlendir/AÇIK/KAPALI/Renk/Çizgi tipi/Çizgi kalınlığı/Şeffaflık/Malzeme/Yazır/Dondur/Çöz/Kilitle/Kidi aç/Durum/Tanım/Uzlaştır]:

“Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Fre
eze/Thaw/LOck/Unlock/stAte/Description/rEconcile]:” m

Yeni tabaka için isim girin Enter name for new layer (o anki geçerli (aktif) tabaka olacaktır) <0>:

“Enter name for new layer (becomes the current layer) <0>:” newlayer
Bir seçenek girin  [?/Yap/Ayarla/Yeni/Yeniden isimlendir/AÇIK/KAPALI/Renk/Çizgi tipi/Çizgi kalınlığı/Şeffaflık/Malzeme/Yazır/Dondur/Çöz/Kilitle/Kidi aç/Durum/Tanım/Uzlaştır]:

“Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Fre
eze/Thaw/LOck/Unlock/stAte/Description/rEconcile]:”

Koyu kırmızı renkli yazılanlar AutoLISP içerisinde kullanacaklarımızdır.

  • -Layer
  • M yeni bir tabaka yaratacak ve bize bu tabakanın ismini soracak ve sonrasında o tabakayı o anki geçerli (aktif) tabaka “current layer” yapacaktır.

Bu -Layer komutu seçenek sormaya devam edecektir. Yani komutu sonlandırmak için Enter tuşuna basmamız gereklidir.

Şimdi tüm bunları bir LISP programı içerisinde yazalım:

(command “_layer” “m” “YENİTABAKA” “”)

Kolay değil mi?

Bu tek satırlık kod (şayet mevcut tabakalar listesinde yenitabaka isimli tabaka yoksa) YENİTABAKA isimli bir tabaka “layer” yaratacak ve bu tabakayı o anki geçerli (aktif) tabaka yapacaktır. Komutun bu seçeneğinin güzel tarafı şayet mevcut tabakalar listesinde yenitabaka isimli tabaka varsa, o tabakayı kabul edip onu o anki geçerli (aktif) tabaka yapacak olmasıdır. Böylece kodumuza tabakanın mevcut olup olmadığını kontrol eden satırlar eklemek zorunda kalmayacağız.

Artık daha önce yarattığımız kodu aşağıdaki gibi güncelleyebiliriz:

(defun c:abtext ()
(setq flag (tblsearch “LAYER” “Açıklama”)) ;Açıklama isimli tabakanın mevcut olup olmadığını arar.
;şayet mevcutsa, aşağıdaki işlemleri yapar.
(if flag
(progn ;yapılacak işlemleri gruplama
(setq oldlayer (getvar “CLAYER”))
(setvar “CLAYER” “Açıklama”)
(setq textcontent (getstring ”
Type Text: “))
(setq textloc (getpoint ”
Text Position: “))
(command “_TEXT” textloc “” “” textcontent)
(setvar “CLAYER” oldlayer)
) ;yapılacak işlemler grubunun sonu
;şayet mevcut değilse ve uyarı verdiyse
(alert ” Açıklama isimli tabaka yok. Önce Tabakayı yaratın.”)
) ; end if
)

Çok daha basit bir dod da aşağıdadır:

defun c:newla ()
(setq oldlayer (getvar “CLAYER”)) ;önce o anki geçerli (aktif) tabakayı elde eder.
(command “_layer” “m” “yeni-test” “”) ; yeni-test isimli bir tabaka yaratır ve o anki geçerli (aktif) tabaka olarak ayarlar.
(setq textcontent (getstring ”
Type Text: “))
(setq textloc (getpoint ”
Text Position: “))
(command “_TEXT” textloc “” “” textcontent)
(setvar “CLAYER” oldlayer)
)

Yazı stilleri “Text styles” ve Ölçü stilleri “Dimension styles” ile Çalışma

Peki yazı stilleri “text styles” ve ölçü stilleri “dimension styles” nolacak?

Yazı Stilleri “Text Styles”

STYLE komutunu kullanabiliriz. Bu komut yeni bir stil yaratabilir ve o anki geçerli (aktif) stil olarak ta kullanabilir.

Önce komutu AutoCAD’in komut satırına yazıp Enter tuşuna bastığımızda neler olduğunu inceleyelim:

Komut: “Command:” -STYLE
Yeni yazı stili ismini girin veya [?] <Standart>:

“Enter name of text style or [?] <Standard>:” newstyle

Yeni Stil “Newstyle”.
Tam font ismini veya font dosyası ismini (TTF veya SHX) belirleyin <txt>:

“Specify full font name or font filename (TTF or SHX) <txt>:” arial
Yazının yüksekliğini belirleyin veya [Annotative] <0.0000>:

“Specify height of text or [Annotative] <0.0000>:”
En faktörünü belirleyin <1.0000>:

“Specify width factor <1.0000>:”

Eğiklik açısını belirleyin <0>: “Specify obliquing angle <0>:”
Yazı tersten görüntülensin mi? [Evet/Hayır] < Hayır >: “Display text backwards? [Yes/No] <No>:”
Yazı yukardan aşağı görüntülensin mi? [Evet/Hayır] < Hayır >: “Display text upside-down? [Yes/No] <No>:”

“newstyle” artık o anki geçerli (aktif) yazı stilidir. ““newstyle” is now the current text style.”

AutoCAD’in size soracağı 7 seçenek vardır.

Şimdi bir örnek görelim. Aşağıdaki satırda gördüğünüz kodu yeni yazı stilleri “text styles” yaratmak için kullanabilirsiniz.

(command “-style” “newstyle” “arial” “” “” “” “” “”)

Bu kod code arial.ttf isimli fontu kullanan newstyle isimli bir yazı stili “text style” yaratacaktır. Kod diğer soruları önemsemeyecek ve soruların cevaplarının ön tanımlı değerlerini  kabul edecektir.

Aşağıdaki diğer örnek kod ise, yine arial.ttf isimli fontu kullanan, 2.5 birim yazı yüksekliğinde ve 0.85 birim en faktörüne sahip newstyle isimli bir yazı stili “text style” yaratacaktır.

(command “-style” “newstyle” “arial” 2.5 0.85 0 “N” “N”)

* Not: Şayet bir shx fontu kullanırsanız, Enter tuşuna bir kez daha basmanız gerekecektir. SHX fontları düşey yönü destekledikleri için, AutoCAD yazı stilini düşey yönlü yapmayı isteyip istemediğinizi soracaktır.

Ölçü Stilleri “Dimension Styles”

Ölçü stilleri ile çalışırken, IF ifadesini kullanmalıyız.

  1. Yeni bir ölçü stili yaratmak için, ölçü stilinde kaydet “save” seçeneğini kullanmamız gerekmektedir.
  2. Veya şayet bir ölçü stili mevcut değilse, o anki geçerli (aktif) ölçü stilini değiştirmek için, geri getirme özelliğini kullanmalıyız.

Ölçü stilinde kaydet “save” seçeneğini kullandığımız zaman, şayet AutoCAD o ölçü stilinin hali hazırda mevcut olduğunu tespit ederse problem çıkacaktır. AutoCAD ilave bir soru daha soracaktır. Bu ilave soru mevcut ölçü stilini yeniden tanımlamak isteyip istemediğimizi onay içindir.

Aşağıdaki kodu kullanabiliriz:

(defun c:abdst ()
(setq flag (tblsearch “dimstyle” “newdimstyle”)) ; newdimstyle isimli ölçü stili mevcut olup olmadığını arar.
;şayet mevcutsa, aşağıdaki işlemleri yapar
(if flag
(command “-dimstyle” “R” “NEWDIMSTYLE”)
(command “-dimstyle” “S” “NEWDIMSTYLE” “”)
); end if
)

Özellikleri Değiştirme

Yeni bir yazı stili yaratırken AutoCAD size sorduğu için, bir yazı stilini nasıl yaratacağınızı ve stilin özelliklerini nasıl ayarlayacağınızı artık biliyorsunuz.

İlerde, tabakaların ve ölçü stillerinin özelliklerini nasıl değiştirebileceğimizi ele alacağım. Yani bunları kırmızı renkli, belirli bir çizgi tipinde, belirli bir çizgi kalınlığında yaratabiliriz.

 

Hakkında Sertan Türkan

AutoCAD Beyni

Bunu da Kontrol edin

Revitte Görüş Aralığını Kullanma (Video)

Revit’te bir modeldeki öğeleri düzgün şekilde görüntülemek için, Görüş Aralığının “View Range“ düzlemlerini ayarlayın. Bu …

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.