31.08.2009 22:04    

yazgunesi
Komut ismi: 3g

Lisp hakkında ; kullanıcının ekrana tıkladığı yerde üçgen olarak yüzey işleme işareti çizmesini sağlayan autolisp programı. Üçgenin yüksekliği konusunda yazı yüksekliğini dikkate alır..
Üçgen kenar boyu = yazı yüksekliği
Eğer özel ebat vermek gerekirse mesala 15 mm diyelim ;

Kod:

(setq ucgknr (getvar "textsize" ))
satırını
Kod:

(setq ucgknr 15)
yapılması gerekiyor..

Kod:

; *****************************************
;
;   Yüzey işlem işareti  2009  v.1.0
;          Üçgen çizim lispi         
;
;   powered by yazgunesi
;   www.autocadokulu.com
;
;
; *****************************************

(defun *error* (msg)
   (princ "Hata oluştu !!! : ")
   (princ msg)
   (terpri)
)

(defun dtr (x)
  (* pi (/ x 180.0 ))
)
(princ)

; **********************************************************

(defun c:3g ()

       (setq oldsnap (getvar "osmode")) 
       (setq ucgx (getreal "\n Üçgen sayısı ne kadar ? :"))
       (setvar "osmode" 512)
       (setq yr1 (getpoint "\n Yerlestirme noktasi ? :"))
       (setvar "osmode" 0)
 
       (setq ucgknr (getvar "textsize" ))
       (setq sagaci (+ 90 (/ 60 2)))
       (setq solaci (- 90 (/ 60 2)))
       (setq 2ucgyatay (* ucgknr 1))
       (setq 3ucgyatay (* ucgknr 2))
       (setq 4ucgyatay (* ucgknr 3))
       (setq 5ucgyatay (* ucgknr 4))
     
       (setq yr2 (polar yr1 (dtr 180) (- 2ucgyatay) ))
       (setq yr3 (polar yr1 (dtr 180) (- 3ucgyatay) ))
       (setq yr4 (polar yr1 (dtr 180) (- 4ucgyatay) ))
       (setq yr5 (polar yr1 (dtr 180) (- 5ucgyatay) ))
       (setq yr5 (polar yr1 (dtr 180) (- 5ucgyatay) ))
         
       (setq uc1 (polar yr1 (dtr solaci) ucgknr ))
       (setq uc2 (polar yr1 (dtr sagaci) ucgknr))

       (setq uc3 (polar yr2 (dtr solaci) ucgknr))
       (setq uc4 (polar yr2 (dtr sagaci) ucgknr))

       (setq uc5 (polar yr3 (dtr solaci) ucgknr))
       (setq uc6 (polar yr3 (dtr sagaci) ucgknr))

       (setq uc7 (polar yr4 (dtr solaci) ucgknr))
       (setq uc8 (polar yr4 (dtr sagaci) ucgknr))

       (setq uc9 (polar yr5 (dtr solaci) ucgknr))
       (setq uc10 (polar yr5 (dtr sagaci) ucgknr))

     
  (if (= ucgx 1)
    (command "pline"  yr1 uc1 uc2 yr1 "" )
  )
     
  (if (= ucgx 2)
    (command "pline"  yr1 uc1 uc2 yr1 ""
             "pline"  yr2 uc3 uc4 yr2 "" )   
  )
 
  (if (= ucgx 3)
    (command "pline"  yr1 uc1 uc2 yr1 ""
             "pline"  yr2 uc3 uc4 yr2 ""
             "pline"  yr3 uc5 uc6 yr3 "" )
  )
 
  (if (= ucgx 4)
    (command "pline"  yr1 uc1 uc2 yr1 ""
             "pline"  yr2 uc3 uc4 yr2 ""
             "pline"  yr3 uc5 uc6 yr3 ""
             "pline"  yr4 uc7 uc8 yr4 "" )
  )

  (if (= ucgx 5)
    (command "pline"  yr1 uc1 uc2 yr1 ""
             "pline"  yr2 uc3 uc4 yr2 ""
             "pline"  yr3 uc5 uc6 yr3 ""
             "pline"  yr4 uc7 uc8 yr4 ""
             "pline"  yr5 uc9 uc10 yr5 "" )   
  )
(setvar "osmode" oldsnap)
  (princ)
)
       
(Princ "Lisp'i çalıştırmak için > 3g < yazınız !  >>> www.autocadokulu.com <<< ")     


Yukarıda gözüken autolisp programını nasıl kullanacağınızı bilmiyorsanız eğer aşağıdaki linkten;
AutoLISP > Konu Anlatımları > Lisp Dosyalarının oluşturulması ve Yüklenmesi
konusunu incelemenizi öneririm...

yazgunesi (31.08.2009 22:18 GMT)

> 1 <
Copyright © 2004-2022 SQL: 1.05 saniye - Sorgu: 44 - Ortalama: 0.02386 saniye