Bu AutoLISP kodu, AutoCAD ortamında seçilen tüm çizgi (LINE) nesnelerinin her iki ucunu, kullanıcıdan alınan bir uzunluk kadar uzatır.
Komut çalıştırıldığında, kullanıcıdan uzatma miktarı istenir ve ardından çizgi nesneleri seçilmesi beklenir. Seçilen her bir çizginin başlangıç ve bitiş noktaları, çizginin doğrultusuna göre belirtilen mesafe kadar ileri ve geri kaydırılarak çizgi uzatılır.
Böylece, çok sayıda çizginin uçlarını hızlı ve pratik bir şekilde topluca uzatmak mümkün olur. Özellikle mimari ve teknik çizimlerde, çizgi boylarını topluca düzenlemek isteyen kullanıcılar için büyük kolaylık sağlar.
Nasıl yüklenir?
Nasıl çalıştırılır?
Lisp dosyasını yükledikten sonra; AutoCAD komut satırında;
- UZAT komutunu girin
- Uzatma miktarını girin. Negatif sayı kısaltma yapar.
- Uzatılacak çizgileri seçin. Çizgi dışındaki nesneler seçilmeyeceği için seçim kolaydır.
- Enter ile seçimi sonlandırın.
- Seçili çizgiler her iki uçtan uzatılacak ve yapılan işlem hakkında bilgi verilecektir.
Program kodu
; Çizgileri her iki uçtan uzatır. ; Uzatma miktarını kullanıcıdan alır. ; Negatif uzatma miktarı kısaltma yapar. ; İlk sürüm : 21/04/2025 ; Güncelleme: 03/05/2025 ; Mesut Akcan ; makcan@gmail.com ; mesutakcan.blogspot.com ; youtube.com/mesutakcan (setq ext 3) ; Varsayılan uzatma miktarı (defun c:UZAT ( / ang n line lc sp ep ss um) (initget 2) ; Sıfır değerine izin verme (if (setq um (getreal (strcat "\nUzatma miktarı <" (rtos ext) ">: "))) (setq ext um) ) (if (setq ss (ssget '((0 . "LINE")))) ; Sadece LINE nesnelerini seç (progn (setq lc (sslength ss) ; Seçim setindeki çizgi sayısı n 0 ; Döngü sayacı ) (repeat lc ; Seçim setindeki çizgi sayısı kadar döngü (setq line (ssname ss n) ; Döngüdeki çizgi sp (getpropertyvalue line "StartPoint") ; Başlangıç noktası ep (getpropertyvalue line "EndPoint") ; Bitiş noktası ang (angle sp ep) ; Çizgi açısı n (1+ n) ; Döngü sayacı ) ; Başlangıç noktasını ters yöne uzat (setpropertyvalue line "StartPoint" (polar sp (+ ang pi) ext)) ; Bitiş noktasını ileri doğru uzat (setpropertyvalue line "EndPoint" (polar ep ang ext)) );repeat (princ (strcat "\nToplam " (rtos lc) " çizgi her iki uçtan " (rtos ext) " birim uzatıldı.")) );progn (princ "\nÇizgi seçilmedi.") );if (princ) )
Hiç yorum yok:
Yorum Gönder