29.11.2021 10:49    

ProhibiT
Daha önce paylaşılan KoTk programı AutoCAD R14'ten önce yazılmıştı, XData (Extended Data) kavramı o sürümlerde yoktu. Kot grubunun (ailesinin) kendi aralarındaki bağları ve Referans değerleri ile Referans Kot Nesnesi'nin Handling Number'ı Attribute olarak tanımlayıp öylece saklandığından, Kot Blok'u altında 3 tane Atrribute yer alıyordu. KOT (Kot değeri), REF (Referans Nesne) ve BLTP (Blok Tipi). Uzunca zaman o haliyle kullanıldı. AutoDesk, XData özelliğini hayata geçirdikten sonra da, XData ile çözüm üretilmesine rağmen, ne kullanıcılardan bir talep geldi, ne de el atıp düzenleme fırsatı oldu.

İşin gerçeği, bu XData'lı hali yazılalı da epey oldu, farklı nedenlerle paylaşılamadı. Hatta KoTk programının Reactor'lü hali de yazıldı. İlk geri dönüşler ilginçti! "Hiç bir şeye müdahale ettirmiyor, doğrusu neyse onu getiriyor inatla!.." Sonuç olarak Reacor'lü KoTk yaygın olarak paylaşılmadı, burada da paylaşılmayacaktır.

Burada paylaşılan ve XData kullanılan halinde yalnızca tek bir Attribute yer alıyor KOT (o da Kot Değeri'ni ifade ediyor). Yukarıda açıklanan REF ve BLTP değerleri (biri Karakter dizisi, diğeri tamsayı) Extended Data olarak ilgili nesnelere eklendi. Eski halinde saklanmasına gerek görülmeyen Lineer Unit Factor değeri de saklanarak, aynı çizimde farklı (metrik) uzunluk birimlerindeki Kot Gruplarına eklemeler yapılırken bu özellikleri korundu. Extended Data(lar) çizimle birlikte kaydedildiğinden, çizim dosyası tekrar açıldığında kaybolmazlar.

XData (Extended Data) konusu kitabımızda tüm ayrıntılarıyla ve açıkça anlatıldığı ve cizimokulu sitemizde de yeterince örnekleri olduğu için, burada tekrar anlatmaya gerek görülmedi. Aslına bakılırsa, Reactor'ler de (Persistent=kalıcı) yapıldıklarında Extended data olarak çizimle birlikte kaydedilerek saklanırlar.

Kullanılan Kot Blok'u ve Tipleri ile ilgili bilgi vermekte fayda var. Program KoTk-1, KoTk-2,... KoTk-6 olmak üzere 6 tane Blok ismini tanır.



Çizim içinde tanımlı değillerse, İletişim Kutusu'ndaki seçime göre KoTk-? blok'u oluşturulur. Oluşturulan bloklar şablon veya prototip, yani kullanıcının kendine göre değiştirip uyarlayabileceği bloklar olarak tasarlanmış olmakla birlikte genelde tüm ihtiyacı karşılayacak şekilde düzenlenmişlerdir.

Resimde görülen Kot Blok'ları düzenlenebilir, hatta programı çalıştırmadan önce kullanıcı kendi blok'unu istediği biçimde tanımlayabilir. Burada dikkat edilmesi gereken birkaç nokta var.

1- Blok Adı, KoTk-1, KoTk-2,... KoTk-6'dan biri olmalıdır.

2- Blok'un Insertion Point'i, kot'un yerleştiği (değerin ifade ettiği) nokta olmalıdır. Örnek bloklardaki nivo üçgeninin alt sivri ucu gibi.

3- Blok altında tanımlanan Attribute'ün Tag'ı "KOT" olmalı ve açısı her durumda 0 (sıfır derece) olmalıdır.

Attribute açısı önemli! Çünkü güncelleme (update) işlemleri sırasında program tarafından Yer Düzlemi Açısı olarak kullanılacaktır. Program tarafından (insert edilerek) oluşturulan Kot Blok'larına (Referans Kot'ta dahil) kendi X ve/veya Y eksenlerine göre Mirror işlemi uygulanabilir. Çizimin okunabilirliği ve pafta düzeni bakımından bu biçimde mirror uygulanmış blok'lar güncelleme işlemlerinde, mevcut durumunda (mirror edilmiş) olarak güncellenirler.

