Pazartesi
AutoCAD, Download, ProgramlamaEkranda seçilen rakamların toplamını yazan AutoLISP uygulaması.
Sevgili arkadaşlar,
Emrah adlı bir okurumuz bizden ekrandaki sayıları toplayıp altına yazan bir Autolisp uygulaması istemişti. Ancak vakit bulup yazabilidim.
İşte kod:
-
; <----------------------- SUMTXT -------------------------->
-
; Seçilen tüm numerik DTEXT nesnelerini toplayarak
-
; İstenen yere yazdırır
-
; (c) 1994-2008 Talia Ltd.
-
; Erhan TOKER
-
; --------------------------------------------------------
-
;;; FN011
-
;;; August.2008
-
-
(defun C:SUMTXT ( / ss:txt ent:txt int:len i c)
-
(get_sys_vars)
-
(setq olderr *error* *error* tal_err)
-
-
; get text objects
-
(setq ss:txt (ssget '((0 . "TEXT"))))
-
(if (= ss:txt nil) (exit))
-
-
(setq int:len (sslength ss:txt)
-
i 0
-
c 0
-
dbl:tot 0.0
-
)
-
-
(while (<i int:len)
-
-
(setq ent:txt (entget (ssname ss:txt i))
-
str:txt (cdr (assoc 1 ent:txt))
-
dbl:tot (+ dbl:tot (atof str:txt))
-
)
-
-
(setq i (1+ i))
-
)
-
(setq ss:txt nil)
-
-
(command "_.TEXT")
-
(command pause) ; insertion point
-
(command pause) ; height
-
(command pause) ; rotation angle
-
(command (rtos dbl:tot))
-
(command "")
-
-
(setq *error* olderr)
-
(put_sys_vars)
-
(princ)
-
)
-
-
; UF001
-
; Hata ayıklama fonksiyonu
-
(defun tal_err(*e)
-
(if (/= *e "tal")
-
(princ (strcat "\nHATA:" *e))
-
)
-
(setq *e nil)
-
(put_sys_vars)
-
(setq *error* olderr)
-
(princ)
-
)
-
-
; UF002
-
; Sistem değişkenlerini sakla
-
(defun get_sys_vars()
-
(setq oldcmd (getvar "CMDECHO")
-
oldos (getvar "OSMODE")
-
)
-
(princ)
-
)
-
-
; UF003
-
; Sistem değişkenlerini geri koy
-
(defun put_sys_vars()
-
(setvar "OSMODE" oldos)
-
(setvar "CMDECHO" oldcmd)
-
(princ)
-
)
Rakamları ister tek tek, ister çoğul seçim yöntemleriyle seçebilirsiniz. Uygulama sadece TEXT nesnelerini toplar.
![]() |
SUMTXT.LSP 779 bytes | |
| Ekranda seçilen sayıları toplayarak altına yazan uygulama. Erhan Toker | ||
| Added On | Eylül 2, 2008 and downloaded 247 times. | |
Post Tags: AutoCAD, Download, Programlama
Related Posts
Popular
- DOGRULT.LSP: Seçilen Çizgiyi En Yakın Dik Açıya Getirir
12/03/2008 10:14 am
3 Comments - 289 Adet elektrik sembolü Download köşemizde
12/02/2008 10:06 pm
5 Comments - Bilgisayar Tarihi 2
12/01/2008 05:58 pm
2 Comments - Gelecek Nesil Depolama Ortamı: SSD (Katı Halli Disk)
11/28/2008 07:51 pm
2 Comments - Kaynak Kodlarınızı Web Sayfanızda Fiyakalı Gösterin
11/27/2008 05:35 pm
1 Comment

Eyl 2, 2008
Yanıtla
Çok teşekkürler lisp için fakat rar sorunlu sanırım. Tekrar dosyayı koyabilir misiniz?
Birde bu programı autocad’e yükledikten sonra bu lisp’i nasıl çalıştıracağım?
Çok teşekkürler göstermiş olduğunuz ilgi için.
Eyl 15, 2008
Yanıtla
BU LİSP ÇALIŞMIYOR GALİBA SUMTXT YAZIP SEÇİYORUZ İSTER TEK RAKAM İSTER VİRGÜLLÜ YADA NOKTALI RAKAMLARI TOPLAMIYOR HATA VERİYOR.
HATA MESAJI ŞU: (Command: SUMTXT
Select objects: Specify opposite corner: 2 found
Select objects:
HATA:no function definition: <I ))
Eyl 16, 2008
Yanıtla
Sevgili Halil
Senin de yukarıda görebileceğin gibi, seçim işleminden sonra AutoLISP’in orijinal fonksiyonları dışında bir fonksiyon kullanmadık.
Benim fikrime göre AutoCAD yüklemende bir hata var. Ya da seçim setine uygun objeler girmiyor.
Eyl 20, 2008
Yanıtla
komutu çalıştırdım fakat ekteki hata meydana geldi resimlerini word olarak aşağıdaki linke ekledim bakabilirsiniz.
(kusurumuz varsa affedin, sadece öğrenmeye çalışıyoruz , bu link ve yorum yanlış öğrenmeye sevkedek ise silinebilir)
Download link:
http://rapidshare.com/files/146816570/Yeni_Microsoft_Word_Belgesi.doc
Eyl 22, 2008
Yanıtla
Merhaba Halil,
Senin rakamların ondalık ayracı ‘,’ olarak verilmiş. LISP programları ondalık ayracı ‘.’ olarak görmek ister. Bu sorunu aşmak için daha gelişmiş fonksiyonlar ve text yorumlayıcı kullanmak gerekir. Yazımızın amacı LISP öğretmek olduğundan detaylara girmiyoruz. Bu durumda ondalık ayracı ‘.’ olan sayılar ile çalışmanı öneririz.