機械行業在使用CAD的時候,常常會需要繪製圓的漸開線。在網上找到一個畫漸開線的LISP程序,不知道有沒有人需要。
什麼是圓的漸開線?
把一條沒有彈性的細繩繞在一個定圓上,拉開繩子的一端並拉直,使繩子與圓周始終相切。繩子端點的軌跡是一條曲線。這條曲線叫做圓的漸開線。這個定圓叫做漸開線的基圓。
圓的漸開線廣泛應用於齒輪的嚙合,齒輪的受力總是沿著與基圓相切的方向。標準齒輪分度圓的壓力角為20度,齒輪上的漸開線壓力角不會超過80度。在下面程序中,為了直觀,漸開線的壓力角設置為360度。
Lisp程序編碼如下:
(defun C:jkx ()
(setq pi1 (/ pi 180))
(setq po0 (getpoint " n 請輸入中心點:"))
(if (= po0 nil)
(setq po0 (list 0 0 0))
)
(SETQ d (GETREAL "n 請輸入分度圓直徑:"))
(if (= d nil)
(setq d 100)
)
(setq step (getreal "n 漸開線精細度(0
(if (= step nil)
(setq step 1)
)
(setq rd (/ d 2))
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(command "UCS" "O" po0)
(command "CIRCLE" "0,0" rd)
(SETQ R (* rd (COS (* PI1 20))));標準齒輪分度圓的壓力角為20度
(SETQ ST 0)
(SETQ STR (* PI1 ST))
(SETQ X (* R (+ (COS STR) (* STR (SIN STR)))))
(SETQ Y (* R (- (SIN STR) (* STR (COS STR)))))
(SETQ XY (LIST X Y))
(COMMAND "PLINE" XY)
(SETQ ST (+ st step))
(WHILE (
(SETQ STR (* PI1 ST))
(SETQ X (* R (+ (COS STR) (* STR (SIN STR)))))
(SETQ Y (* R (- (SIN STR) (* STR (COS STR))))) (SETQ XY (LIST X Y))
(COMMAND XY)
(SETQ ST (+ st step))
)
(command "")
(setvar "osmode" os)
(command "UCS" "P")
)
使用方法如下:
將上面的代碼複製到記事本中,另存為*.lsp文件,然後到CAD裡輸入AP加載保存的LSP文件,加載成功後輸入JKX命令後根據提示確定圓心點、輸入半徑和精度,就可以繪製出漸開線了。
繪製結果如下圖:
感覺漸開線的起點畫得有點問題,不知道能不能用。