* Önemli not: Attribute'ler de kökeninde Text türü nesneler olduklarından, MIRRTEXT sistem değişkeninden etkilenirler. Kot bloklarına mirror işlemi uygulanırken, MIRRTEXT kapalı (0) olmalıdır.

Çizim dosyalarını en çok ağırlaştıran nesneler Hatch'ler ve True Type Font'lar dır. Allı güllü taramalar yerine daha sadelerini kullanarak Hatch'ler bir yere kadar idare edilebilir elbette. Yazı Fontlarına gelince, kulaklı kuyruklu garip fontlar Teknik Çizim Dosyalarına hiç yakışmadığı gibi bunların bulunduğu True Type Font'lar (Arial fontu da dahil) bilgisayar kaynaklarınızı boşuna sömürür. Bu durumlardan kurtulmanızı sağlayabilecek FaLconTR.sxh font dosyasını 174410-fonts.rar linkinden indirebilirsiniz. Bu fontu kullanarak ve lineweight ile kalınlık vererek, truetype fontlardan aşağı kalmaz çıktı elde edebilirsiniz. Font vektör font olmasına rağmen, eğri ve yuvarlak kısımları arc olarak tanımlanmıştır. Açıklamalı Video için tıklayınız. Videoda diğer -.shx fontlarından farkı açıkça görülecektir. Her türlü özel sembol ve karakter kullanılabilir. Roman_bilmem_ne fontlarının kullanıldığı bazı programlarda boşluk karakteri yerine ascii 255 kullanılmışsa, bu onların ayıbıdır. Akıllı kullanıcı buna benzer durumları da çok kolaylıkla çözebilir elbette.

Program tarafından tanımlanan bloklarda Attribute nesnesi BYBLOCK renginde, BYBLOCK linewieght'inde (çizgi kalınlığında) ve o an geçerli Text Style'ında oluşturulurlar. Bu değerlerde dahil, yukarıda açıklanan 3 durum dışındaki her şey değiştirilebilir. Çizgiler veya dolgular eklenebilir, çıkartılabilir.

Ekleme ve çıkartmaların sonucu Kot Blok'u tanımında, birden çok Attribute tanımı olamayacağı gibi; hiç bir çizim nesnesi olmadan, yalnızca bir tek Attribute tanımı da olmamalıdır. En az bir Çizim Nesnesi ile, bir ve yalnız bir Attribute olmalıdır.

Pek çok yerde altı çizilerek ifade edildiği şekilde, basit geometrik kurnazlıklar yerine, genel ve her durumda geçerli olacak formüller kullanılması daha doğrudur. Bu programda kullanılan genel formül:



Bu formülle bulunan Kot Değerleri Attribute'lere uygun biçimde (formatta) işlendikten sonra tüm geometrik uyarlamalar Matrix Transformation işlemleriyle yapılır. Translate (yer değiştirme), Scale (Ölçek), Rotate (Döndürme) ve Reflection (yansıtma veya ayna tersi) işlemleri doğrudan TMatrix işlemleriyle yapılırlar. Matris kullanarak kuş kondurmak değil amaç elbette. Kesin ve net sonuca götüren, her durumda geçerli, doğru ve sade işlem yapmak amacıyla bu yöntem tercih edilmiştir.

Yeri gelmişken ifade etmekte fayda var! AutoCAD platformunda Transformation Marix'ler, genel matematikte bildiğimiz(!) Matris'lerden biraz farklıdır. Matris'ler aslında Lise Matematik Müfredatında olduğundan, herkesin bilmesi gereken bir konu. Hem matematik boyutu, hem de AutoCad ortamında uygulanması konuları kitabımızda enine boyuna açıklamıştır.

