• Sonuç bulunamadı

4. VEKTÖRİZASYON İŞLEMİNDE kullanılan YÖNTEM ve ARAÇLAR

4.4 DXF (Drawing Interchange Format) Formatına Çevirme

4.4.1 ASCII DXF Dosya Formatı

Bu formattaki dosya ASCII formatında olduğu için kolayca yazılabilir veya okunabilir. Bu sayede diğer çizim programları bu formatı kullanarak kendi aralarında çok kolay veri değişimi yapabilmektedir. AutoCAD ayrıca bu formatı binary olarak da saklayacak şekilde kullanabilir. Bu şekilde kullanılan dosya formatına ise Binary DXF denir.

4.4.1.1 Genel Dosya Formatı

DXF dosya formatının tüm dosya organizasyonu aşağıdaki gibidir. 4.4.1.1.1 HEADER Bölümü

Çizimle ilgili genel bilgiler burada tutulur. Her parametrenin bir değişken ismi ve bu isme atanmış değeri bulunur. Örneğin bu bölümde DXF dosya formatının hangi AutoCAD versiyonu için olduğu, açıların hangi tabandan başladığı, açıların saat yönünde mi yoksa saat yönünün tersi istikametinde mi olacağı gibi temel çizim özellikleri burada tanımlanmaktadır.

4.4.1.1.2 TABLES Bölümü Bu bölüm aşağıdaki tanımları içerir. Çizgi Tipleri tablosu (LTYPE) Katman Tablosu (LAYER) Yazı sitili tablosu (STYLE) Görünüm Tablosu (VIEW)

Viewport konfigürasyonu (VPORT) Kullanıcı Koordinat Sistemi tablosu (UCS) Ölçüm Sitili tablosu (DIMSTYLE)

Uygulama Tanıtım Tablosu (APPID) 4.3.1.1.3 BLOCKS Bölümü

Bu bölüm çizimde kullanılmış her blok hakkında bilgi vermektedir. 4.3.1.1.4 ENTITIES Bölümü

Bu bölüm çizim bileşenlerini içermektedir. Yani çizdiğiniz her şey bu bölümde tutulmaktadır. Çizimde kullandığınız çember, dikdörtgen, elips gibi her nesnenin boyutları ve konumu burada tutulmaktadır. Ayrıca çizimde herhangi bir blok kullanılmışsa BLOCK bölümündeki blok nesnelerine referans edilmektedir. Bu bölüm son bölümdür ve bu bölümden sonra EOF denilen dosya sonu işareti gelmektedir.

4.3.1.2 Grup Kodları

Bir DXF dosyası iki satır işgal eden gruplardan oluşmaktadır. İlk satırda grup kodu bulunmaktadır. Grup kodu sıfırdan büyük pozitif bir tam sayıdır. İkinci satır ise grup değeridir.

İstenirse özel grup kodları da tanımlanabilmektedir. Fakat bu grup koduna atanacak değer grup koduyla alakalı olarak değişmektedir. Aşağıdaki tabloda hangi grup kod aralığına hangi tür değişkenlerin atanabileceği gösterilmektedir.

Grup Kodu Alabileceği Değer

0 – 9 String

10 – 59 Kayan Noktalı Sayı

60 – 79 Integer

140 - 147 Kayan Noktalı Sayı

170 – 175 Integer

210 – 239 Kayan Noktalı Sayı

999 Açıklama (String)

1010 – 1059 Kayan Noktalı Sayı

1000 – 1009 String

Tablo 4.1. Grup Kodlarının Alabileceği Değerler

Bu yüzden herhangi bir program DXF dosyasında bulunan bir grup kodunu, nasıl kullanacağını bilmese de yukarıdaki tablo sayesinde kullanabilmektedir. DXF dosyasında bulunan değerler kullanılan UNIT komutlarından etkilenmemektedirler. Kullanılan koordinat ve açı değerleri desimal gösterim kullanılmaktadır.

