大佬们问个问题
import numpy as np
import matplotlib.pyplot as plt
import math
import matplotlib.ticker as mticker
def jiankaixian(m,z,x,n): # m:模数,z:齿数,x:变位系数,n:均布多少个点
m=m
z=z
alpha=math.radians(25); #压力角
ha=1; c=0.25; x=x; #齿顶高系数;顶隙系数;变位系数
r= z * m / 2 #分度圆半径
ra=r+(ha+x)*m #齿顶圆半径
rf=r-(ha+c-x)*m #齿根圆半径
rb=r * np.cos(alpha) #基圆半径
p=np.pi*m; #齿距
s=p/2+2*x*m*np.tan(alpha);#齿厚
theta1 = np.tan(np.arccos(rb/r)) - np.arccos(rb/r)
theta2 = s/(2*r)
#第1段 渐开线
alphaK =np.linspace(0, np.arccos(rb/ra), n) #分割点数
thetaK=np.tan(alphaK)-alphaK - theta1 -theta2 ; #极坐标系角度
rK=rb/np.cos(alphaK) #极坐标系半径
global alpha1
alpha1=np.arccos(rb/rK)
xx = rK *np.cos(thetaK) #转为直角坐标系
yy = rK *np.sin(thetaK)
yy_fu = -yy #关于x轴对称
xx = xx-xx[0] #平移到坐标原点
return xx,yy_fu
xx,yy = jiankaixian(1.5,20,0,3000) # 换曲线时这个函数记得换
plt.plot(xx,yy)
plt.show()
推荐文章: