Bu dönüşüm işlemleri sayesinde sayılar, metinler, açılar, koordinatlar ve listeler arasında esnek geçişler sağlanabilir. Özellikle kullanıcıdan alınan verilerin işlenmesi, metin tabanlı bilgilerle sayısal verilerin entegre edilmesi veya geometriyle ilgili hesaplamalarda bu fonksiyonlar büyük kolaylık sağlar.
Dönüştürme fonksiyonlarını etkili kullanmak, yazılan kodun daha okunabilir, daha esnek ve daha güçlü olmasını sağlar.
Sayı, Metin ve Karakter Dönüşüm Fonksiyonları
- itoa : Tamsayı -> Metin
- atoi : Metin -> Tamsayı
- rtos : Reel sayı -> Metin
- float : Tamsayı -> Reelsayı
- fix : Reelsayı -> Tamsayı
- atof : Metin -> Reel sayı
- distof : Metin -> Reel sayı
- angtof : Açı -> Reel sayı
- angtos : Açı -> Metin
- ascii : Metin -> ASCII kodu
- chr : ASCII kodu --> Karakter
- cvunit : Birim dönüştür
- trans : Koordinat sistemi dönüştür
itoa : Tamsayı -> Metin
(itoa tamsayı)
Dönüş Değeri: Sayının metin karşılığı (string).
(itoa 123) ; "123" (123 sayısını metne çevirir) (itoa -45) ; "-45" (itoa 0) ; "0" (itoa (/ 10 5)) ; "2" (itoa (/ 10 3)) ; "3" (itoa (fix (/ 10 4))) ; "2" ; argüman veri türü hatalı örnekler: (itoa 3.1415) ; error: bad argument type: fixnump: 3.1415 (itoa "24") ; error: bad argument type: fixnump: "24" (itoa (/ 10 3.0)) ; error: bad argument type: fixnump: 3.33333
atoi : Metin -> Tamsayı
(atoi metin)metin : String olarak girilen argümandaki sayıyı tamsayıya(integer) dönüştürür. Metin sayı ile başlıyorsa sayı kısmını alır. Sayı ile başlamayan metinler 0 sonucunu verir.
(atoi "a") ; 0 (atoi " ") ; 0 (atoi "") ; 0 (atoi "Mesut") ; 0 (atoi "5 Elma") ; 5 (atoi "12A") ; 12 (atoi "A12") ; 0 (atoi "0") ; 0 (atoi "-1") ; -1 (atoi "12.45") ; 12 (atoi "12.455555") ; 12 (atoi "3.1415") ; 3 (atoi "3,1415") ; 3
rtos: Reel sayı -> Metin
(rtos sayı [mod [hassasiyet]])sayı : Dönüştürülecek tam(integer) veya reel(real) sayı.
Mod | Açıklama | Örnek |
---|---|---|
1 | Bilimsel (Scientific) | 1.23456E+02 |
2 | Ondalık (Decimal) | 123.456 |
3 | Mühendislik (Engineering) | 10'-3.456 |
4 | Mimari (Architectural) | 10'-3 7/16" |
5 | Kesirli (Fractional) | 123 1/2 |
(rtos 123.456 2) ; 123.456 (ondalık) (rtos 123.456 1 2) ; 1.23E+02 (bilimsel, 2 ondalık) (rtos 12.5 5) ; 12 1/2 (kesirli) (rtos 12.375 3) ; 1'-0.375\" Mühendislik (rtos 12.375 4) ; 1'-0 3/8\" Mimari (rtos 12.375 5) ; 12 3/8 (kesirli) (rtos 12.3757575) ; 12.3758 (varsayılan ondalıklı basamak) (rtos 0.455555) ; 0.4556 (varsayılan ondalıklı basamak) (rtos 0.455555 2 2) ; 0.46 (2 basamak ondalıklı) (rtos (/ 10 3)) ; 3 (rtos (/ 10 3.0)) ; 3.3333 (rtos 12.3757575 2 3) ; 12.376 (3 basamak ondalıklı) (rtos 12.3757575 2) ; 12.3758 (varsayılan ondalıklı basamak) (rtos 12.3757575 2 0) ; 12 (ondalıkları at) (rtos 123.4000 2 4) ; 123.4 (Sondaki sıfırlar atılır) (setq uzunluk 125.4558) (princ (strcat "Uzunluk: " (rtos uzunluk 2 2) " mm")) ; Uzunluk: 125.46 mm
float : Tamsayı -> Reelsayı
fix: Reelsayı -> Tamsayı
atof : Metin -> Reel sayı
(atof metin)metin : String olarak girilen argümandaki sayıyı reel sayıya(float) dönüştürür. Metin sayı ile başlıyorsa sayı kısmını alır. Sayı ile başlamayan metinler 0.0 sonucunu verir.
(atof "a") ; 0.0 (atof " ") ; 0.0 (atof "") ; 0.0 (atof "Mesut") ; 0.0 (atof "5 Elma") ; 5.0 (atof "23.5 mm") ; 23.5 (atof "12A") ; 12.0 (atof "A12") ; 0.0 (atof "0") ; 0.0 (atof "-1") ; -1.0 (atof "12.45") ; 12.45 (atof "12.455555") ; 12.4556 (atof "3.1415") ; 3.1415 (atof "3,1415") ; 3.0 (ondalık ayıracı nokta olmalı) (atof ".5") ; 0.5
distof : Metin -> Reel sayı
(distof metin [mod])metin : Reel sayıya dönüştürülecek metin.
Mod | Açıklama | Örnek |
---|---|---|
1 | Bilimsel (Scientific) | 1.23456E+02 |
2 | Ondalık (Decimal) | 123.456 |
3 | Mühendislik (Engineering) | 10'-3.456 |
4 | Mimari (Architectural) | 10'-3 7/16" |
5 | Kesirli (Fractional) | 123 1/2 |
(distof "2.36982E-02") ; 0.0236982 (distof "2.36986E+02" 1) ; 236.986 (distof "2.36986E+02" 2) ; 236.986 (distof "1/8") ; 0.125 (distof "4 3/4") ; 4.75 (distof "1'") ; 12.0 (1 feet = 12 inç) (distof "1'6\"") ; 18.0 (1 feet = 12 inç) (distof "2'3\"" 3) ; 27 (2 feet = 24 inç + 3 inç => 27) (distof "2' 1/2\"" 3) ; 24.5 (2 feet = 24 inç + 1/2(0.5) inç => 24.5) (distof "5'-8 1/2\"") ; 68.5 (5 feet + 8.5 inç) (distof "1' 5.25\"" 3) ; 17.25 (12 + 5.25) (distof "1' 5.25\"" 1) ; nil (distof "1' 5.25\"" 2) ; nil (distof "1' 5.25\"" 4) ; 17.25 (distof "1' 5.25\"" 5) ; nil (distof "2 1/8" 1) ; 2.125 (distof "2 1/8" 2) ; 2.125 (distof "2' 1/8" 3) ; 24.125 (distof "2 1/8" 4) ; 2.125 (distof "2 1/8" 5) ; 2.125
angtof : Açı -> Reel sayı
(angtof metin [mod])metin : Dönüştürülecek açı değeri (örnek: "45", "30d15'10\"")
Geçerli Modlar:
1 : Derece/dakika/saniye
4 : Topoğraf
(angtof "45") ; 0.785398 (45 derecenin radyan değeri) (angtof "45" 0) ; 0.785398 (45 girdisi derece) (angtof "45d") ; 0.785398 (45 girdisi derece) (angtof "45" 2) ; 0.706858 (45 girdisi Grad) (angtof "45g") ; 0.706858 (45 girdisi Grad) (angtof "45" 3) ; 1.0177 (45 girdisi radyan) (angtof "45r") ; 1.0177 (45 girdisi radyan) (angtof "45" 4) ; 0.785398 (45 girdisi topoğrafik) (angtof "90" 0) ; 1.5708 (90 derecenin radyan değeri) (angtof "100g" 2) ; 1.5708 (100 grad = 90° = 1.5708 rad) (angtof "200g" 2) ; 3.14159 (200 grad = 180° = pi) (angtof "0.75" 0) ; 0.01309 (0.75°nin radyan değeri) (angtof "0.75" 1) ; 0.01309 (0.75°nin radyan değeri) (angtof "0.75" 2) ; 0.011781 (0.75 grad'ın radyan değeri) (angtof "0.75" 3) ; 0.75 (0.75 radyanın radyan değeri) (angtof "0.75'") ; 0.000218166 (0.75 dakikanın radyan değeri) (angtof "1d") ; 0.0174533 (1°nin radyan değeri) (angtof "1'") ; 0.000290888 (1 dakikanın radyan değeri) (angtof "1\"") ; 4.84814e-06 (1 saniyenin radyan değeri) ; Metin içinde çift tırnak işareti \ ile yazılır. \" şeklinde. (angtof "180") ; 3.14159 (180° = pi) (angtof "30") ; 0.523599 (30 derecenin radyan değeri) (angtof "30d30'30\"" 1) ;0.532471 (30 derece 30 dakika 30 saniye) (angtof "30a") ; nil (geçersiz giriş) (angtof "") ; nil (geçersiz giriş) (angtof 30) ; error: bad argument type: stringp 30 (hata: argüman türü metin değil)
(angtos açı [mod [hassasiyet]])açı : Dönüştürülecek açı değeri. Tamsayı(Integer) veya reel(real) sayı.
1 : Derece/dakika/saniye
4 : Topoğraf
(angtos 0.785398 0) ; "45" (0.785398 radyan = 45°) (angtos pi) ; "180" (derece) (angtos pi 0) ; "180" (derece) (angtos pi 1) ; "180d0" (Derece dakika) (angtos pi 2) ; "200g" (pi = 200 grad) (angtos pi 3) ; "3.14r" (radyan) (angtos pi 3 4) ; "3.1416r" (radyan. ondalık 4 basamak) (angtos pi 4) ; "W" (180° = batı(west) yönü) (angtos (/ pi 2) 4) ; "N" (90° = kuzey(north) yönü) (angtos 1.75 0 4) ; "100.2676" (derece) (angtos 1.75 1 4) ; "100d16'3\"" (derece dakika saniye) (angtos 1.75 2 4) ; "111.4085g" (grad) (angtos 1.75 3 4) ; "1.75r" (radyan) (angtos 1.75 4 4) ; "N 10d16'3\" W" (topoğrafik) (angtos "45") ; error: bad argument type: numberp: "45"
ascii : Metin -> ASCII kodu
(ascii metin)metin : ASCII değeri alınacak karakter. Birden fazla karakter girilirse sadece ilk karakter dikkate alınır.
(ascii "") ; 0 (ascii " ") ; 32 (ascii "a") ; 97 (a harfinin ASCII kodu) (ascii "akcan") ; 97 (ascii "A") ; 65 (A harfinin ASCII kodu) (ascii "Ş") ; 222 (ascii "ü") ; 252 (ascii "€") ; 128 (ascii "0") ; 48 (ascii "9") ; 57 (ascii "911") ; 57 (ascii "\n") ; 10 (Yeni satır) (ascii "\t") ; 9 (Sekme - Tab) (ascii "\\") ; 92 (Ters bölü) (ascii "\"") ; 34 (Çift tırnak)
chr : ASCII kodu --> Karakter
chr fonksiyonu, bir ASCII kodunu karşılık gelen karaktere dönüştürür. ascii fonksiyonunun tersini yapar.
(chr tamsayı)
tamsayı: 0-255 aralığında bir ASCII kodu.
Dönüş Değeri: ASCII kodunun karşılığı karakter (Bir karakter)
AutoCAD 2021 ve sonrası sürümler için not: ascii fonksiyonuna bakınız.
Örnekler :
(chr 65) ; "A" (A harfi) (chr 97) ; "a" (a harfi) (chr 49) ; "1" (Rakam 1) (chr 32) ; " " (Boşluk karakteri) (chr 222) ; "Ş" (chr 10) ; "\n" (Yeni satır) (chr 9) ; "\t" (Sekme) (chr 34) ; "\"" (Çift tırnak) (chr 92) ; "\\" (Ters slash) (chr 176) ; "°" (Derece sembolü) (chr 169) ; "©" (Copyright işareti) (chr 233) ; "é" (é harfi)
cvunit : Birim dönüştür
(cvunit değer birimden birime)
(cvunit 1 "minute" "second") ; 60.0 (1 dakika = 60 saniye) (cvunit 1.0 "inch" "mm") ; 2.54 (1 inç = 25.4 mm) (cvunit 2 "ft" "in") ; 12.0 (1 feet = 24 inç) (cvunit 1.0 "inch" "kg") ; nil (uygun olmayan dönüşüm) (cvunit 2400 "g" "kg") ; 2.4 (2400 gram = 2.4 kg) (cvunit 100 "grad" "degree") ; 90.0 (grad -> derece) (cvunit 180 "degree" "radian") ; 3.14159 (derece -> radyan) (cvunit pi "radian" "degree") ; 180.0 (radyan -> derece) (cvunit 1 "kg" "lb") ; 2.20462 (kilogram -> pound) (cvunit 16 "oz" "lb") ; 1.0 (ons -> pound) (cvunit 1 "oz" "g") ; 28.3495 (ons -> g) (cvunit 1 "miles" "m") ; 1609.34 (mil -> metre) (cvunit 100 "Celsius" "Fahrenheit") ; 212.0 (°C -> °F) (cvunit 0 "Celsius" "Fahrenheit") ; 32.0 (°C -> °F) (cvunit 0 "Kelvin" "Celsius") ; -273.15 (Mutlak sıfır noktası) (cvunit '(5 2.5 1.25) "m" "cm") ; (500.0 250.0 125.0) liste ile metre -> cm dönüşümü
trans : Koordinat sistemi dönüştür
(trans nokta kaynak hedef [yer-değiştirme])nokta : Üç boyutlu bir nokta veya üç boyutlu bir yer-değiştirme (vektör) olarak yorumlanabilen üç reel sayının listesi. '(x y z)
Bu format, bir noktayı belirli bir nesnenin Nesne Koordinat Sistemi (OCS - Object Coordinate System) ile dünya koordinat sistemi (WCS) arasında dönüştürmenize olanak tanır.
(Bazı nesnelerde OCS, WCS ile aynıdır; bu nesneler için OCS ile WCS arasındaki dönüşüm etkisiz bir işlemdir, yani hiçbir değişiklik olmaz.)
Bir nesnenin OCS'sine dönüşüm yapmanın bir başka yöntemi de 3D ekstrüzyon vektörü kullanmaktır (üç reel sayıdan oluşan bir liste).
Ancak, OCS'si WCS ile aynı olan nesnelerde bu yöntem çalışmaz.
Kaynak | Doldurulan Z Değeri |
WCS | 0.0 |
UCS | Mevcut yükseklik (current elevation) |
OCS | 0.0 |
DCS | Mevcut inşa düzlemine (construction plane) yansıtılır. (UCS XY düzlemi + mevcut yükseklik) |
PSDCS | Mevcut inşa düzlemine (UCS XY düzlemi + mevcut yükseklik) yansıtılır |
Z
90
(trans '(100 200 0) 0 1) ; (200.0 -100.0 0.0) WCS->UCS (trans '(200 -100 0) 1 0) ; (100.0 200.0 0.0) UCS->WCS (command "CIRCLE" '(100 200) 15) ; UCS'de 100,200 noktasına yarıçapı 15 olan çember çizer (command "CIRCLE" (trans '(100 200) 0 1) 15) ; WCS'de 100,200 noktasına yarıçapı 15 olan çember çizer (command "CIRCLE" (trans '(200 -100 0) 1 0) 15) ; WCS'deki 200,-100 noktasının UCS'deki konumuna yarıçapı 15 olan çember çizerAşağıdaki örnek kullanıcı koordinat sistemi değişmedi ise seçili çember ile aynı merkeze yarıçapı 15 olan çember çizer.
Ancak UCS değiştirildi ise başka bir konuma çizer. Her iki durumda kodu çalıştırıp deneyiniz.
(setq cember (car (entsel "Çember seç :")) merkez (getpropertyvalue cember "Center") ;çemberin merkez koordinatı ) (command "CIRCLE" merkez 15) ; seçili çember merkezine çember çizHer iki durumda da çember merkezine çemberi çizmek için seçim ile elde edilen çember merkez koordinatı aşağıdaki örnekte olduğu gibi dönüştürülür.
(setq cember (car (entsel "Çember seç :")) ; merkez (getpropertyvalue cember "Center") ;çemberin merkez koordinatı ) (command "CIRCLE" (trans merkez 0 1) 15) ; seçili çember merkezine çember çiz
Hiç yorum yok:
Yorum Gönder