Değişkenler, tablolar ve varlıklar gruplarla ifade edilirler. Gruplarda; nesnelerin tipleri, çoklu gruplarda nesneyle ilişkilendirilmiş değerler, değişkenlerin isimleri bulunur. Bunlara ek olarak, bölümlerin başını ve sonunu gösteren özel işaretler ve tablolar da ayrıca tanımlanabilmektedir. Tablolar, dosya ayıraçları ve varlıklar her zaman sıfır grup kodu ile tanımlanmaktadırlar. DXF’de kullanabileceğiniz en fazla string uzunluğu 255 karakterdir.

4.3.1.2.1 Açıklamalar

999 grup kodu bir sonraki satırın açıklama satırı olduğunu anlatır. Yani açıklama yapmak istediğiniz satırlarda bu kodu kullanarak açıklama yazılabilmektedir.

Örnek: 999

Bu bir açıklama satırıdır 999

4.3.1.2.2 Dosya Bölümü

DXF dosyası dört ayrı bölüme ve bir dosya sonu işaretinden oluşmaktadır. Dosya ayırma işaretçileri bu bölümleri birbirinden ayırmaya yaramaktadır. Aşağıdaki örnek, sadece tablo başlıklarından ve bölüm işaretçilerinden oluşan bir gösterimi ifade edilmektedir:

0 (Başlangıç HEADER Bölümü)

SECTION 2

HEADER

<<<<Burada başlık değişkenleri tanımlanıyor>>>> 0

ENDSEC (HEADER bölümünün sonu) 0 (TABLES bölümü başlıyor) SECTION 2 TABLES 0 TABLE 2

VPORT 70

(Viewport tablosundaki en fazla öğe sayısı)

<<<<viewport tablosundaki öğeler burada yazılıyor>>>> 0

ENDTAB 0

TABLE 2

APPID, DIMSTYLE, LTYPE, LAYER, STYLE, UCS, VIEW veya VPORT 70

(tablonun en fazla öğe sayısı)

<<<<tablo öğeleri buraya yazılıyor>>>> 0

ENDTAB 0

ENDSEC (TABLES bölümü bitiyor) 0 (Begin BLOCKS section) SECTION

2

BLOCKS

<<<<blok tanımlamaları>>>> 0

ENDSEC (blok tanımlarının sonu) 0 (ENTITIES bölümü başlıyor) SECTION

2

ENTITIES

<<<<çizim nesneleri burada tanımlanır>>>> 0

ENDSEC (ENTITIES bölümü burada tanımlanıyor) 0

EOF (Dosya sonu)

4.3.1.2.3 HEADER Bölümü

Bu bölüm çizimle ilgili değişkenlerin tanımları ve değerlerini içermektedir. Değişkenler derken STATUS komutuyla gösterilebilen ve birçok komutla değiştirilebilen değişkenler anlatılmaktadır. Her değişken HEADER bölümünde 9 grup komutuyla değişkenin ismini verip daha sonra değişkenin değerinin verilmesi ile

tanımlanmaktadır.

Tarih zaman değişkenleri gerçek sayılar olup aşağıdaki formatta yazılmaktadır: <Julian tarihi>.<Kesir>

Geçen süre de benzer bir formatla ifade edilir: <Gün sayısı>.<Kesir>

4.3.1.2.4 TABLES Bölümü

Her TABLES bölümü değişken sayıda tablo girdisi içeren birçok tablodan oluşmaktadır.

Tabloların yeri değişebilir, fakat LTYPE tablosu mutlaka LAYER tablosundan önce gelmelidir. Her tablo 0 grup koduyla ve TABLE etiketi ile tanıtılmaktadır. Bu değer 2 grup koduyla bilinen tablo (VPORT, LTYPE, LAYER, STYLE, VIEW, DIMSTYLE, UCS veya APPID) olup olmadığını belirtmektedir. Bundan sonra 70 grup koduyla tabloda en fazla tablo sayısı tanımlanmaktadır. Her tablo ismi büyük harflerle yazılmalıdır.

