Eksen çiz AutoLISP uygulaması ile AutoCAD programında seçilen çember veya yaylara dikey ve yatay eksenler çizilerek işlemleri hızlandırır.
Eksen çiz Autolisp uygulaması dosyası, kurulum ve kullanım hakkında detaylı bilgi için:
Eksen çiz AutoLISP uygulaması ile AutoCAD programında seçilen çember veya yaylara dikey ve yatay eksenler çizilerek işlemleri hızlandırır.
Eksen çiz Autolisp uygulaması dosyası, kurulum ve kullanım hakkında detaylı bilgi için:
Sanal makinelerin en büyük avantajı, fiziksel donanımda değişiklik yapmadan birden fazla işletim sistemi kullanabilme yeteneğidir. Örneğin, Windows işletim sistemine sahip bir kullanıcı, sanal bir makine aracılığıyla Linux çalıştırabilir veya tam tersi.
VirtualBox, Oracle tarafından geliştirilen açık kaynaklı bir sanallaştırma yazılımıdır. Windows, Linux, macOS gibi farklı platformlar üzerinde çalıştırılabilen VirtualBox, kullanıcıların bir ana işletim sistemi üzerinde bir veya daha fazla sanal işletim sistemi kurup çalıştırmasına olanak tanır. VirtualBox, kullanıcı dostu arayüzü ve geniş platform desteği ile en popüler sanal makine yazılımlarından biridir.
VirtualBox, ücretsiz ve açık kaynaklı bir çözüm sunarak kullanıcıların farklı işletim sistemlerini sanal makineler üzerinden kullanmasını kolaylaştıran güçlü bir araçtır. Özellikle, yazılım geliştirme ve test işlemleri için yaygın olarak tercih edilmektedir.
; Çizim dosyasındaki bloklari blok adlarıyla ayrı dosyalara kaydeder
; Mesut Akcan
; 09/08/2024
; makcan@gmail.com
; https://mesutakcan.blogspot.com
(vl-load-com)
(defun c:BLOKKAYDET (/ blokadi bloksayisi dosyaadi kbs klasor uzanti)
(setvar 'cmdecho 0)
(setq
klasor "C:\\BLOKLAR" ; Blokların kaydedileceği klasör
;Dosya uzantısı
uzanti ".dxf" ; DWG uzantılı kayıt için alttaki satırı kullanın
;uzanti ".dwg"
blokSayisi 0 ; Blok sayısı
kbs 0 ; Kaydedilen blok sayısı
)
; Klasörün mevcut olup olmadığını kontrol et
(if (not (vl-file-directory-p klasor))
; Klasör yoksa çık
(progn (alert (strcat klasor " klasörü bulunamadı!"))(exit))
)
; Model alanındaki her varlık için döngü
(vlax-for ent (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))
; Eğer varlık bir blok referansı ise,
(if (eq (strcase (vla-get-ObjectName ent)) "ACDBBLOCKREFERENCE")
(progn
; Blok sayısını bir artır
(setq blokSayisi (1+ blokSayisi))
; Blok adını al ve blokAdi değişkenine ata
(setq blokAdi (vla-get-EffectiveName ent))
; Blok dosya yolunu ve adını oluştur ve dosyaAdi değişkenine ata
(setq dosyaAdi (strcat klasor "\\" blokAdi uzanti))
; Eğer dosya mevcut değilse,
(if (not (findfile dosyaAdi))
(progn
; Bloğu belirlenen dosya adı ile kaydet
(if (= uzanti ".dxf")
(command "_.WBLOCK" dosyaAdi "" blokAdi)
(command "_.WBLOCK" dosyaAdi blokAdi)
)
(setq kbs (1+ kbs)) ; Kaydedilen blok sayısını bir artır
)
)
)
)
)
; Sonuç mesajını yazdır
(alert
(strcat "Çizimdeki " (itoa blokSayisi) " adet bloktan "
(itoa kbs) " adedi " klasor
" klasörüne ayrı dosyalar halinde kaydedildi."
)
)
(setvar 'cmdecho 1)
(princ)
)
Mantıksal hataların yaygın örnekleri arasında mantıksal karşılaştırma ifadeleri, döngülerin hatalı kullanımı ve değişkenlerin yanlış değerlerle işlenmesi bulunur.
Örneğin, bir döngünün yanlış bir koşulla çalıştırılması, döngünün beklenenden daha fazla veya daha az çalışmasına neden olabilir. Bu tür hatalar, programın belirli durumlarda yanlış sonuçlar üretmesine, hiç çalışmamasına, kilitlenmesine veya sonsuz döngü üretmesine neden olabilir. Ayrıca, değişkenlerin yanlış şekilde güncellenmesi veya kullanılması, hesaplamaların yanlış sonuçlar vermesine yol açar.

AutoCAD kullanıcıları çizimlerde nesnelerin uzunluğunu sıklıkla hesaplama durumunda kalır. Bu işlemi manuel olarak yapmak zaman alıcı ve hata yapmaya açık olabilir. Neyse ki, AutoLISP programlama dili ile bu sürec otomatikleştirilebilir.
Aşağıdaki AutoLisp kodları, AutoCAD'de bir nesnenin uzunluğunu hesaplayıp ve sonucu bir metin nesnesi olarak çizimim üzerine ekler.
Bu kod parçacığı, kullanıcının seçtiği geçerli bir nesnenin uzunluğunu hesaplar ve bu uzunluğu bir metin nesnesi olarak çizime ekler.
; Nesne uzuluğu, nesne üzerinde bir konuma eklenir
; Seçilebilecek geçerli nesneler:
; LINE, POLYLINE, LWPOLYLINE, ARC, CIRCLE, ELLIPSE, SPLINE
; AutoCAD komut satırından UY ya da UZUNLUKYAZ
; girilerek çalıştırılır.
; Düzenleme: Mesut Akcan
; makcan@gmail.com
; mesutakcan.blogspot.com
; 14/07/2023
(vl-load-com)
(defun c:UY()
(c:UZUNLUKYAZ)
)
(defun c:UZUNLUKYAZ( / aci bpt cb2 cercevegenisligi
cerceveyuksekligi cpt ent gr mpt
pib2 pt1 pt2 pt3 pt4 spt tpt
uzunluk yazicerceve)
(if (and
; Kullanıcıdan nesne seçimi alınır ve ent değişkenine atanır
; Nesne seçiliyse
(setq ent (car (entsel "\nUzunluğu alınacak nesne: ")))
; VE
; seçili nesne
; LINE, POLYLINE, LWPOLYLINE, ARC,
; CIRCLE, ELLIPSE, SPLINE ise
(member (cdr (assoc 0 (entget ent)))
'("LINE" "POLYLINE" "LWPOLYLINE"
"ARC" "CIRCLE" "ELLIPSE" "SPLINE"))
)
(progn
(setq
; Seçilen nesnenin uzunluğu hesaplanır ve uzunluk değişkenine atanır
uzunluk (rtos (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)))
; Metin nesnesini ölçer ve metni çevreleyen çerçevenin köşegen koordinatlarını
; yaziCerceve değişkenine atanır
yaziCerceve (textbox (list (cons 1 uzunluk) (cons 40 (getvar "TEXTSIZE"))))
; Yazı çerçevesi yüksekliği hesaplanır ve cerceveYuksekligi değişkenine atanır
cerceveYuksekligi (- (cadadr yaziCerceve) (cadar yaziCerceve))
; Yazı çerçevesi genişliği hesaplanır ve cerceveGenisligi değişkenine atanır
cerceveGenisligi (- (caadr yaziCerceve) (caar yaziCerceve))
)
(princ "\nYazı konumu")
; Kullanıcıdan nokta seçimi istenir
(while (eq 5 (car (setq gr (grread t 5 0))))
(redraw)
; Seçilen noktanın bir liste olduğu kontrol edilir. Eğer nokta ise
(if (listp (setq sPt (cadr gr)))
(progn
(setq
; Seçilen noktaya en yakın nokta
cPt (vlax-curve-getClosestPointto ent sPt)
; İki nokta arasındaki açı
aci (angle cPt sPt)
; Başlangıç noktası
bPt (polar cPt aci (/ (getvar "TEXTSIZE") 2.))
; Bitiş noktası
tPt (polar bPt aci cerceveYuksekligi)
; Orta nokta
mPt (polar bPt aci (/ cerceveYuksekligi 2.))
pib2 (/ pi 2.) ; pi/2
cb2 (/ cerceveGenisligi 2.) ; cerceveGenisligi/2
; Köşe noktaları
pt1 (polar bPt (+ aci pib2) cb2)
pt2 (polar bPt (- aci pib2) cb2)
pt3 (polar tPt (+ aci pib2) cb2)
pt4 (polar tPt (- aci pib2) cb2)
)
; İşaretleyici vektörler çizilir
(grvecs (list -3 pt1 pt2 pt3 pt4 pt1 pt3 pt2 pt4))
)
)
)
(if (eq 3 (car gr)) ; Konum belirlendiyse. Fare ile tıklama
(progn
; açı= açı - 90°
(setq aci (- aci (/ pi 2.)))
(cond
; açı 90 - 180 arası ise açı = açı - 180°
((and (> aci (/ pi 2.)) (<= aci pi)) (setq aci (- aci pi)))
; açı 180 - 270 arası ise açı = açı + 180°
((and (> aci pi) (<= aci (* 1.5 pi))) (setq aci (+ aci pi)))
)
; Yazı oluşturulur ve çizime eklenir
(YaziYaz mPt uzunluk aci)
)
)
)
; Geçersiz bir nesne seçildiyse
(princ "\nGeçersiz nesne seçildi !")
)
(redraw) ; Çizimi yenile
(princ)
)
(defun YaziYaz (konum yaziMetni yaziAcisi)
(entmake
(list
(cons 0 "TEXT") ; Nesne türü (Text)
(cons 8 (getvar "CLAYER")) ; Katman adı
(cons 62 2) ; Renk indeksi. 2=Sarı renk
(cons 10 konum) ; Yazı konumu (nokta)
(cons 40 (getvar "TEXTSIZE")) ; Yazı boyutu
(cons 1 yaziMetni) ; Yazı içeriği
(cons 50 yaziAcisi) ; Yazı döndürme açısı
(cons 7 (getvar "TEXTSTYLE")) ; Yazı stili
(cons 71 0) ; 71: İç hizalama (0: Sol)
(cons 72 1) ; 72: Dış hizalama (1: Alt)
(cons 73 2) ; 73: Hizalama tipi (2: Ortala)
(cons 11 konum) ; 11: İkinci nokta (hizalama için kullanılır)
)
)
)
Kodları kopyalayıp uzunlukyaz.lsp adında metin dosyasına ekleyip kaydediniz.
Program kodlarının doğru göründüğü ancak çalıştırılması sırasında karşılaşılan hatalardır. Programcının ele almadığı bir takım aykırı durumlar ortaya çıktığında programın işletim sistemi tarafından kesilmesi ile ortaya çıkar. Bu tip hatalarda hata mesajı çoğunlukla çalışan işletim sisteminin dili ile verilir. Eğer bu tip hataları kullanıcı ele almışsa, program programcının vereceği mesajlarla ve uygun şekilde sonlandırılabilir. Bu tip hataların nerelerde ve hangi şartlarda ortaya çıkabileceğini bazen kestirmek zor olabilir.
Bazı yaygın çalışma zamanı hataları şunlardır:
DEFINT A-Z DIM personel(40200)Bu kodlar çalıştırıldığında Overflow (taşma) hatası oluşturacaktır.
Programlamada hata nedir?
Programlama sürecinde, yazılan kodların beklenen şekilde çalışmamasına hata denir. Bu hatalar, programın istenmeyen şekilde sonlanması, duraklaması, sonsuz döngüye girmesi, yanlış bir işlem yapması veya yanlış sonuçlar üretmesi gibi istenmeyen durumlarla kendini gösterebilir. Bu hatalar genellikle programlama dilinin doğru bir şekilde kullanılmamasından kaynaklanır ve programcıların kodlarını test etmeleri ve hataları düzeltmeleri gereklidir.
Yazılım geliştirme sürecinde, programcılar tarafından yapılan hatalara genellikle bug(böcek) denir ve bu hatalar, programın beklenen şekilde çalışmamasına neden olabilir. Bu nedenle, programcıların hataları tespit edip düzeltmeleri önemlidir. Bu sürece genellikle hata ayıklama(debugging) adı verilir. Hata ayıklama, programcıların kodlarını inceleyerek hataları tespit etmelerini ve düzeltmelerini sağlar. Bu süreç, yazılımın daha sağlam ve güvenilir hale gelmesine yardımcı olur.
Yazılım hatalarına bug(böcek) denmesinin ilginç bir hikayesi var. İlk bilgisayarlar çok büyük ve karmaşıktı. İçlerinde insanların dahi gezinebileceği kadar genişti ve devre elemanları birbirine kablolarla bağlıydı.
Bu nedenle, bir hata oluştuğunda, mühendisler tüm kablo bağlantılarını kontrol etmek için bilgisayarın içine girerek hatayı tespit etmeye çalışıyorlardı. Bir seferinde, bir hata nedeniyle bilgisayar çalışmadığında, mühendisler bağlantıları kontrol ederken bir böcek fark ettiler.
Böceğin, bilgisayarın içinde oluşturduğu bir kısa devre, hatalı çalışmaya neden oluyordu. Mühendisler böceği temizledi ve hatayı giderdi. O günden beri, yazılım hatalarına bug denmesi yaygınlaştı.
AutoCAD ile izometrik perspektif çizme ve ölçülendirme için örnek çizim
ISOTOOLS v1.0.220807
Mesut Akcan
07/08/2022
Program çalışma süresi; programın başlaması ile bitişi arasında geçen
süredir.
Program kodlarının hantal kullanımı, değişkenlerin gereksiz veya yanlış kullanımı aynı işi yapan uzun algoritma seçilmesi program çalışma süresinin artmasına neden olur.
Bu durum küçük programlar için önemsenmeyebilir ancak büyük veri işleyen büyük programlar için programın iş yapma süresi önemli konudur. O yüzden programlamaya başladığınızda hızlı çalışan kodlama tekniklerini öğrenmek ve kullanmak ilerisi için iyi bir alışkanlık olacaktır.
QuickBasic program kodlarının çalışma süresini hesaplamak isterseniz aşağıdaki örnekten faydalanabilirsiniz.
Kodlar derlenip exe dosyaya dönüştürüldüğünde daha hızlı çalışacaktır.


exiftool [*OPTIONS*] [-*TAG*...] [--*TAG*...] *FILE*... exiftool [*OPTIONS*] -*TAG*[+-<]=[*VALUE*]... *FILE*... exiftool [*OPTIONS*] -tagsFromFile *SRCFILE* [-*SRCTAG*[>*DSTTAG*]...] *FILE*...Ayrıntılı bilgi exiftool yazıp entere basılarak alınabilir ya da web sitesine bakılabilir.
exiftool "-filename<${datetimeoriginal}" -d "%Y-%m-%d %H-%M-%S_%%f.%%e" c:\resimler\*.jpg
