AutoCAD • AutoLISP • Programlama • Püfler • Komutlar • Terimler • Eğitim
aLd • TCad • FacadeCAD • Cephe Kot • HQ Library • FreeMUST • Pasdoc.A
27.03.2009 14:18    

yazgunesi
Komut ismi : sdciz

Not: DTR fonksiyon kodlarını kopyalamayı unutmuşum şimdi çalışıyor...

Aşağıda kodları gözüken lisp verilen ölçülere göre silindirin saç açılımını ve silindirin kendisini çizer.. Yan görünüş yerine saç açılımı çiziliyor.


Kod:

; **************************************
;         Silindir saç açınım lispi  2009
;    Büküm eksenine göre açınım yapma
;              ve 3 görünüş çizme...
;
;            yazgunesi02@gmail.com                   
;             www.autocadokulu.com
;
; **************************************

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

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

(defun c:sdciz (/ yr1 dcp et1 sb)

(setq oldsnap (getvar "OSMODE"))
(setvar "OSMODE" 0)

; kullanıcıdan bilgi alalım
 
(setq yr1 (getpoint "\n Yerlestirme noktasi :"))
(setq dcp (getreal "\n Silindir çapı ? :"))
(setq et1 (getreal "\n Et kalınlığı ? :"))
(setq sb  (getreal "\n Silindir boyu ? :"))
 
; ÅŸimdi ana deÄŸerleri hesaplayalım ( çaplar, açınım boyu ) 

(setq cp3 (* dcp 1))  ; dış çap deÄŸerini deÄŸiÅŸkene atadık
(setq cp2 (- cp3 et1)) ; büküm eks.hesabı yapıldı..
(setq cp1 (- cp2 et1))  ; iç çap hesabını yaptık
(setq acboy (* cp2 pi)) ; açınım boyunu hesapladık 

; görünüş kordinatları için denklem kuralım
; Neden ? ön , yan , üst görünüş çizilirken
; birbirine girmesin diye :-)

(setq yr2a1 (/ dcp 2))
(setq yr2a2 (/ acboy 2))
(setq yr2a3 (/ acboy 5))
       
(setq yr2yer (+ yr2a1 yr2a2 yr2a3 ))
(setq yr3yer (+ yr2a1 yr2a3 ))
       
; şimdi DTR hesabına geçelim...

(setq yr2 (polar yr1(dtr 180.0)(- yr2yer)))       
(setq yr3 (polar yr1(dtr 270.0)(+ yr3yer)))

; dtr ile kordinmat yerlerini tayin ettik               
; ÅŸimdi ön görünüş kordinatarını hesaplayalım           

(setq yr1ust (list(car yr1) (+ (cadr yr1) sb)))
; üst satırda ön görünüş yüksekliÄŸini hesapladık..     
(setq yr2ust (list(car yr2) (+ (cadr yr2) sb)))
; üst satırda açınım görünüşü enini (yükseklik) hesapladık..

; şimdi sıra ön görünüş kordinatlarında

(setq p1 (list(-(car yr1)(/ cp3 2))(cadr yr1)))   ; dış çap
(setq p2 (list(car p1)(cadr yr1ust)))                ; kordinatları
(setq p3 (list(+(car yr1)(/ cp3 2))(cadr yr1)))  ; hesaplandı
(setq p4 (list(car p3)(cadr p2)))

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

(setq p9  (list(-(car yr1)(/ cp2 2))(cadr yr1)))   ;  büküm
(setq p10 (list(car p9)(cadr yr1ust)))            ; ekseni
(setq p11 (list(+(car yr1)(/ cp2 2))(cadr yr1)))  ; kordinatları
(setq p12 (list(car p11)(cadr p10)))             ; hesaplandı

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

(setq p5 (list(-(car yr1)(/ cp1 2))(cadr yr1)))  ; iç çap
(setq p6 (list(car p5)(cadr yr1ust)))           ; kordinatları
(setq p7 (list(+(car yr1)(/ cp1 2))(cadr yr1))) ; hesaplandı
(setq p8 (list(car p7)(cadr p6)))

; ****************************************************
   
; şimdi sıra açınım çiziminin kordinat noktaları hesabında...

(setq p13 (list(-(car yr2)(/ acboy 2))(cadr yr2)))   
(setq p14 (list(car p13)(cadr yr2ust)))           
(setq p15 (list(+(car yr2)(/ acboy 2))(cadr yr2)))
(setq p16 (list(car p15)(cadr p14)))           
; ****************************************************

; şimdi sıra üst görünüş eksen çizilerinde...

(setq eks1 (list(car yr3)(-(cadr yr3) (/ cp3 2))))
(setq eks2 (list(car yr3)(+(cadr yr3) (/ cp3 2))))
(setq eks3 (list(+(car yr3)(/ cp3 2))(cadr yr3)))
(setq eks4 (list(-(car yr3)(/ cp3 2))(cadr yr3)))
; ***********************************************************
 
;  ÅŸimdi sıra ön görünüşün çizdirilmesinde...

   (command  "color" "7" ""                 ; ön görünüşteki
             "._line" p1 p2 p4 p3 p1 ""   )  ; görünen çizgiler çizildi         
             
   (command  "._line" p5 p6 ""   ; iç çap çizgilerini çiziyoruz..
     "change" "l" "" "p" "lt" "hidden" "c" "2" "" )
   (command  "._line" p7 p8 ""   ; iç çap çizgilerini çiziyoruz..
     "change" "l" "" "p" "lt" "hidden" "c" "2" ""
       )  ; ön görünüş yerinde görünmez çizgi çizdik...

   (command  "._line" yr1 yr1ust ""  ; silinidir orta eksen çizgisini çizdik...
     "change" "l" "" "p" "lt" "center" "c" "3" "")

   (command  "._line" p9 p10 ""  ; büküm ekseni çizgisini çizdik...
     "change" "l" "" "p" "lt" "center" "c" "4" "")
     
   (command  "._line" p11 p12 ""  ; büküm ekseni çizgisini çizdik...
     "change" "l" "" "p" "lt" "center" "c" "4" ""
       )  ; ön görünüş büküm ekseni çizgilerini çizdik..
 
;  ÅŸimdi açınımı çizelim..
 
   (command  "color" "7" ""
             "._line" p13 p14 p16 p15 p13 ""
; sıra üst görünüş çiziminde..           
              "circle" yr3 "d" cp3 "" ; dış çapı çizdirdik..
              "circle" yr3 "d" cp1 ""  ) ; iç çapı çizdirdik..

   (command  "circle" yr3 "d" cp2 "" ; büküm eksen çapını çizdirdik..
     "change" "l" "" "p" "lt" "center" "c" "4" ""      )


  ;  ÅŸimdi üst görünüşün eksen çizgilerini çizelim..
 
   (command  "line" eks1 eks2 ""
     "change" "l" "" "p" "lt" "center" "c" "3" ""
     "line" eks3 eks4 ""
     "change" "l" "" "p" "lt" "center" "c" "3" ""
           )
(setvar "OSMODE" oldsnap) 
(princ)
) ; program bittmiÅŸtir.

(Princ "Lisp'i çalıştırmak için > sdciz < 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 (10.04.2009 22:22 GMT)

20.09.2010 07:10    

hlabut
teşekkürler ellerinize sağlık ....

20.09.2010 11:49    

bud_0782
emeğinize sağlık

> 1 <
Copyright © 2004-2022 SQL: 0.848 saniye - Sorgu: 48 - Ortalama: 0.01767 saniye