Çizimdeki tablolar silinmiş öğeler içerebilir, fakat bu DXF dosyasına yazılmaz. Bu yüzden 70 grup koduyla belirtilenden daha az tablo içeriği olabilmektedir. Dolayısı ile 70 grup kodundaki sayıyı tabloyu okumak için indeks olarak kullanmamak gerekmektedir. Fakat bu sayı kullanılarak DXF dosyasını okuyacak programın tüm tabloyu karşılayacak büyüklükte alan ayırması sağlanabilmektedir.

Bu başlığı takip eden her tablo bir tablo girdisidir. Her tablo öğesi (girdisi) 0 grup tanımlayıcısı (tablo ismi gibi, örneğin, LTYPE, LAYER) , 2 grup kodu; tablo girdisinin ismi, 70 grup, tablo girdisiyle alakalı bayrakları (her tablo için tanımlanmış) ve ek olarak tablo girdisinin değerlerini veren grup kodlarından oluşmaktadır. Her

tablonun sonu 0 grup kodu ve bu kodun “ENDTAB” değeri ile sonlandırılmaktadır. 4.3.1.2.5 BLOCKS Bölümü

BLOCK bölümü DXF dosyasında kullanılan tüm blok tanımlarını içermektedir. Bu bölüm çizimde kullanılan ve HATCH komutuyla üretilen ve ölçümle ilgili olarak kullanılan blokları da içermektedir. BLOCK bölümünde bulunan her öğe Block ve Endblk öğelerinin arasında yer almaktadır. Block ve Endblk öğeleri sadece BLOCKS bölümünde bulunmaktadır. Yani hiçbir Block ve Endblk girdisi arasında başka bir Block ve endblock öğesi yer almamaktadır. Fakat böyle bir tanıma ihtiyaç duyulduğunda INSERT öğesi kullanılabilmektedir.

Dış referanslar Blok tanımları içerisinde 1 grup kodu ile dış dosyayı gösteren yol bilgisi ile tanımlanabilmektedir.

Ör: Xref dosyaadi

4.3.1.2.6 ENTITIES Bölümü:

Entity öğeleri DXF dosyasında hem BLOCK bölümü hem de ENTITIES bölümünde bulunabilmektedir. Her iki bölümde de kullanımları hemen hemen aynıdır. İleride her iki bölümde de bu öğelerin nasıl bulunabileceği gösterilmektedir. Öğeleri tanımlayan bazı daima ortaya çıkarken, bazı gruplar ise sadece varsayılan değerleri değiştiğinde ortaya çıkmaktadır. Tüm gruplar yazılarak varsayılan değeri almasını istediğimiz grup koduna “N” değeri yazılarak bu grup koduna ait değer yerine varsayılan değerin kullanılması sağlanabilmektedir.

DXF dosyalarını okuyacak programların, öğeleri tanımlayan özelliklerin burada verilen sırada olacağını düşünmemeleri gerekmektedir. Bunun yerine 0 grup kodunu veya bölüm sonunu görene kadar özellikleri alıp değerlendirmeleri gerekebilir.

Unutulamamalıdır ki, DXF dosyası bir çizimi tanımlamak için tek başına yeterlidir. Yani AutoCAD’ in çıkaracağı yeni eklentiler ve grup kodları da bu dosya formatı ile tanımlanabilmektedir. Bu yüzden DXF okumak için yazılacak bir programın

tablo izleme yöntemini kullanması gerektiği açıktır. Çünkü sonradan eklenecek özellikler yeni tablolar okunmasını gerektirecektir. Ayrıca özelliklerin belli bir sırada gelmeyeceği de göz önüne alınarak programın bu yönde geliştirilmesi gerekmektedir.

Her öğe 0 grup tipi tanımlayıcısı ile başlamaktadır. Aşağıdaki tabloda öğeler için verilen isimler gösterilmektedir. Her öğe, hangi katmanda bulunduğunu 8 grup kodu ile belirtmektedir. Bu grup kodu ile öğenin bulunduğu katmanın ismi verilmektedir. Her öğe tabandan yükseklik, kalınlık, çizgi tipi veya renk gibi özelliklere sahip olabilir.

