dxf dosya hk
Autocad’ in Menü kısmından Help/Help/Auto LISP, Visual LISP and DXF’ i seç buradan DXF Reference kısmında DXF yazım formatı hakkında öğrenmek istediğin her şey var (İngilizce Biliyorsanız iyi, veya tarzanca ben öyle yaptım)
Versiyondan versiyona degisen cok sey varmi? Soruna gelince var ama benim sana verdiğim örnekler en basit şekli yani autocad10 versiyonunda bile çalışır. Zaten bu farklılıklarda yeni komutlarla ilgili, tahmin edersinki her autocad komutunu DXF formatta kullanmak mümkün.
Genede ben sana bazı önemli şeyleri bire bir programı açıklayarak anlatmaya çalışayım.
Mesela “çizimi metrik mi yoksa inch olarak mı yapmışlar” diye soruyorsun? Bu öğrenmen için elinde bulunan DXF dosyada HEADER Bölümünde şu ifadeyi araman lazım;
9
$LUNITS
70
2
9 Sayısının Peşinden bir sistem değişkeninin adının geleceği anlaşılır,
$LUNITS Sistem değişkeninin adını belirler (Ölçü sitilini belirlediğimiz değişken),
70 Sayısının peşinden Autocad’ in belirlediği bir sayının geleceği anlaşılır,
2 Sayısı ise Çizimin Ondalık Sistem
Yani “Decimal” olduğunu anlatır.
Autocad’ in belirlediği sayılar şu şekildedir;
1 FEN BİLİMLERİ Scientific
2 ONDALIK SİSTEM Desimal
3 MÜHENDİSLİK Engineering
4 MİMARİ Fractional
5 KESİRLİ Scientific
Yanda bu seçimi Autocad menüsü şeklinde görmektesin.
Mesela bir örnek daha vereyim“çizimin açı Çinsi ne” Bu öğrenmen için elinde bulunan DXF dosyada şu ifadeyi araman lazım;
9 Sayısının Peşinden bir sistem değişkeninin adının geleceği anlaşılır,
$DIMAUNIT Sistem değişkeninin adını belirler (Açı sitilini belirlediğimiz değişken),
70 Sayısının peşinden Autocad’ in belirlediği bir sayının geleceği anlaşılır,
2 Sayısı ise Çizimin açı biriminin Grad olduğunu anlatır.
Autocad’ in belirlediği sayılar şu şekildedir;
0 ONDALIK DERECE
1 DERECE,DAKİKA,SANİYE
2 GRAD ÇİNSİNDEN
3 RADYAN
4 TOPOGRAFİK
Yanda bu seçimi Autocad menüsü şeklinde görmektesin.
Öncelikle bazı konuları hatırlatayım. Autocad Dxf formatta kod yazmak için bazı temel prensipleri bilmemiz lazım. Dxf format üç ana guruptan oluşur.
HEADER Bölümü
Bu bölümde Autocad sistem değişkenlerini kendi isteğimize göre değiştireceksek bunların girişi yapılır, Yazma zorunluluğu yoktur.
TABLES Bölümü
Bu bölüm Autocad çizgi tipleri ve yazı stillerini kendi isteğimize göre değiştireceksek bunların girişi yapılır, Yazma zorunluluğu yoktur.
ENTITIES Bölümü
Bu bölüm Autocad çizim işlerini yaptırdığımız bölümdür ve asıl çizimi bu bölümde yaptırırız.
Bu her bölümde Autocad’ in her konu için yazmamamız gereken bazı özel kodları vardır. Bunlardan birkaç önemli olanını aşağıda program içinde örnek olarak tanımladım.
Tabiî ki yukarıda verdiğim iki örnekte HEADER Bölümü içinde aranacak,
Autocad’ in hazırladığı DXF dosya şu şekilde görünür (yanlarına açıklamalarını yazdım;
0 HEADER Bölümü Başlıyor,
SECTION
2
HEADER
.
. ……. bölümde Autocad sistem değişkenlerini kendi isteğimize göre değiştireceksek bunların girişi yapılır, Yazma zorunluluğu yoktur(yazının altında bunları yazacağım),
.
.
0
ENDSEC HEADER Bölümü Bitti,
0 TABLES Bölümü başlıyor,
SECTION
2
TABLES
0 çizgi tipleri başlangıcı,
TABLE
2
LTYPE"
70
2 2 adet yeni çizgi tipinin girileceği bildiriliyor,
.
.
. ……Bu bölümde 5 adet çizgi tipi girilir,
.
0
ENDTAB Çizgi tipleri sonu
0 YAZI stili başlangıcı
TABLE
2
STYLE
70
1 1 Adet yeni yazı tipi girileceği bildiriliyor,
.
.
. ……Bu bölümde 1 adet yazı tipi girilir,
.
0
ENDTAB YAZI stili sonu
0
ENDSEC TABLES bölümü sonu
0 ENTITIES bölümü başlıyor,
SECTION
2
ENTITIES
.
.
. Bu bölümde çizim yaptırılır, (yazının altında bunları yazacağım)
.
0
ENDSEC ENTITIES bölümü bitti,
0
EOF Dosya sonu işareti.
Anlamış olduğun gibi DXF formatta her zaman O yazılı ifadeden sonraki sırada Bölümler, Bölüm sonları veya Autocad komutu yer alır. 8 yazılı ifadeden sonraki sırada Layer adı, 9 dan sonra Sistem Değişkeninin adı, 10 yazılı ifadeden sonraki sırada sağa/sola değer, 20 yazılı ifadeden sonraki sırada yukarı/aşağı değer, 30 yazılı ifadeden sonraki sırada h yükseklik değeri gibi bu böyle uzar gider,
Sana elimde bulunan bazılarından örnekler vereyim;
HEADER Bölümüne yazabileceğin veya okuyabileceğin bazı önemli değişkenler 70 ifadesinde sonra Autocad in belirlediği ölçüler girilir Aşağıda göreceksin bu ifade 40 olacak ozaman bizim belirlediğimiz değerler girilir. Anlaşılması için ben aralarında satır boşluğu bıraktım tabiî ki bu olmayacak;
9
$REGENMODE
70
1 ' 1 REGEN OTOMATİK YAPILIR
' 0 REGEN KULLANICIYA SORULUR
9
$QTEXTMODE
70
0 ' 0 HIZLI YAZI MODU KAPALI
' 1 HIZLI YAZI MODU AÇIK
9
$MIRRTEXT
70
0 ' 0 YAZI YANSITILDIĞINDA AYNEN KALIR
' 1 YAZI YANSITILDIĞINDA TERS OLUR
DİKKAT Bak ifade 40 oldu değeri biz belirliyoruz ;
9
$LTSCALE
40
1 ' 1 ÇİZGİ TİPİ ÖLÇEĞİ
9
$TEXTSIZE
40
2 ' GECERLİ YAZI YÜKSEKLİĞİ
9
$TRACEWID
40
1 ' VARSAYILAN CİZGİ GENİŞLİĞİ
9
$CLAYER
8
DAİRE ' GEÇERLİ LAYER ADI benim çizimimde DAİRE İdi
9
$CECOLOR
62
0 ' GEÇERLİ RENK NO
9
$LUNITS
70
2 ' 1 FEN BİLİMLERİ
' 2 ONDALIK SİSTEM
' 3 MÜHENDİSLİK
' 4 MİMARİ
' 5 KESİRLİ
9
$LUPREC
70
2 ' 2 VİRGÜLDEN SONRAKİ HANE SAYISI
9
$SKETCHINC
40
0.1 ' ELLE ÇİZİMDE DOĞRU UZUNLUĞU
9
$AUNITS
70
2 ' 0 ONDALIK DERECE
' 1 DERECE,DAKİKA,SANİYE
' 2 AÇILAR GRAD ÇİNSİNDEN
' 3 RADYAN
' 4 TOPOGRAFİK
9
$AUPREC
70
4 ' 4 AÇILARDA VİRGÜLDEN SONRAKİ HANE SAYISI
9
$ELEVATION
40
0 ' GEÇERLİ ELEV YÜKSEKLİĞİ
9
$THICKNESS
40
0 ' ÇİZİLECEK OBJELERİN 3.BOYUT YÜKSEKLİĞİ
9
$SKPOLY
70
0 ' 0 İSE ELLE ÇİZİM NORMAL
9
$ANGBASE
50
90 ' 90 AÇI YÖNÜ YUKARISI OLACAK
9
$ANGDIR
70
1 ' 1 AÇILAR SAAT YÖNÜNDE HESAPLANACAK
' 0 TERS YÖNDE
9
$SPLFRAME
70
0 ' 0 SADECE EĞRİ GÖRÜNÜR PLINE GÖRÜNMEZ
' 1 EĞRİDE PLINE GÖRÜNÜR
9
$SPLINETYPE
70
5 ' 5 EĞRİ ÇİZGİ HATTA KALIR
' 6 EĞRİ ÇİZGİ KÜBİK OLUR
9
$SPLINESEGS
70
8 ' 8 EĞRİ ÇİZGİ OBJE SAYISI
EN ÇOK KULLANILAN ÖLÇÜLENDİRME DEĞİŞKENLERİ;
9
$DIMSCALE
40
1 ' ÖLÇÜLENDİRME ÖLÇEK KAT SAYISI
9
$DIMLUNIT
70
2 ' 2 ONDALIK SİSTEM
' 1 FEN BİLİMLERİ
' 3 MÜHENDİSLİK
' 4 MİMARİ
' 5 KESİRLİ
9
$DIMDEC
70
2 ' 2 VİRGÜLDEN SONRAKİ HANE SAYISI
9
$DIMDSEP
70
46 ' 46 NOKTA ONDALIK AYIRACI
' 44 VİRGÜL
' 32 BOŞLUK
9
$DIMTZIN
70
4 ' 4 ÖLÇÜLERDE SON SIFIRLARI ATMAK
9
$DIMAUNIT
70
2 ' 2 AÇILAR GRAD ÇİNSİNDEN
' 0 AÇILAR ONDALIK DERECE
' 1 AÇILAR DERECE,DAKİKA,SANİYE
' 3 AÇILAR RADYAN
' 4 AÇILAR TOPOGRAFİK
9
$DIMADEC
70
4 ' 4 AÇILARDA VİRGÜLDEN SONRAKİ HANE SAYISI
9
$DIMAZIN
70
2 ' 4 AÇILAR SON SIFIRLARI ATMAK
9
$DIMASZ
40
2 ' ÖLÇÜ OKU BÜYÜKLÜĞÜ
9
$DIMEXO
40
2 ' ÖLÇÜ ARASI ÇİZGİSİYLE ÖLÇÜLEN ŞEKİL ARASI
9
$DIMDLI
40
4 ' 2 ÖLÇÜ ARASI MESAFESİ
9
$DIMEXE
40
2 ' ÖLÇÜ ARASI ÇİZGİLERİNİN YUKARI UZANTISI
9
$DIMTXT
40
2 ' YAZI YÜKSEKLİĞİ
9
$DIMCEN
40
1 ' DAİRE MERKEZ İŞARETİNİN BOYU
' 0 İŞARET ÇİZMEZ
' - İŞARET DAİRENİN DIŞINADA ÇİZER
9
$DIMTSZ
40
0 ' 0 İSE ÖLÇÜLER OK ARASINDA
' 0 DAN BÜYÜK İSE TİK BOYU
9
$DIMDLE
40
0 ' DIMTSZ 0 DAN BÜYÜK İSE
' ÇİZGİ ARALIĞI ÇIKINTISI
9
$DIMTIH
70
0 ' 0 ÖLÇÜ ÇİZGİSİNE PARALEL YAZI
' 1 ÖLÇÜ ÇİZGİSİNE YATAY YAZI
9
$DIMTOH
70
0 ' 0 EĞİK ÖLÇÜ ÇİZGİSİNE PARALEL YAZI
' 1 EĞİK ÖLÇÜ ÇİZGİSİNE YATAY YAZI
9
$DIMTVP
40
0.1 ' EĞER DIMTAD 0 İSE ÇİZGİ İLE YAZI ARASI MESAFESİ
9
$DIMTOFL
70
0 ' 0 ÖLÇÜ YAZISI SIĞMAZSA ARA BOŞ
' 1 ÖLÇÜ YAZISI SIĞMAZSA ARA ÇİGİLİ
9
$DIMSTYLE
2
ISO -25 ' ISO STANDARTI
9
$DIMCLRD
70
0 ' ÖLÇÜ ÇİZGİSİ RENGİ
9
$DIMCLRE
70
0 ' ÖLÇÜ ARASI ÇİZGİSİ RENGİ
9
$DIMCLRT
70
0 ' YAZI RENGİ
9
$DIMGAP
40
0.5 ' YAZI İLE ÇİZGİLER ARASI BOŞLUK
' DEĞER - GİRİLİRSE ÖLÇÜ KUTU İÇİNDE OLUR
9
$DIMTXSTY
7
Standard 'geçerli YAZI SİTİLİ
TABLES Bölümüne sana örnek olacak yazabileceğin veya okuyabileceğin çizgi tipini hazırlaya bileceğin benim hazırladığım 2 adet çizgi tipi;
0 İlk örnek
LTYPE
2
CONTINUOUS ' çizgi tipi adı
70
0
3
SOLID LINE ' açıklayıcı yazı
72
65
73
0
40
0
0 İkinci örnek
LTYPE
2
KISA_ÇİZGİ ' çizgi tipi adı
70
0
3
- - - - - ' açıklayıcı yazı
72
65
73
2
40
1
49
1
49
-0.5
Gene TABLES Bölümüne yazabileceğin yazı tipi burada yazı stili olarak Courier New Tur seçip adını TÜRKÇE koyuyoruz;
0 ' YAZI STİLLERİ
STYLE
2
TÜRKÇE ' stil ismi
70
0
40 ' yazı yüksekliği
1
41 ' yazı genişliği
1
50 ' yazı açısı
0
71 ' üretim işaretleri
0
42 ' kullanılan son yükseklik
2
3
Courier New Tur ' seçilen acad fontu
4
1
ENTITIES Bölümüne yazabileceğin veya okuyabileceğin örnekler;
NOKTA ÇİZMEK;
0
POINT ‘nokta çizileceğini
8
Çizim1 ' yüzey adı Çizim1
10
50 ' y değeri 50
20
87 ' x değeri 87
30
5 ' z yüksekliği 5
DAİRE ÇİZMEK;
0
CIRCLE ‘Daire çizileceğini
8
Çizim2 ' yüzey adı Çizim2
10
305.8 ' MERKEZ y değeri 305.8
20
101 ' MERKEZ x değeri 101
30
5.5 ' MERKEZ z değeri 5,5
40
7 daire yarı çapı 7
3 BOYUTLU ÇİZGİ ÇİZMEK;
0
LINE
8
YeniÇizim ' yüzey adı YeniÇizim
10
40 ' y değeri 40
20
87 ' x değeri 87
30
99 ' x değeri 99
11
128.5 ' varış y değeri 128.5
21
201 ' varış x değeri 201
31
5 ' varış x değeri 5
2 BOYUTLU ÇİZGİ ÇİZMEK;
0
LINE
8
YeniÇizim ' yüzey adı YeniÇizim
10
40 ' y değeri 40
20
87 ' x değeri 87
11
128.5 ' varış y değeri 128.5
21
201 ' varış x değeri 201
YAY ÇİZMEK
0
ARC
8
YeniÇizim ' yüzey adı YeniÇizim
10
55 ' MERKEZ y değeri 55
20
101 ' MERKEZ x değeri 101
40
401 ' YARI ÇAP 40
50
90 ' BAŞLANGIÇ AÇISI 90
51
98 ' BİTİŞ AÇISI AÇISI 98
YAZI YAZMAK
0
TEXT
8
YeniÇizim ' yüzey adı YeniÇizim
10
40 ' y değeri 40
20
87 ' x değeri 87
40
5 ' YAZI YÜKSEKLİĞİ 5
41
.8 ' SIKIŞTIRMA ORANI 0.8
50
0 ' YAZININ İSTİKAMET AÇISI (derece cinsinden) 0
51
0 ' YAZININ YATIKLIK AÇISI (ayarlanan açı) 0
1
MERHABA ' YAZILACAK METİN MERHABA
7
TÜRKÇE ' STİL İSMİ TÜRKÇE
71
0 ' 2 SOLA AYNA
' 4 AŞAĞIYA AYNA
72 ' YATAY da
0 ' 0 sola dayalı
' 1 merkez
' 2 sağa dayalı
73 ' DİKEY de
2 ' 0 hattın üzerinde
' 1 alta dayalı
' 2 ortalanmış
' 3 üste dayalı
11 ' 72 ve 73 GRUPLARI VARSA Y DEĞERİ [10] aynı
0
21 ' 72 ve 73 GRUPLARI VARSA X DEĞERİ [20] aynı
15
DİKKAT ETTİĞİN GİBİ ;
O yazılı ifadeden sonraki sırada Autocad komutu yer alır.
8 yazılı ifadeden sonraki sırada Layer adı yer alır.
10 YAzılı ifadeden sonraki sırada sağa/sola değeri yer alır.
20 yazılı ifadeden sonraki sırada yukarı/aşağı değeri yer alır.
30 yazılı ifadeden sonraki sırada h yükseklik değeri yer alır.
11 YAzılı ifadeden sonraki çizgilerde bitiş sağa/sola değeri yer alır.
21 yazılı ifadeden sonraki çizgilerde bitiş sırada yukarı/aşağı değeri yer alır.
31 yazılı ifadeden sonraki sırada çizgilerde bitiş h yükseklik değeri yer alır.
62 yazılı ifadeden sonraki sırada çizilecek renk numarası
39 yazılı ifadeden sonraki sırada çizilecek 'YÜKSEKLİK (Thickness)
6 yazılı ifadeden sonraki sırada çizgi tipi
40 yazılı ifadeden sonraki sırada Daire için yarıçap yazı için yazı yüksekliği girilir.
İlk 0 ve komut adı ifadesin den sonra bunları sıra ile yazma şartı ve yazıp yazmama şartı yoktur.
İstediğin gibi kullanırsın eğer renk sırası 62 nolu sırayı yazmazsan geçerli renk kullanılır, tabiî ki bir çizgi çizerken başlangıç ve bitiş değerlerini mutlaka yazman gerekir ama çizgi kalınlığı, çizgi tipi veya çizgi rengini yazmasan da olur. Ama Autocad hazırlarsa bunların hepsini yazar ve o yüzden DXF dosyar DWG dosyalardan büyük olur.
Boş vaktime geldi çok yazdım. Özetle YeniLayer isimli bir layer açarak merkezi 100,100 yarı çapı 58 olan bir daire çizdirmen için aşagıdaki satırları bir not defterine aynen yazman ve dosya uzantısınıda dxf yapmanız yeterli olur.
0
SECTION
2
ENTITIES
0
CIRCLE
8
YeniLayer
10
100
20
100
30
0
40
58
0
ENDSEC
0
EOF
Eğer bunu Visual basic de yazacak olsaydın kodların şu şekilde olurdu;
Private Sub Form_Paint()
DOSYA = "c:\ Deneme.dxf"
Open DOSYA For Output As #1 ' ***** DXF DOSYA YAZIMI *****
Print #1, 0
Print #1, "SECTION"
Print #1, 2
Print #1, "HEADER"
Print #1, 0
Print #1, "CIRCLE"
Print #1, 8
Print #1, YüzeyAdı
Print #1, 10
Print #1, 100
Print #1, 20
Print #1, 100
Print #1, 30
Print #1, 0
Print #1, 40
Print #1, 58
Print #1, 0
Print #1, "ENDSEC" '
Print #1, 0
Print #1, "EOF" '
Close
Cls
Show
Print " [ c:\Deneme.dxf ] İSİMLİ DOSYA AÇILDI"
End Sub
Takıldığınız bir yer olursa arayınız.
Başarılar.
Nazım Kocamaz
nkocamaz@mynet.com