27.06.2011 16:01    

ProhibiT
Kod:

;;; Belirlenen sayıdan başlayarak, belirlenen son sayıya kadar
;;; Ardışık Sayılar, Tek Sayılar veya Çift Sayılar, Belirlenen Aralık
;;; düzeninde yazılır.
(write-line "\nwww.autocadokulu.com - Hazırlayan M. Sahin Güvercin")
(defun C:Say (/ yy sm bsy ssy fpt spt vectr bk icr)
  (setvar "cmdecho" 0) (command "undo" "group")
  (setvar "modemacro" "Prepared by:M. Şahin Güvercin")
  (if (= eyy nil) (setq eyy (* (getvar "dimtxt") (getvar "dimscale"))))
  (setq yy (getreal (strcat "\nYazi Yüksekligi <" (rtos eyy) ">: ")))
  (if (not yy) (setq yy eyy))
  (initget 1 "A T C")
  (setq sm  (getkword "\nSayma Şekli [A=Ardışık-T=Tek-C=Çift]: ")
        bsy (getint "\n     Başlangic Sayisi: ")
        ssy (getint "\n         Bitiş Sayisi: ")
        fpt (getpoint "\n   İlk Numaranın Yeri: ")
        spt (getpoint fpt "\nİkinci numaranın yeri: ")
        fpt (mapcar '(lambda (p1 p2) (- p1 p2)) fpt
                (setq vectr (mapcar '(lambda (p1 p2) (- p2 p1)) fpt spt))))
  (if (= (* (fix (/ bsy 2.0)) 2) bsy) (setq bk "C") (setq bk "T"))
  (if (or (and (= sm "T") (= bk "C")) (and (= sm "C") (= bk "T"))) (setq bsy (1+ bsy)))
  (if (= sm "A") (setq bsy (1- bsy) icr 1) (setq bsy (- bsy 2) icr 2))
  (while (<= (setq bsy (+ bsy icr)) ssy)
    (setq fpt (mapcar '(lambda (p1 p2) (+ p1 p2)) fpt vectr))
    (entmake (list (cons 0 "TEXT") (cons 10 fpt) (cons 40 yy) (cons 1 (itoa bsy))
                   (cons 50 0) (cons 11 (list 0.0 0.0 0.0)) (cons 73 0))))
  (setq eyy yy) (setvar "modemacro" "") (command "undo" "e") (prin1)
)

Arkadaşlarımızın özel mesaj yazarak istedikleri bir fonksyion yazdım. belki birilerinin daha işine yarar düşüncesiyle paylaşmak istedim.

fonksiyon verdiğiniz başlangıç sayısında başlayarak, gene sizin verdiğiniz bir son sayıya kadar, ardışık olarak, yalnızca tek sayılarla veya yalnızca çift sayılarla işlem yapar. sıralı sayıların aralarındaki konum ilişkisi, birinci ve ikinci text yeri seçilerek belirlenir. yani sıra sayılarının yönünü istediğiniz gibi, yatay, düşey veya açılı yapma, ara mesafeleri seçme şansımız var. alt ve üst sınır sayılarımız, seçilen sayı serisine uygun değilse, (mesela çift sayılarla sayma yapacağız, ama başlangıç sayımız tek) başlangıç ve son sayılar sınır olarak alnır işlem bu sınırlar içinde yapılır.

kolay gelsin.

ProhibiT (29.06.2011 15:25 GMT)

28.06.2011 05:00    

bud_0782
Hocam emeğinize sağlık

28.06.2011 07:38    

SUNAZ
Tesekkurler elinize saglik.Cok isimize yarayacak.

30.06.2011 19:49    

ProhibiT
Kod:

;;; ---------------------------------------------------------------------------------|
;;; |    Belirlenen sayıdan başlayarak, belirlenen son sayıya kadar                  |
;;; |    Ardışık Sayılar, Tek Sayılar veya Çift Sayılar, belirlenen Aralık           |
;;; |    düzeninde, seçilen Text Style kullanılarak, belirlenen hizalama seçeneği    |
;;; |    ve belirlenen açıda yazılır.                                                |
;;; ----------------------------------------------------------------------------------
(write-line "\nwww.autocadokulu.com - Hazırlayan M. Sahin Güvercin")
(defun C:Say (/ tsl ts0 tst tjt txa yy sm bsy ssy fpt spt vectr bk icr)
  (setvar "cmdecho" 0) (command "undo" "group")
  (setvar "modemacro" "Prepared by:M. Şahin Güvercin")
  (if (= eyy nil) (setq eyy (* (getvar "dimtxt") (getvar "dimscale"))))
  (setq tsl "" tsl (strcat tsl (cdr (assoc 2 (tblnext "style" T))) "/"))
  (while (setq ts0 (tblnext "style")) (setq tsl (strcat tsl (cdr (assoc 2 ts0)))))
  (setq tst (getstring (strcat "\Text Style adı [" tsl "]: ")))
  (if (not (tblsearch "style" tst))
    (progn (princ "\Girdiğiniz Text Style adı bulunamadı!") (exit)))
  (initget 1 "Left Right Center Middle")
  (setq tjt (getkword "\Text hizalama şekli [Left/Right/Center/Middle]: ")
        txa (/ (* (getreal "\Yazı açısı: ") pi) 180))
  (cond ((= tjt "Left") (setq tjt 0)) ((= tjt "Center") (setq tjt 1))
        ((= tjt "Right") (setq tjt 2)) ((= tjt "Middle") (setq tjt 4)))
  (setq yy (getreal (strcat "\n Yazi Yüksekligi <" (rtos eyy) ">: ")))
  (if (not yy) (setq yy eyy))
  (initget 1 "A T C")
  (setq sm  (getkword "\n Sayma Şekli [A=Ardışık-T=Tek-C=Çift]: ")
        bsy (getint "\n Başlangic Sayisi: ")
        ssy (getint "\n Bitiş Sayisi: ")
        fpt (getpoint "\n İlk Numaranın Yeri: ")
        spt (getpoint fpt "\n İkinci numaranın yeri: ")
        fpt (mapcar '(lambda (p1 p2) (- p1 p2)) fpt
                (setq vectr (mapcar '(lambda (p1 p2) (- p2 p1)) fpt spt))))
  (if (= (* (fix (/ bsy 2.0)) 2) bsy) (setq bk "C") (setq bk "T"))
  (if (or (and (= sm "T") (= bk "C")) (and (= sm "C") (= bk "T"))) (setq bsy (1+ bsy)))
  (if (= sm "A") (setq bsy (1- bsy) icr 1) (setq bsy (- bsy 2) icr 2))
  (while (<= (setq bsy (+ bsy icr)) ssy)
    (setq fpt (mapcar '(lambda (p1 p2) (+ p1 p2)) fpt vectr))
    (entmake (list (cons 0 "TEXT") (cons 7 tst) (cons 10 fpt) (cons 40 yy)
                   (cons 1 (itoa bsy)) (cons 50 txa) (cons 11 fpt) (cons 72 tjt)
                   (cons 73 0))))
  (setq eyy yy) (setvar "modemacro" "") (command "undo" "e") (prin1)
)

ProhibiT (01.07.2011 10:14 GMT)

01.07.2011 05:55    

SUNAZ
Hocam elinize,emeğinize sağlık.Tesekkurler.

> 1 <
Copyright © 2004-2022 SQL: 0.848 saniye - Sorgu: 58 - Ortalama: 0.01462 saniye