Eğer mümkünse her öğe bir handle değerine sahiptir. Bu değer 16’ lık tabanda bir sayı olan bir stringle ifade edilir ve 5 grup kodunun değerine karşılım gelmektedir.

Aşağıdaki grup kodları sadece öğe varsayılan değerlere sahip değilse tanımlanmaktadır. Eğer bu özelliklere değer verilmezse son kolonda bulunan değerleri almaları gerekmektedir.

Grup Kodu Anlamı Varsayılan Değeri

6 Çizgitipi adı ( eger BY-

LAYER değilse). BY- BLOCK özel olarak kayan bir çizgi tipine karşılık gelir.

BYLAYER

38 Tabandan yükseklik (eğer

sıfır değilse). Sadece R11’ den önceki AutoCAD versiyonlarında kullanılır. Daha sonraları her öğenin Z koordinatı kullanılmıştır.

0

39 Kalınlık (sıfır değilse) 0

62 Renk no’su (eğer

BYLAYER değilse). Sıfır

BYBLOCK rengini belirtir. 256 ise BYKAYER rengini belirtir.

67 Boş olması veya sıfır

olması öğenin model uzayında olduğunu beliritir. Bir ise modelin kâğıt düzleminde olduğunu anlatır. Diğer yerler ayrılmıştır.

0

210, 220, 230,

Bu gruplar Point, Circle, Shape, Text, Arc, Trace, Solid, Block Referans, Polyline, Dimension, Attribute ve AtTribute tanımı öğelerinin Z eksenlerinin dünyanın Z eksenine paralel olmaması durumunda kullanılırlar. Grup değerleri X, Y ve Z eksenlerinin kayıklıklarını belirtir.

0,0,1

Tablo 4.2. Grup Kod Değerleri

Diğer grup kodlarından ileriki bölümlerde bahsedilmektedir. Çoğu öğe “flag” grubuna sahiptir. Bunlar integer değerlerdir (6x veya 7x grupları). Her öğenin kendine has özelliklerini tanımlamak için kullanılmaktadır. Aşağıda çizimde kullanılabilecek nesneler ve bazı grup kodları gösterilmektedir.

4.3.1.2.6.1 LINE

10, 20, 30 (başlangıç noktaları), 11,21,31 (bitiş noktaları) 4.3.1.2.6.2 POINT

10,20,30 (nokta). Nokta nesnesi isteğe bağlı olarak PDMODE resimlerin yönlendirmesi için 50 grup kodunu içermektedir.

4.3.1.2.6.3 CIRCLE

10,20,30 (merkez), 40 (yarıçap) 4.3.1.2.6.4 ARC

10,20,30 (merkez), 40 (yarıçap), 50 (başlama açısı), 51 (bitiş açısı) 4.3.1.2.6.5 TRACE

TRACE cisminin köşelerini belirten noktalar : (10,20,30), (11,21,31), (12,22,32), (13,23,33)

4.3.1.2.6.6 SOLID

Dört nokta solid cisminin köşelerini belirtir. (10,20,30), (11,21,31), (12,22,32), (13,23,33). Üç noktalı bir SOLID çizmek için üçüncü ve dördüncü noktayı aynı yapmanız yeterli olacaktır.

4.3.1.2.6.7 TEXT

10,20,30 (ekleme noktası), 40 (yükseklik), 1 (text değeri), 50 (çevirme açısı - varsayılan değeri 0), 51 (eğiklik açısı-varsayılan değeri 0), 7 (text stili adı - varsayılan değeri STANDART), 71 (text yaratma bayrakları - varsayılan değeri 0), 72 (yatay doğruluk tipi – varsayılan değeri 0), 73 (dikey doğruluk tipi – varsayılan değeri 0), 11, 21, 31 hizalama noktaları. Sadece 72 veya 73 grup kodu varsa ve sıfırdan farklıysa kullanılır. Text yaratma bayrakları ve anlamları aşağıdaki tabloda yer almaktadır.

Bayrak Bit Değeri Anlamı

2 Text X eksenine göre ayna

görüntüsü yazılacak.

