Ortaklarımız: Ant Mekanik , Teknova Shop , Taliasoft

AutoCAD Gunlugu

Üye Girişi

RSS

Autocad Günlüğü RSS besleyicisine üye ol.


Eyl 01
Pazartesi
AutoCAD, Download, Programlama
Ekranda 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:

CADLISP:
  1. ; <----------------------- SUMTXT  -------------------------->
  2. ; Seçilen tüm numerik DTEXT nesnelerini toplayarak
  3. ; İstenen yere yazdırır
  4. ; (c) 1994-2008 Talia Ltd.
  5. ; Erhan TOKER
  6. ; --------------------------------------------------------
  7. ;;; FN011
  8. ;;; August.2008
  9.  
  10. (defun C:SUMTXT ( / ss:txt ent:txt int:len i c)
  11.     (get_sys_vars)
  12.     (setq olderr *error* *error* tal_err)
  13.  
  14.   ; get text objects
  15.     (setq ss:txt (ssget '((0 . "TEXT"))))
  16.     (if (= ss:txt nil) (exit))
  17.  
  18.     (setq int:len (sslength ss:txt)
  19.             i 0
  20.             c 0
  21.             dbl:tot 0.0
  22.             )
  23.  
  24.     (while (<i int:len)
  25.  
  26.         (setq ent:txt (entget (ssname ss:txt i))
  27.                 str:txt (cdr (assoc 1 ent:txt))
  28.                 dbl:tot (+ dbl:tot (atof str:txt))
  29.                 )
  30.  
  31.         (setq i (1+ i))
  32.         )
  33.     (setq ss:txt nil)
  34.  
  35.     (command "_.TEXT")
  36.     (command pause)     ; insertion point
  37.     (command pause)     ; height
  38.     (command pause)     ; rotation angle
  39.     (command (rtos dbl:tot))
  40.     (command "")
  41.  
  42.     (setq *error* olderr)
  43.     (put_sys_vars)
  44.     (princ)
  45.     )   
  46.    
  47. ; UF001
  48. ; Hata ayıklama fonksiyonu
  49. (defun tal_err(*e)
  50.     (if (/= *e "tal")
  51.         (princ (strcat "\nHATA:" *e))
  52.         )
  53.     (setq *e nil)
  54.     (put_sys_vars)
  55.     (setq *error* olderr)
  56.     (princ)
  57.     )
  58.        
  59. ; UF002
  60. ; Sistem değişkenlerini sakla
  61. (defun get_sys_vars()
  62.     (setq   oldcmd  (getvar "CMDECHO")
  63.             oldos   (getvar "OSMODE")
  64.         )
  65.   (princ)
  66.   )
  67.    
  68. ; UF003
  69. ; Sistem değişkenlerini geri koy
  70. (defun put_sys_vars()
  71.     (setvar "OSMODE" oldos)
  72.     (setvar "CMDECHO" oldcmd)
  73.     (princ)
  74.   )

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.

Viewed 303 kere okunmus. Bu hafta: 5 Bu gun: 3 En son: 3 December 2008, 6:57

Post Tags: , ,

5 Yorum to “ Ekranda seçilen rakamların toplamını yazan AutoLISP uygulaması. ”
  1. Ç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.

  2. halil özçakır

    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 ))

  3. 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.

  4. halil özçakır

    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

  5. 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.


Yorum bırakın:



All content and source © 2008 Autocad Günlüğü | News Plus wordpress theme brought to you by Zidalgo.