Formülünden Algoritmasına kadar açık açık her şey detaylarıyla anlatıldığına göre, kimsenin Açık Kaynak Kod isteği olmayacaktır, olmamalı düşüncesindeyim. Açık Kod'ların, konunun özünü anlamadan, nasılsa çalışıyor! Diye, eksiği ve fazlasıyla aynen alınıp kullanıldığından, yazar arkadaşlarımızın gelişimine katkı sağlamadığı, tam aksine engel olduğu tecrübeyle sabittir.

KoTk kullanımının ayrıntılı açıklaması.

Program çalıştırıldığında bir İletişim Kutusu (Dialog Box) açılır.



İletişim kutusunda, "Type of Operation", "Select Block Type", "Ground Line Angle" ve "Units and Formats" isimli 4 tane bölüm yer alıyor. Bu bölümlerin her birini, ayrıntısı ve mantığıyla ele alalım.



"Type of Operation" bölümünde, "New", "Add" ve "Update" olmak üzere 3 Radio Button (Yuvarlak Seçim Düğmesi) yer alıyor.

New: Yeni bir Kot Grubu oluşturmak için kullanılır. Yeni kot grubu, o anda seçili Açı, Blok Tipi, Ondalık Basamak Sayısı, Ölçü ve Ölçek değerleri kullanılarak oluşturulur. Seçili (geçerli) Blok Tipi çizim içinde mevcut değilse yukarıda açıklanan özelliklerle oluşturulur, mevcutsa tüm özellikler Blok Tanımı'ndan alınır. "New" seçeneğinde, İletişim Kutusundan alınan ve o an geçerli değerlere göre Referans (başlangıç) Kot oluşturulduktan sonra "tkot" (Türemiş Kot) fonksiyonu çalıştırılarak, yeni yer (nokta) seçildiği sürece Kot Grubu'na yeni Bloklar eklenmeye devam edilir.

Add: Mevcut bir Kot Grubuna yeni kot(lar) eklemek için kullanılır. Add Butonu seçildiğinde İletişim Kutusu'ndaki tüm diğer seçenekler inaktif (etkin olmayan) duruma geçer. Var olan bir Kot Grubu'na yeni kotlar ekleneceği için, (gruptan örnek olarak) seçilen blok XData'sından Referans Kot Blok Handling Number'ı alınır, oradan da Başlangıç (referans) Kot Değeri, ve referans nokta alınır. Seçilen yeni noktaya belirlenmiş Kot Blok'u insert edilerek, hesaplanan Yeni Kot Değeri Attribute'e işlenir. Seçilen örnekten ilgili kot grubunun genel (biçimle ilgili) özellikleri ile Referans Kot Blok'u, ve buradan da yeri (koordinatları) ve Referans (Başlangıç) Kot değeri bilgileri alındıktan sonra "tkot" (Türemiş Kot) fonksiyonu çalıştırılarak devam edilir. Yeni Kot(lar) eklenecek Grup (Aile) belirlenirken, o guruptan herhangi biri (Referans Blok ta dahil) seçilebilir.

