12.06.2012 11:00    

emasi
Semaun aleykum
Bir lispe ehtiyacım var
Çizimde çoklu sayda ştamp (pafta) var ve onları ardıcıl olarak numaralamak lazım.
Mesala;
çizimde 50 tane ştamp varsa sonuncu rakam 50 olacak ve numaralandırma şöyle görünecek 1 OF 50 , 2 OF 50.... 49 OF 50, 50 OF 50.
Numaralamak ardıcıllığını kendim belirledikden sonra kaç tane text-i seçdiyimi alqılayacak ve yukarıdakı gibi textlere yazılacak.
Uğurlar :)



12.06.2012 11:18    

Travaci
Kod:

;*******************************************************************************
;                                                                              ;
; ARD ARDA SIRALI ISIM YAZAR                                                   ;
;                                                                              ;
;*******************************************************************************
(defun c:yaz( / ilk_sayi ilk_ek son_ek yaz_yuk Yerlesim ara_ek son_yazi )
(setq ilk_sayi (GetString "\n Baslama sayisi: "))
(if (= ilk_sayi "") (setq ilk_sayi "1"))
(setq ilk_sayi (atoi ilk_sayi))
(setq ilk_ek   (GetString "\n ilk ek:" T))
(setq son_ek   (GetString "\n Son ek:" T))
(setq yaz_yuk  (GetReal   "\n Yazi yuksekligi:"))
(if (= yaz_yuk nil) (SETQ yaz_yuk (* 0.2 (GETVAR "DIMSCALE"))) )
(setq yaz_aci  (GetReal   "\n Yazi acisi     :"))
(if (= yaz_aci nil) (setq yaz_aci  0))
(setq Yerlesim (GetPoint  "\n Yerlesim noktasi"))
   (while (/= Yerlesim nil)
    (princ "\n") (princ yerlesim)
    (if (< ilk_sayi 10)
             (setq ara_ek (strcat "0" (itoa ilk_sayi)))
             (setq ara_ek             (itoa ilk_sayi))
           )
    (setq son_yazi (strcat ilk_ek ara_ek son_ek))
    (command "text" "mc" Yerlesim yaz_yuk yaz_aci son_yazi)
    ;(command "circle" Yerlesim (* 1.2 yaz_yuk) )
    (setq ilk_sayi (+ ilk_sayi 1))
    (setq Yerlesim (GetPoint "Yerlesim noktasi..1:"))
      (if (= Yerlesim nil)
            (progn
               (if (= yaz_aci  0) (setq yaz_aci 90) (setq yaz_aci 0))
               (setq Yerlesim (GetPoint "Yerlesim noktasi..2:"))
            )
      )
   )
)
;*******************************************************************************
(defun c:yaz2 ( / ilk_sayi ilk_ek son_ek yaz_yuk Yerlesim ara_ek son_yazi )
(setq ilk_sayi (GetString "\n Baslama sayisi: "))
(if (= ilk_sayi "") (setq ilk_sayi "1"))
(setq ilk_sayi (atoi ilk_sayi))
(setq ilk_ek   (GetString "\n Ön   ek:" T))
(setq son_ek   (GetString "\n Arka ek:" T))
(setq e (entsel "\n Yazi seç......."))
  (while (/= e nil)
   (setq eleman (entget (car e)))
   (setq Yerlesim (cdr (assoc 10 eleman)))
   (setq yaz_yuk  (cdr (assoc 40 eleman)))
   (setq yaz_aci  (cdr (assoc 50 eleman)))
    (setq son_yazi (strcat ilk_ek (rtos ilk_sayi 2 0) son_ek))
    (setq HGYUK1 (ASSOC 1 eleman))
    (setq eleman (SUBST (CONS 1 son_yazi) HGYUK1 eleman))
    (ENTMOD eleman)
    (setq ilk_sayi (+ ilk_sayi 1))
    (setq e (entsel "\n Yazi seç......."))))
;*******************************************************************************

12.06.2012 11:31    

emasi
Qaliba fikrimi tam izah ede bilmedim
1) Mövcut textleri kendim sıra ile seçdikden sonra yazılacak lisp onların sayını alqılayacak
2) Textlerin yazı yükseklikleri farklı (malum mövcutda ondan)
Bir video görüntüde de baksanız ne demek istediyimi anlarsınız http://www.boxca.com/iiat85tf94ve/capture_1.flv.html
Uğurlar :)

12.06.2012 18:08    

Travaci

12.06.2012 18:42    

emasi
Alıntı
Travaci :
Benim anladığım sizin istediğiniz 50 OF 50 ... bu kuralla pafta isimlerinizi sıralayarak isimlendirceksiniz, zahmet edip bakmadıysanız yukarıdaki lisp bu işe yarıyor, hayır ben yanlış anladıysam, videonuzu izleyebileceğim bir siteye upload edin, bilgisayarımda gerekli codec bulunmuyor vede yükleyemem.


Selamun aleykum
Sayın Travaci İlginiz için teşekkür ederim.
Videoda yazdığınız o kelimeye göre aydınlık getirmek mecburiyyetinde kaldım.
Ben zahmetkeş insanımdır sadece Yaz2 lispini görmemişim. Kalbinize deydimse hakkınızı helal edin
Sayqılar...

emasi (12.06.2012 19:04 GMT)

> 1 <
Copyright © 2004-2022 SQL: 0.905 saniye - Sorgu: 54 - Ortalama: 0.01676 saniye