18 Haziran 2025 Çarşamba

AutoCAD: TXTEXP komutunun yazı boyutunu değiştirme sorunu

AutoCAD kullanıcılarının sık karşılaştığı bir sorun: TXTEXP komutuyla patlattığınız metinlerin boyutları orijinaline göre farklı çıkıyor. Peki bu neden oluyor ve nasıl düzeltebilirsiniz?

Sorun:

TXTEXP komutu, yazıları çizgi ve yaylara dönüştürürken birim ölçeklerinin uyumsuzluğundan kaynaklanan boyut farklılıkları yaşayabilir.

Insertion Scale ayarlarının çizim birimleriyle uyumsuz olması veya DWGUNITS ile çizim birimlerinin yanlış tanımlanması gibi nedenlerle metinler beklenmedik şekilde küçülebilir veya büyüyebilir.

Çözüm

  1. Komut satırında OPTIONS komutunu girin.
    User Preferences sekmesinde Source content units ve Target drawing units değerlerini mevcut çiziminizle aynı birimde (örneğin Milimeters, Milimeters) seçin.

  2. Komut satırında -DWGUNITS girin (başındaki eksi işaretine dikkat!).
    Aynı birimleri seçerek AutoCAD'in çizim ölçeklemesini güncelleyin.
    Komutun tamamlanması için Enter'a birkaç kez basmayı unutmayın.
Önemli Uyarı!
Bu işlemleri yapmadan önce çiziminizi yedeklemeniz önerilir. Yanlış birim ayarları, ölçekli çıktılarda sorunlara yol açabilir.

Sonuç

Artık TXTEXP ile bir yazıyı patlattığınızda metinler, orijinal boyutlarını koruyacaktır! AutoCAD'de birim uyumluluğu, özellikle farklı programlardan içe aktarılan dosyalarda kritik öneme sahiptir.

6 Haziran 2025 Cuma

Excelde sayıyı yazıyla yazdırma

Yeni sürüm

06/06/2025: Kodlar güncellendi

Option Explicit
Function YAZIYLA(sayi As Variant) As String
' Sayıyı yazıyla yazar
'
' Mesut Akcan
' https://www.mesutakcan.blogspot.com
' makcan@gmail.com
'
' 23 Nisan 2004
' Güncelleme: 5 Haziran 2025

Dim birler(9) As String, onlar(9) As String, buyukSayi(4) As String
Dim basamak(1 To 15) As Byte, grup(1 To 3) As Byte
Dim sayiMetni As String, grupMetni As String
Dim sonuc As String
Dim negatif As Boolean
Dim i As Byte, j As Byte 'index


If (Not IsNumeric(sayi)) Or (Len(sayi) > 15) Then ' Sayı değilse veya 15 basamaktan büyükse hata
	YAZIYLA = "#HATA!"
Exit Function
End If

If sayi < 0 Then
	negatif = True 'Sayı negatif
sayi = Abs(sayi)
End If

' Birler basamağı
birler(0) = ""
birler(1) = "Bir"
birler(2) = "İki"
birler(3) = "Üç"
birler(4) = "Dört"
birler(5) = "Beş"
birler(6) = "Altı"
birler(7) = "Yedi"
birler(8) = "Sekiz"
birler(9) = "Dokuz"

' Onlar basamağı
onlar(0) = ""
onlar(1) = "On"
onlar(2) = "Yirmi"
onlar(3) = "Otuz"
onlar(4) = "Kırk"
onlar(5) = "Elli"
onlar(6) = "Altmış"
onlar(7) = "Yetmiş"
onlar(8) = "Seksen"
onlar(9) = "Doksan"

' Büyük sayılar
buyukSayi(0) = "Trilyon "
buyukSayi(1) = "Milyar "
buyukSayi(2) = "Milyon "
buyukSayi(3) = "Bin "
buyukSayi(4) = ""

sayiMetni = Right(String(15, "0") & CStr(Fix(sayi)), 15) ' Sayıyı metne çevir ve boşlukları kaldır

' 1'den 15'e kadar döngü
' karakterleri tek tek al ve sayıya çevir ve diziye aktar
For i = 1 To 15
	basamak(i) = CByte(Mid(sayiMetni, i, 1))
Next

sonuc = "" ' Sonuç metni

' sayı metnini 3'erli 5 gruba ayır ve her grubu yazıya çevir
For i = 0 To 4
	For j = 1 To 3 'gruptaki yüzler, onlar, birler basamakları
	grup(j) = basamak((i * 3) + j)
	Next
	
	Select Case grup(1) ' Yüzler basamağı
		Case 0 ' sıfır ise
			grupMetni = "" ' Yüzler basamağı metni boş
		Case 1 ' 1 ise
			grupMetni = "Yüz" ' Yüzler basamağı metni "Yüz"
		Case Else ' 2-9 arası ise
			grupMetni = birler(grup(1)) & "Yüz" ' Yüzler basamağı metni "İkiYüz", "ÜçYüz" vb.
		End Select
		
		grupMetni = grupMetni & onlar(grup(2)) & birler(grup(3)) ' Onlar ve birler basamağını ekle
		
		If grupMetni <> "" Then
			grupMetni = grupMetni & buyukSayi(i) ' Büyük sayıları ekle
			If (i = 3) And (grupMetni = "BirBin ") Then
				grupMetni = "Bin" ' "BirBin" durumunu düzelt
			End If
		End If
	sonuc = sonuc & grupMetni ' Sonucu birleştir
