30.06.2009 09:44    

yazgunesi
Komut ismi: moddis

Lisp hakkında ; kullanıcının verdiği ölçülere göre modül dişli çizimi yapan autolisp programı.

Önemli Not: Hatırlayacağınız üzere geçmiş zamanda sitemizde server değişikliği konusunda problem vardı. Orjinal modül dişli çizim lispi kayboldu.. Şimdi bu autolisp programı bulunup yenilendi.

Eski autolisp programı :

Kod:

;                                               
;   Modül Dişli Çizim Lispi  v.1.0               
;                                               
;       powered by yazgunesi                   
;       www.autocadokulu.com                     
;                                               
;     Lisp özellikleri :                         
;                                               
;   1 adet modül dişli için                     
;                                               
;  Diş üstü çapı'nın çizimi                     
;  Bölüm dairesi'nin çizimi  (taksimat dairersi)
;  Dişli eksenler'inin çizimi                   
                                       
(defun disligirdi ()       ; ilk önce modül dişli için gerekli değerleri alalım                         
(setq P1 (getpoint "\n Yerleşim yeri için TIKLA !: "))   ; P1 = yerleşim yeri tayini       
        (setq mod1 (getreal "\n Modül nedir?: "))                  ; mod1 = modül değeri değişkeni   
(setq dis1 (getreal "\n Diş sayısı nedir?: "))             ; dis1 = diş sayısı değişkeni
  )

(defun diameterhesap ()  ; dişli dış çap ve böl.dairesi hesabı               
                                  ; diş üstü çapı hesabı başlangıç           
         (setq ds1 (+ dis1 2))    ; dis üstü çapı (diş sayısı + 2)           
         (setq ds2 (* mod1 ds1))  ; diş üstü çapı (modül x (diş sayısı + 2))
         (setq ds2a (/ ds2 2))    ; diş üstü çapı 2 kat fazla çıktığı için 2 ye bölelim !
                                  ; diş üstü eksen hesabı son               
         (setq ds3 (* mod1 dis1)) ; bölüm dairesi çapı hesabı başlangıç     
         (setq ds4 (/ ds3 2))     ; bölüm diresi 2 kat fala çıktığı için 2 ye bölelim !
  )

(defun dislicizimi ()   ; dişli çizimini sağlayan ana komut     
        (command "circle" P1 ds2a) ; dişli dış çap çizimi       
        (command "circle" P1 ds4)  ; dişli böl.dairesi çizimi (taksimat dairesi)
  )

(defun ekscizgisihesap ()    ; eksen çizgisinin hesabı komutu       
(setq p3 (list (car P1) (- (cadr p1) ds2a)))  ; P1=yerleşim yeri  ds2a= diş üstü çapı   
(setq p4 (list (car P1) (+ (cadr p1) ds2a)))  ; P1=yerleşim yeri  ds2a= diş üstü çapı   
(setq p5 (list (+ (car P1) ds2a) (cadr P1)))  ; P1=yerleşim yeri  ds2a= diş üstü çapı   
(setq p6 (list (- (car P1) ds2a) (cadr P1)))  ; P1=yerleşim yeri  ds2a= diş üstü çapı   
  )

(defun eksencizimi ()   ; eksen çizgisi çizimi komutu     
(command "line" p3 p4 "")   ; dikey eksen çizimi 
(command "line" p5 p6 "")   ; yatay eksen çizimi 
)

;   MODÜL DİŞLİ ÇİZİMİ ANA PROGRAM                 

(defun C:moddis ()  ; modül dişli çizimi için ana komut
(disligirdi)       ; çizim değerlerinin alınması
(diameterhesap)    ; dişli dış çap ve böl.dairesi hesabı
(dislicizimi)      ; dişli çizimini sağlayan ana komut
        (ekscizgisihesap)  ; eksen çizgisinin hesabı komutu
        (eksencizimi)      ; eksen çizgisi çizimi komutu
  (princ)  )

(Princ "Lisp'i çalıştırmak için >> moddis << yazınız! [www.autocadokulu.com] ")

; Modül dişli çizimi için formüller

; Diş üstü çapı =  Modül x ( Diş sayısı + 2 )
; Bölüm dairesi  çapı =  ( Modül x ( Diş sayısı + 2 ) ) - ( 2 x modül )
; Bölüm dairesi çapı =  modül x diş sayısı
; Diş üstü çapı =      bölüm dairesi + ( 2 x diş sayısı)
; Diş üstü çapı =      modül x ( diş sayısı + 2)


Yeni autolisp programı :

Bu arada komut isimleri aynı olduğu için aşağıdaki programı kullanmanız daha uygundur..

Kod:

;   Modül Dişli Çizim Lispi  v.1.0               
;                                               
;        powered by yazgunesi                     
;       www.autocadokulu.com                     
;                                               
;     Lisp özellikleri :                         
;                                               
;   1 adet modül dişli için                     
;                                               
;  Diş üstü çapı'nın çizimi                     
;  Bölüm dairesi'nin çizimi  (taksimat dairesi) 
;  Dişli eksenler'inin çizimi                   
       
(defun C:moddis ()  ; modül dişli çizimi için komut ismi

(setq P1 (getpoint "\n Yerleşim yeri için TIKLA !: "))
        (setq mod1 (getreal "\n Modül nedir?: "))
(setq dis1 (getreal "\n Diş sayısı nedir?: "))

; diameterhesap ; dişli dış çap ve böl.dairesi hesabı

         (setq ds1 (+ dis1 2))               
         (setq ds2 (* mod1 ds1))   
         (setq ds3 (* mod1 dis1))     

;  disli cizimi     
        (command "circle"  P1 "d" ds2) ; dişli dış çap çizimi       
        (command "circle"  P1 "d" ds3
                 "change" "l" "" "p" "lt" "hidden" "c" "2" ""
   )  ; dişli böl.dairesi çizimi (taksimat dairesi)
 
;eksen cizgisi hesabı
  (setq p3 (list (car P1) (- (cadr p1) (/ ds2 2) )))
(setq p4 (list (car P1) (+ (cadr p1) (/ ds2 2) )))
(setq p5 (list (+ (car P1) (/ ds2 2)) (cadr P1)))
(setq p6 (list (- (car P1) (/ ds2 2)) (cadr P1))) 

; eksen cizimi
(command "line" p3 p4 ""      ; dikey eksen çizimi 
                 "change" "l" "" "p" "lt" "center" "c" "3" "" )
    (command "line" p5 p6 ""      ; yatay eksen çizimi
                 "change" "l" "" "p" "lt" "center" "c" "3" "" )
   (princ)  )
(Princ "Lisp'i çalıştırmak için >> moddis << yazınız! [www.autocadokulu.com] ")


Yakın bir zamanda birden fazla dişli çiebilmek için autolisp programını eklemeyi düşünüyorum bu sayfaya..

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

> 1 <
Copyright © 2004-2022 SQL: 0.837 saniye - Sorgu: 44 - Ortalama: 0.01901 saniye