Mevcut bir kot grubuna yeni kotlar eklemenin bir başka yolu da, kot bloklarını (referans blok ta dahil) kopyalayarak veya (kendi eksen takımından X ve Y'ye göre) mirror edilerek çoğaltılmasıdır. Copy veya Mirror işlemiyle çoğaltılan yeni Kot blokları eski Attribute değerlerinde (doğru olmayan değerlerde) olacaklar, update işlemi uygulandığında doğru değerleri hesaplanarak güncelleneceklerdir.

Update: Kot Grubu'dan seçilen bir örnek üzerinden Kot Grubu'nun tüm elemanları seçilerek, İletişim Kutu'sunda seçili değerler kullanılarak güncellenir. Güncelleme işlemi sırasında Yer Çizgisi Açısı (Ground Line Angle) değiştiril(e)mez. Ondalık Basamak Sayısı, Ölçü ve Ölçek değerleri ile Blok Tipi bilgiler ise İletişim Kutusu'ndan alınan (o an geçerli) değerlerle güncellenirler. Referans Kot'un yeri ve Kot (Başlangıç) Değeri kullanıcı tarafından serbestçe değiştirilebilir, (kendi eksen takımındaki) eksenlerden birine veya (ayrı ayrı - sırasıyla) her ikisine göre de mirror işlemi uygulanabilir. Grubun üyesi olan diğer Kot Blok'larının yerleri serbestçe değiştirilebilir, mirror işlem(ler)i uygulanmış olabilir. Kot Blok'ları bölümünde de açıklandığı gibi, grup içindeki bazı Kot Blok'larına (Referans Blok ta dahil) Kendi eksen takımında X ve Y eksenlerine göre mirror işlemi uygulanmış olabilir. Düzenleme işlemleri sırasında Attribute konumları ilgisiz yerlere gitmiş olabilir. Bu durumlar göz önüne alınarak, gerekli bazı bilgiler çizimden, bazıları Kot Grubunun Referans nesnesinden, Attribute geometrisi ile Layer, Color ve Lineweight gibi öznitelikleri ise Blok Tanımından alınarak güncelleme işlemi yapılır. Güncelleme işlemi (Referans Blok ta dahil) grup içindeki tüm bloklar için uygulanır.

Açıklamalı Video için tıklayınız

Videoda, Kot Bloku Tanımı değiştirilip (düzenlenip) yeniden tanımlandıktan (redefine) sonra ATTSYNC işlemi uygulanınca ne gibi aksaklıklar çıkacağı, bunun yerine KoTk->Update kullanılınca hiç bir sıkıntı yaşanmayacağı açıklanmıştır.

"Add" fonksiyonu ile yeni kotlar eklerken Yer Çizgisi Açısı bölümünün zaten etkin olmadığı, "Update" fonksiyonu ile güncelleme yaparken de Yer Çizgisi Açısı bölümünün yine etkin olmadığı belirtilmiş, güncelleme işlemi sırasında bu açının program tarafından değiştirilemeyeceği ifade edilmişti. Bu durum söz konusu Kot Grubu'nun ilanihaye o açıda kalması gerektiği anlamına gelmez. Kot Grubundaki tüm bloklar (büyük ihtimalle ait olduğu Cephe veya Kesit çizimiyle) birlikte rotate edilebilir veya (herhangi bir doğrultuda) mirror uygulanabilir. Yer Çizgisi Açısı XData olarak saklanmayıp, blok'un (daha doğrusu Attribute'ün) o anki açısından alındıkları için, bu tür toptan rotate ve/veya mirror işlemleri kotlar arasındaki koordinasyon ve korelasyonu bozmaz. Yeni kotlar eklenmediyse, tekil olarak konum, yerleri ve Referans Blok kot değeri değiştirilmediği sürece update edilmelerine bile gerek kalmayacaktır.



"Select Block Type" bölümünde yer alan küçük resim aynı zamanda bir buton'dur. Tıklandığında, "Select Elevation Block Type" iletişim kutusu açılır. Select Block Type seçeneği New ve Update durumlarında etkin iken, Add durumunda etkin değildir. Programın temel mantık dokusu gereği, mevcut blok grubunun Kot Bloku Tipi esas alınacaktır.



Açılan kutuda, seçili olan Blok Tipi yeşil, diğerleri siyah-beyaz olarak görüntülenir. Tercih edilen Blok Tipi görüntüsüne tıklanarak seçim yapılır ve ana iletişim kutusuna dönülür. Bu bölümlerde gösterilen blok görüntüleri, program tarafından oluşturulan prototip blok görüntüleridir. Kullanıcı tarafından oluşturulmuş veya düzenlenmiş blok görüntüleri gösterilmezler.

Açıklamalı Video için tıklayınız



"Ground Line Angle" bölümünde, bir giriş kutusu ile 2 buton yer alır. Bu bölümün amacı, çizim içinde herhangi bir açıyla çizilmiş Kesit ve Cephelere, istenilen yön ve doğrultuda kot verebilmektir.

"Input Ground Line Angle" giriş kutusuna Yer Çizgisi Açısı (derece cinsinden) sayısal değer olarak girilir. Bu değer, başlangıçta (kullanıcı tarafından yeni değer girilmeden önce) 0.00 (derece) olarak gelir.

"Line Object or Two Points" butonuna tıklandığında Yer Çizgisi Açısı'nı belirlemek için bir Line (polyline değil) Nesnesi seçmeniz istenir. Line seçmek yerine enter (ara çubuğu veya fare sağ tuşu) girilirse, 2 nokta seçerek söz konusu açıyı belirlemeniz beklenir. Seçilen Line'ın yönü ve 2 noktanın seçim şekli (sırası) açının belirlenmesinde önemlidir. Bu yöntemle belirlenen açı değeri, "Input Ground Line Angle" giriş kutusunda güncellenerek gösterilir.

"Reverse Angle" butonuna tıklandığında Yer Çizgisi Açısı ters çevrilir. Yani mevcut açı 180 dereceden küçük veya eşitse 180 eklenir, büyükse 180 çıkarılır. Böylece Kot Değerleri'nin artış (pozitif) yönü değiştirilebilir. Özellikle Line seçerek açı belirlendiğinde, örneğin 0.00 yerine 180.00 girildiğinde bunu tek tuşla düzeltmek için de kullanılabilir. Tersine çevrilen açı değeri "Input Ground Line Angle" giriş kutusunda güncellenerek gösterilir.

Açıklamalı Video için tıklayınız

Açıklamalı Video için tıklayınız



"Units and Formats" bölümünde 2 tane Açılır Liste (Pop Up List) ve 1 tane de giriş kutusu yer alır.



"Decimal Digit" butonuna tıklandığında açılan listeden, Attribute'lerdeki Kot Değerinin, (ondalık noktasından sonra) kaç basamak yürütüleceği seçilir. Program çalıştırıldığında başlangıç değeri 2 basamak olarak gelecektir.

80'li yıllardaydı, "Lotus 1-2-3'ün Türkçe El Kitabı yayımlanmış," diye duyduk. İnternet'in olmadığı o dönemlerde bilgiye ulaşmak çok zor. Değil Türkçe, Çince, Sanskritçe bile olsa o kitabı almak şart oldu. Aradım, bulamadım... sonra fotokopi olarak elde edebildim. O zamana kadar bilgisayarla ilgili hiç Türkçe bir doküman görmemiştim, okurken bazı kavramları nasıl çevirdiklerini gördükçe, kimini takdir ediyor, kimine de gülüyordum açıkçası. Ama bir yere geldim, "yokluk hali özniteliği" diye bir şey yazıyor. Bir aydan uzun bir süre uğraştım... çözemedim, anlayamadım. Sonunda kitabın orijinali tesadüfen elime geçince, ilk işim o sayfaya bakmak oldu. Şok geçirdim, bir yandan kendime kızdım, hatta utandım... yazara kızamadım elbette. Bilin bakalım neymiş?



"Drawing Unit / Elevation Unit" butonuna tıklandığında, m/m, m/cm, m/mm, cm/m, cm/cm, cm/mm, mm/m, mm/cm, mm/mm seçeneklerinin bulunduğu bir liste açılacaktır.

Yeri gelmişken açıklamakta fayda var. AutoCAD'in uzunluk birimi "Drawing Unit" tir. Inch, feet, cm, m veya mm gibi bir birimi yoktur! Kullanıcı 1 drawing unit'in hangi birime karşılık geleceği konusunda karar verir, dosyanın o birimde çizildiği ifade edilir.

Kullanıcı çizimini oluştururken, metrik sistemde hangi birimi esas almış olursa olsun, Kot Değerleri'nin (gene metrik sistemde) aynı veya farklı bir birimde verilmesini seçebilir. Başlangıç olarak bizde en sık kullanılan cm/m seçili gelecektir. Bu demek oluyor ki, çizim 1 drawing unit=1 cm kabulüyle hazırlandı, projede uzunluklar cm, kotlar m biriminde gösterilecektir.

"Overal Scale Factor" giriş kutusuna çizimin genel ölçeği girilmelidir.

AutoCAD'de ölçekli çizim yapılmaz! (yapılmamalıdır, hiç bir mantklı açıklaması yoktur.) Daha doğrusu 1/1 çizilir. Daha da açarsak, 1 drawing unit = 1 cm kabul ederek çizim yapıldıysa bu durumda ölçek 1/1'dir. Burada, Çizimin Genel Ölçeği ifadesinde kastedilen çıktı'nın hangi ölçekte alınacağıdır.

Printer veya Plotter gibi çıktı aygıtlarının kullandığı birim, metrik sistemde mm'dir. Hemen aklına DPI gelenler olmuştur. DPI (Dots Per Inch) inç başına nokta sayısı birim değil çözünürlük (resolution) ifadesidir. Uzun uzun detay anlatmanın yeri değil... cm birimini esas alarak yaptığımız çizimden 1/50 ölçeğinde çıktı almak istiyorsak; dwg unit=cm kabulünden bir değişikliğe gerek yok, ama bu değeri Çıktı Aygıtı birimine çevirmemiz gerekiyor... 10=50 çizim ölçeği bizi hedefe ulaştırır. Bunu sadeleştirip 1=5 demek aslında aynı şeydir, eşitliğin sol tarafını 10 ile çarpmadık ta, sağını 10'a böldük.

Bu esaslar çerçevesinde Kot Blok'ları ve Atrribute Yazı Boyutları, nihai olarak kağıt üzerinde çıkacakları boyutlarda tanımlanmış, insert edilirken de "Overal Scale Factor" ile ölçeklenmişlerdir. Bir değeri, aynı sayıyla çarpıp, sonra o sayıya bölerseniz değeri değişmez. Kullanıcı Kot İşaretlerini ve yazılarını biraz küçük veya büyük bulursa, 50 yerine 25, 35, 60 veya 75 ve hatta 100 ve daha büyük değerler girerek kot işaretleri ve yazıların büyüklüklerini uygun gördüğü şekilde ayarlayabilir. "Overal Scale Factor", Hesaplanan Kot Değerini etkilemez.

Açıklamalı Video için Tıklayınız

Farklı Kot Gruplarında farklı Lineer Unit Scale Factor kullanılmış olabilir, güncelleme "Add" fonksyionu ile eklemeler yapılırken, diğer seçeneklerin tümü devre dışı kalacaklarından tüm özellik ve değerleri seçilen bloktan alınacağı için eklenen yeni kot(lar)da ölçü birimi ve ölçek bakımından guruba uygun olacaktır.
"Update" seçenği ile Kot Grubu güncellenirken, iletişim kutusundan alınan (o an etkin olduğu için değiştirilebilen, Yer Çizgisi Açısı dışındaki değerler) seçilen guruba uygulanacağından dikkat edilmelidir.

KotK-1.vLx dosyasını 174410-kotk-1.rar linkinden indirebilirsiniz.

Selam ve saygılarımla herkese kolaylıklar dilerim.

* 30.11.2021 15.00 itibarıyla KoTk-1.vLx dosyası güncellendi.

ProhibiT (22.12.2021 21:26 GMT)

01.12.2021 19:07    

mateus
emeğine sağlık hayat paylaştıkça güzelleşir

> 1 <
Copyright © 2004-2022 SQL: 0.787 saniye - Sorgu: 51 - Ortalama: 0.01544 saniye