4 Text Y eksenine göre ayna

görüntüsü yazılacak. Tablo 4.3. Yazım oluşturma bitleri

Doğruluk tipi aşağıdaki tabloda gösterildiği gibi ekrana yazılacak yazının sağa veya sola dayalı olması gibi özellikleri ayarlamak için kullanılmaktadır.

Grup 72 (Yatay Hizalama) Grup 73 (Dikey Hizalama) 0 1 2 3 4 5 3 Yukarı Sol Yukarı Merkez Yukarı Sağ 2 Orta Sol Orta Merkez Orta Sağ

1 Alt Sol Alt Merkez Alt Sağ

0 Temel Sol Temel Merkez Temel Sağ

Hizalanmış Ortada Kaplama

Tablo 4.4. Yazım Ayarlama Grup Kodları ve Değerleri

Eğer doğruluk tipine “temel” veya “kaplama”’dan başka bir şey belirtilmemişse 11, 12, 13 grup kodları hizalama noktasını belirtmektedir (veya hizalamak için öteki noktayı veya kaplama noktasını).

4.3.1.2.6.8 SHAPE

10, 20, 30 (ekleme noktası), 40 (ölçü), 2 (şekil ismi), 50 (çevirme açısı – varsayılan değeri 0), 41 (bağıl x – ölçeklemesi – varsayılan değeri 1), 51 (eğiklik açısı – varsayılan değeri 0)

4.3.1.2.6.9 BLOCK

2 (Blok adı), 3 (diğer blok adı), 70 (blok tip bayrağı), 10, 20, 30 (blok taban noktası). Blok nesneleri sadece BLOCKS bölümünde bulunur, ENTITIES bölümünde blok bulunmaz. Blok tip bayrağının (grup 70) değerleri aşağıdaki tabloda yer almaktadır.

Bit Değeri Anlamı

1 Bu uygulamanın hatching yapmak için kullandığı adsız bir bloktur 2 Bu bloğun özelliklere sahiptir

4 Bu blok dışarıda referans edilmiştir (Xref) 8 Kullanılmaz

16 Bu blok dışa bağımlı

32 Bu çözümlenmiş bir dış referans, veya bağlı bir dış referans 64 Bu tanımlama referans edilmiştir.

Tablo 4.5. Grup 70’in Blok tablosu için bit değerleri 4.3.1.2.6.10 POLYLINE

66 (köşe izleme bayrağı), 10, 20, 30 (çoklu çizginin tabandan yüksekliği. Bu değeri sadece 30 değeri sağlar. 10 ve 20 değeri daima sıfırdır). 70 (çoklu çizgi bayrağı – varsayılan değeri sıfır), 40 (Varsayılan çizgi başlama kalınlığı – varsayılan değeri 0), 41(Varsayılan çizgi bitiş kalınlığı – varsayılan değeri sıfır), 71 ve 72 (çokgen M ve N vertex sayısının uyumluluğu – varsayılan değeri 0), 73 ve 74 (Düzgün M ve N yüzey duyarlılığı – varsayılan değeri sıfır).

Köşe izleme bayrağının değeri daima 1’ dir. Bunun anlamı bir “dizi bitti” (seqend) işareti görene kadar köşelerin izlenerek çizimin yapılacağıdır. Grup kodu 70 ir bit kodu olup alacağı değerler ve Bu değerlerin anlamı aşağıda yer almaktadır (AutoCAD 2002 Help).

Bit Değer Anlamı

1 Bu kapatılmış bir çoklu çizgi anlamına gelir. 2 Eğrisel köşeler eklendi

4 Doğrusal köseler eklendi 8 Bu üç boyutlu bir çoklu çizgi 16 Bu üç boyutlu bir çokgen mesh 32 Çokgen mesh N yönünde kapatılmış 64 Bu çoklu çizgi bir çokgen mesh

128 Çizgi tipi özelliği sürekli olarak köşelerin etrafında üretiliyor. Tablo 4.6 Grup 70’in çoklu çizgi tablosu için bit değerleri

Benzer Belgeler