Next
sonuc = Trim(sonuc)
If sonuc = "" Then
	sonuc = "Sıfır"
ElseIf negatif Then
	sonuc = "Eksi " & sonuc
End If
YAZIYLA = sonuc
End Function 

YAZIYLA fonksiyonunu kullanma

  • Kodları kopyalayın.
  • Excelde dosya açıkken ALT+F11 tuşlarına basın (yada Şerit menüden Geliştirici / Visual Basic tıklayın)
  • VBA Editöründe menüden Insert / Module tıklayın.
  • Menüden Edit / Paste ile ya da Ctrl+V ile kopyalanan kodları yapıştırın.
  • Artık YAZIYLA fonksiyonunu diğer Excel fonksiyonları gibi hücrelerde kullanabilirsiniz.

Eski sürüm

Excelde sayıyı yazıyla yazdırmak için gerekli fonksiyonu oluşturan VBA kodları
Kodlar aşağıdaki excel dosya içinde de mevcuttur.
VBA kodlarını görmek için dosyayı açtıktan sonra ALT+F11'e basın.
İndir YAZIYLA.XLS 130 Kb

YAZIYLA fonksiyonunu tüm excel dosyalarında kullanma

Bu işlemler bir defa yapılacaktır.
yaziyla.xls dosyasını açın.
Oku1, Oku2 ve Test sayfalarını silin (Sayfaya geçin Düzen/Sayfayı sil)
Dosya / Farklı kaydet'i tıklayın
Kayıt Türü listesinden "Microsoft Office Excel Eklentisi (*.xla)" seçin
Kayıt Yeri 'nde "Addins" belirir.
Kaydet'i tıklayın
Dosyayı kapatın

Yeni bir excel dosyası ya da varolan bir excel dosyanızı açın
Araçlar / Eklentiler' i tıklayın
Burada "Kullanılabilir eklentiler"de "Yazıyla" göreceksiniz. Yanındaki kareyi tıklayıp seçin.
Tamam'ı tıklayın.
Artık her excel dosyasında YAZIYLA fonksiyonunu başka bir işlem yapmadan rahatlıkla kullanabilirsiniz.
Option Explicit
Function YAZIYLA(sayi As Variant) As String
' Sayıyı yazıyla yazar

' Mesut Akcan
' Anamur Endüstri Meslek Lisesi
' Metal Teknolojisi Öğretmeni

' mesutakcan.blogsppot.com
' makcan@gmail.com
'
' 23 Nisan 2004
' Güncelleme: 31 Mart 2011

Dim b(9) As String, y(9) As String, m(4) As String, a As String
Dim v(15), c(3)
Dim pozitif As Byte, x As Byte
Dim s As String, e As String

b(0) = ""
b(1) = "Bir"
b(2) = "İki"
b(3) = "Üç"
b(4) = "Dört"
b(5) = "Beş"
b(6) = "Altı"
b(7) = "Yedi"
b(8) = "Sekiz"
b(9) = "Dokuz"

y(0) = ""
y(1) = "On"
y(2) = "Yirmi"
y(3) = "Otuz"
y(4) = "Kırk"
y(5) = "Elli"
y(6) = "Altmış"
y(7) = "Yetmiş"
y(8) = "Seksen"
y(9) = "Doksan"

m(0) = "Trilyon "
m(1) = "Milyar "
m(2) = "Milyon "
m(3) = "Bin "
m(4) = ""

a = Str(Int(sayi))
If Left$(a, 1) = " " Then pozitif = 1 Else pozitif = 0
a = Right$(a, Len(a) - 1)
For x = 1 To Len(a)
	If (Asc(Mid$(a, x, 1)) > Asc("9")) Or (Asc(Mid$(a, x, 1)) < Asc("0")) Then GoTo hata
Next x
If Len(a) > 15 Then GoTo hata
a = String(15 - Len(a), "0") + a
For x = 1 To 15
	v(x) = Val(Mid$(a, x, 1))
Next x
s = ""
For x = 0 To 4
	c(1) = v((x * 3) + 1)
	c(2) = v((x * 3) + 2)
	c(3) = v((x * 3) + 3)
	If c(1) = 0 Then
		e = ""
	ElseIf c(1) = 1 Then
		e = "Yüz"
	Else
		e = b(c(1)) + "Yüz"
	End If
e = e + y(c(2)) + b(c(3))
If e <> "" Then e = e + m(x)
If (x = 3) And (e = "BirBin ") Then e = "Bin"
s = s + e
Next x
If s = "" Then s = "Sıfır"
If pozitif = 0 Then s = "Eksi " + s
YAZIYLA = s
GoTo tamam
hata:
YAZIYLA = "Hata"
tamam:
End Function

25 Mayıs 2025 Pazar

AutoCAD 2 boyutlu çizim örnekleri - 41. Sınav sorusu

AutoCAD 2 boyutlu çizim örnekleri 41. Bu çizim bir sınav sorusu seviyesindedir. Çizim ve ölçülendirme yapıldı.
Kanalımı takip etmek için ABONE olun
Kanalımı desteklemek ve ayrıcalıklardan yararlanmak için kanalıma KATILın

Youtube kanalımdaki çizim videosu: