摘要:在Visual Lisp二次開發環境中,利用Visual Lisp的圖形處理函數,針對銑刀、滾刀等典型復雜刀具工作圖中端面齒形的繪制特點,提出了一套簡單實用的弧線求交和弧弧求交特殊算法,實現了銑刀、滾刀等端面齒形圖中鏟磨齒背曲線的自動生成。
1 引言
在設計典型復雜刀具(如鏟齒成形銑刀、盤形齒輪銑刀、齒輪滾刀和蝸輪滾刀等)時,為方便刀具刃磨,取零度前角(γf=0°)。當刀具用鈍后重磨前刀面時,為保證每次重磨后的刀齒刃形(刀具任意軸剖面內的刃形)基本不變且有適當的后角,要求刀具各軸剖面中形狀相同的刀刃應沿刀具半徑方向均勻地逼近刀具軸線,因此這些刀具的后刀面也是成形表面。這種成形表面可用鏟齒的方法獲得,但對于精度要求較高的鏟齒成形刀具,其齒背除鏟齒外尚需進行鏟磨方能達到要求。需要鏟齒后再鏟磨的刀齒齒背必須采用雙重鏟齒:即在鏟齒時,齒背曲線的AB 段用鏟削量為K 的凸輪進行鏟削,而齒背曲線的BC 段用較大的鏟削量K1(K1>K)鏟削。采用雙重鏟齒的目的是避免鏟磨時砂輪磨削完AB段后在BC段形成凸臺。刀齒齒背的雙重鏟齒亦可選擇方式。
2 齒背曲線(鏟背曲線)的生成及算法
齒背曲線是刀齒后刀面在鏟齒成形刀具端剖面中的截線,理論上該曲線是對數螺旋線。由于對數螺旋線制造困難,因此生產中采用阿基米德螺線代替。而在繪制刀具工作圖中的端面齒形時,為簡化制圖,又采用近似圓弧代替阿基米德螺線。
應用典型復雜刀具CAD繪制齒背曲線時,根據手工繪圖時的近似方法,由已知參數d0、zk、H、h、θ、r、K、K1、af和圓心點pt分別求出刀具工作圖中端面齒形的各個特征點坐標,再通過COMMAND函數調用AutoCAD 的繪圖命令繪制出端面齒形。
繪制銑刀、滾刀等刀具工作圖中的端面齒形時,其難點是確定雙重鏟齒的齒背曲線中兩次鏟背曲線的交點和鏟背曲線與容屑槽左側棱廓直線的交點。但是在Visual Lisp中沒有集成求解弧線交點和弧弧交點的函數。為解決這一問題,筆者開發出一套簡單實用的弧線求交和弧弧求交算法。
2.1 弧線求交算法
已知直線兩端點P1、P2、圓心O和圓弧半徑R,求直線P1P2與該圓弧的交點坐標(點I為弧線交點,點M為直線P1P2的中點)
根據已知各點坐標,利用中點迭代逼近法可簡單快速求出弧線交點,其算法流程。根據算法流程,利用Visal Lisp的圖形處理函數功能,設計如下弧線求交子程序INTERAL:
:::函數INTERAL 為求圓弧與直線的交點
(defun interal(r o i h / xo yo x1 x2 y1 y2 x3 y3 loop rr d delt)
(setq xo(car o ) yo(cadr o) x1(car i) y1(cadr i) x2(carh) y2(cadr h))
(setq loop t)
(setq ee 1e-6)
(WHILE loop
(SETQ x3( /( + x1 X2)2.0)y3( /( + y1 y2)2.0))
(SETQ d(distance o(list x3 y3)))(setq delt(-d r))(cond(( < =(abs delt)ee)(setq loop nil))
(( < delt 0.0)(setq x2 x3 y2 y3))
( t(setq x1 x3 y1 y3))
):cond
):while
(list x3 y3)
)
2.2 弧弧求交算法
已知圓心坐標O1、圓弧半徑R1和圓心坐標O2、圓弧半徑R2,求交點I的坐標。由兩個圓心O11、O2與交點I 構成的三角形ΔIO1O2,可建立以下算法:
IO1=R1
IO2=R2
D=O1O2=Ditance(O1,O2)
Ang2= Angle(O1,O2)
Ang1=arccos( R12+D2-R22 )
2R1*D
IX=O1X+R1*COS(Ang1-Ang2)
IY=O1X+R1*SIN(Ang1-Ang2)
根據以上算法,利用Visal Lisp圖形處理函數功能,設計如下弧弧求交子程序INTERAA。
:::函數INTERAA 為求兩圓弧的交點
(defun interaa(r1 o1 r2 o2 / d a-o1o2 cosa sina a-r1o1o2 x y)
(setq d(abs (distance o1 o2)))::o1o2 線段的離
(setq a-o1o2(angle o1 o2))::o1o2 度
(setq cosa((/ +(* r1 r1)(* d d)(-(* r2 r2)))(* 2.0 r1 d)))
(setq sina(sqrt(- 1.0(* cosa cosa))))
(setq a-r1o1o2(atan sina cosa))
(setq x( +(car o1)(* r1(cos( + a-o1o2 a-r1o1o2 )))))
(setq y( +(cadr o1)(* r1(sin( + a-o1o2 a-r1o1o2)))))
(list x y)
)
3 應用實例
利用重慶工商大學開發的“典型復雜刀具CAD”軟件設計繪制的帶孔式內鍵滾刀的端面齒形圖:以下所給程序清單是繪制該端面齒形圖的部分Visual Lisp程序。
函數sidtee 繪制端面齒形圖的Visual Lisp 程序:(defun sidtee(ra0 zk hk rk thi k k1 h0 rh p0 / angcxj b1 j0 j1 b0 e a0 a1 g0 g1 o-r h i i0 a1b1o a-a1b1o1 o1 o1-1 r-ka1 r-kg1)
(setq angcxj( /(* pi 2.0)zk))::齒形角
(setq j1(polar p0( / pi 2.0)ra0))::j1 點
::以下程序用POLAR 函數求B1、J0、B0、E、A0、A1、G0、G1、H、I、I0點
……
(setq i0(polar i( + TH(I / pi 2.0))( /(- k1 k)5.0)))::I0 點
::A1B1 線段的中垂點
(setq A1b1O(LIST( /( + (CAR A1)(CAR B1))2.0)( /( +(CADR A1)(CADR B1))2.0)))
::B1A1 線的中垂線角度
(setq a-a1b1o1( +(angle b1 a1)( / pi 2.0)))
(setq O1(polar A1B1O a-a1b1o1( /(* 3 ra0)2.0)))::O1參考圓心點
::A0B0 線段的中垂點
(setq A0b0O(LIST(/( + (CAR A0)(CAR B0))2.0)( /( +(CADR A0)(CADR B0))2.0)))
(setq O0(polar A0B0O a-a0b0o0( /(* 3 ra0)2.0)))::O0參考圓心點
(setq o0(inters a0b0o o0 a0 o0-1 nil))::O0 參考圓心點
(setq f0(interaa r-k1a0 o0 r-ka1 o1 ))::求A0B0 弧與A1B1 弧的交點
(setq f1(interaa r-k1g0 o0 r-kg1 o1))::求G0C0 弧與G1C1弧的交點
(setq D0(interaL r-k1a0 o0 i h))::求A0B0 弧與直線HI的交點
(setq D1(interal r-k1g0 o0 I h1))::求G0C0 弧與直線HI的交點:::以下程序根據以上程序求出的各點繪制工作圖中的端面齒形
(command ”pline”a1 ”w”0.4 ””g1 ””)
(command ”arc””ce”p0 j1 a1)
)
以往采用復雜刀具CAD 軟件繪圖時,要靠用戶用對象捕捉的方法獲得生成齒背曲線的弧線交點和弧弧交點。而在重慶工商大學開發的“典型復雜刀具CAD”軟件中,在設計鏟齒成形銑刀、齒輪滾刀、蝸輪滾刀時,利用本文提出的弧線求交算法和弧弧求交算法,成功地自動繪制出刀具端面齒形圖,由此提高了整個CAD系統的自動化程度。
業務咨詢:932174181 媒體合作:2279387437 24小時服務熱線:15136468001 盤古機械網 - 全面、科學的機械行業免費發布信息網站 Copyright 2017 PGJXO.COM 豫ICP備12019803號