测量程序测量代码方便实用.docx
《测量程序测量代码方便实用.docx》由会员分享,可在线阅读,更多相关《测量程序测量代码方便实用.docx(156页珍藏版)》请在冰豆网上搜索。
测量程序测量代码方便实用
测量程序测量代码方便实用
Functioncnx(zk,s,a,d,v)
'完整曲线直线+缓和曲线+圆曲线+缓和曲线+直线
Ifzk>=60600Andzk<=Then
'有关数据输入
jd1=60600
jd1x=
jd1y=
jd2=
jd2x=
jd2y=
ls=315
r=2400
u=1
zh=
hy=
yh=
hz=
'有关数据计算
Letpi=
yy=jd2y-jd1y
xx=jd2x-jd1x
fwj=Atn(yy/xx)
Ifyy>0Andxx<0Then
fwj=fwj+pi
EndIf
Ifyy<0Andxx<0Then
fwj=fwj+pi
EndIf
Ifyy<0Andxx>0Then
fwj=fwj+pi*2
EndIf
Iffwj>pi*2Then
fwj=fwj-pi*2
EndIf
Iffwj<0Then
fwj=fwj+pi*2
EndIf
zhx=jd1x+Cos(fwj)*(zh-jd1)
zhy=jd1y+Sin(fwj)*(zh-jd1)
zhj=fwj+u*Atn(((hy-zh)^3/(6*r*ls)-(hy-zh)^7/(336*r^3*ls^3)+(hy-zh)^11/(42240*r^5*ls^5)-(hy-zh)^15/(9676800*r^7*ls^7))/((hy-zh)-(hy-zh)^5/(40*r^2*ls^2)+(hy-zh)^9/(3456*r^4*ls^4)-(hy-zh)^13/(599040*r^6*ls^6)+(hy-zh)^17/(0*r^8*ls^8)))
hyfwj=fwj+(hy-zh)^2/(2*r*ls)*u
zhc=((hy-zh)^3/(6*r*ls)-(hy-zh)^7/(336*r^3*ls^3)+(hy-zh)^11/(42240*r^5*ls^5)-(hy-zh)^15/(9676800*r^7*ls^7))/Sin(Atn(((hy-zh)^3/(6*r*ls)-(hy-zh)^7/(336*r^3*ls^3)+(hy-zh)^11/(42240*r^5*ls^5)-(hy-zh)^15/(9676800*r^7*ls^7))/((hy-zh)-(hy-zh)^5/(40*r^2*ls^2)+(hy-zh)^9/(3456*r^4*ls^4)-(hy-zh)^13/(599040*r^6*ls^6)+(hy-zh)^17/(0*r^8*ls^8))))
hyx=zhx+Cos(zhj)*zhc
hyy=zhy+Sin(zhj)*zhc
hyj=hyfwj+u*((yh-hy)/r)/2
hyc=Sin(((yh-hy)/r)/2)*2*r
yhx=hyx+Cos(hyj)*hyc
yhy=hyy+Sin(hyj)*hyc
yhfwj=hyfwj+u*((yh-hy)/r)
hzj=yhfwj+u*((hz-yh)^2/(2*r*ls)-Atn(((hz-yh)^3/(6*r*ls)-(hz-yh)^7/(336*r^3*ls^3)+(hz-yh)^11/(42240*r^5*ls^5)-(hz-yh)^15/(9676800*r^7*ls^7))/((hz-yh)-(hz-yh)^5/(40*r^2*ls^2)+(hz-yh)^9/(3456*r^4*ls^4)-(hz-yh)^13/(599040*r^6*ls^6)+(hz-yh)^17/(0*r^8*ls^8))))
hzc=((hz-yh)^3/(6*r*ls)-(hz-yh)^7/(336*r^3*ls^3)+(hz-yh)^11/(42240*r^5*ls^5)-(hz-yh)^15/(9676800*r^7*ls^7))/Sin(Atn(((hz-yh)^3/(6*r*ls)-(hz-yh)^7/(336*r^3*ls^3)+(hz-yh)^11/(42240*r^5*ls^5)-(hz-yh)^15/(9676800*r^7*ls^7))/((hz-yh)-(hz-yh)^5/(40*r^2*ls^2)+(hz-yh)^9/(3456*r^4*ls^4)-(hz-yh)^13/(599040*r^6*ls^6)+(hz-yh)^17/(0*r^8*ls^8))))
hzx=yhx+Cos(hzj)*hzc
hzy=yhy+Sin(hzj)*hzc
hzfwj=yhfwj+u*((hz-yh)^2/(2*r*ls))
'直线计算
Ifzk>=jd1Andzk<=zhAndv=1Then
cnx=jd1x+Cos(fwj)*(zk-jd1)+Cos(fwj)*s+Cos(fwj+a*pi/180)*d
EndIf
Ifzk>=jd1Andzk<=zhAndv=2Then
cnx=jd1y+Sin(fwj)*(zk-jd1)+Sin(fwj)*s+Sin(fwj+a*pi/180)*d
EndIf
'第一条缓和曲线计算
Ifzk>zhAndzkl=zk-zh
x=l-l^5/(40*r^2*ls^2)+l^9/(3456*r^4*ls^4)-l^13/(599040*r^6*ls^6)+l^17/(0*r^8*ls^8)
y=l^3/(6*r*ls)-l^7/(336*r^3*ls^3)+l^11/(42240*r^5*ls^5)-l^15/(9676800*r^7*ls^7)
j=Atn(y/x)
c=y/Sin(j)
zj=l^2/(2*r*ls)
Ifzk>zhAndzkcnx=zhx+Cos(fwj+u*j)*c+Cos(fwj+u*zj)*s+Cos(fwj+u*zj+a*pi/180)*d
EndIf
Ifzk>zhAndzkcnx=zhy+Sin(fwj+u*j)*c+Sin(fwj+u*zj)*s+Sin(fwj+u*zj+a*pi/180)*d
EndIf
EndIf
'圆曲线计算
Ifzk>=hyAndzk<=yhThen
l=zk-hy
j=(l/r)/2
zj=2*j
c=Sin(j)*2*r
Ifzk>=hyAndzk<=yhAndv=1Then
cnx=hyx+Cos(hyfwj+u*j)*c+Cos(hyfwj+u*zj)*s+Cos(hyfwj+u*zj+a*pi/180)*d
EndIf
Ifzk>=hyAndzk<=yhAndv=2Then
cnx=hyy+Sin(hyfwj+u*j)*c+Sin(hyfwj+u*zj)*s+Sin(hyfwj+u*zj+a*pi/180)*d
EndIf
EndIf
'第二条缓和曲线计算
Ifzk>yhAndzkl=hz-zk
x=l-l^5/(40*r^2*ls^2)+l^9/(3456*r^4*ls^4)-l^13/(599040*r^6*ls^6)+l^17/(0*r^8*ls^8)
y=l^3/(6*r*ls)-l^7/(336*r^3*ls^3)+l^11/(42240*r^5*ls^5)-l^15/(9676800*r^7*ls^7)
j=Atn(y/x)
c=y/Sin(j)
zj=l^2/(2*r*ls)
fj=zj-j
Ifzk>yhAndzkcnx=hzx+Cos(hzfwj+pi+(-u)*j)*c+Cos(hzfwj+(-u)*zj)*s+Cos(hzfwj+(-u)*zj+a*pi/180)*d
EndIf
Ifzk>yhAndzkcnx=hzy+Sin(hzfwj+pi+(-u)*j)*c+Sin(hzfwj+(-u)*zj)*s+Sin(hzfwj+(-u)*zj+a*pi/180)*d
EndIf
EndIf
EndIf
'结束
'完整曲线直线+缓和曲线+圆曲线+缓和曲线+直线
Ifzk>=Andzk<=Then
'有关数据输入
jd1='交点1的桩号
jd1x='交点1的X坐标
jd1y='交点1的Y坐标
jd2='交点2的桩号
jd2x='交点2的X坐标
jd2y='交点2的Y坐标
ls=335'缓和曲线长
r=3000'圆曲线半径
u=-1'转向(左转为负,右转为正)
zh='直缓点桩号
hy='缓圆点桩号
yh='圆缓点桩号
hz='缓直点桩号
'有关数据计算
Letpi=
yy=jd2y-jd1y
xx=jd2x-jd1x
wj=Atn(yy/xx)
Ifyy>0Andxx>0Then
fwj=wj
EndIf
Ifyy>0Andxx<0Then
fwj=wj+pi
EndIf
Ifyy<0Andxx<0Then
fwj=wj+pi
EndIf
Ifyy<0Andxx>0Then
fwj=wj+pi*2
EndIf
Iffwj>pi*2Then
fwj=fwj-pi*2
EndIf
Iffwj<0Then
fwj=fwj+pi*2
EndIf
zhx=jd1x+Cos(fwj)*(zh-jd1)
zhy=jd1y+Sin(fwj)*(zh-jd1)
zhj=fwj+u*Atn(((hy-zh)^3/(6*r*ls)-(hy-zh)^7/(336*r^3*ls^3)+(hy-zh)^11/(42240*r^5*ls^5)-(hy-zh)^15/(9676800*r^7*ls^7))/((hy-zh)-(hy-zh)^5/(40*r^2*ls^2)+(hy-zh)^9/(3456*r^4*ls^4)-(hy-zh)^13/(599040*r^6*ls^6)+(hy-zh)^17/(0*r^8*ls^8)))
hyfwj=fwj+(hy-zh)^2/(2*r*ls)*u
zhc=((hy-zh)^3/(6*r*ls)-(hy-zh)^7/(336*r^3*ls^3)+(hy-zh)^11/(42240*r^5*ls^5)-(hy-zh)^15/(9676800*r^7*ls^7))/Sin(Atn(((hy-zh)^3/(6*r*ls)-(hy-zh)^7/(336*r^3*ls^3)+(hy-zh)^11/(42240*r^5*ls^5)-(hy-zh)^15/(9676800*r^7*ls^7))/((hy-zh)-(hy-zh)^5/(40*r^2*ls^2)+(hy-zh)^9/(3456*r^4*ls^4)-(hy-zh)^13/(599040*r^6*ls^6)+(hy-zh)^17/(0*r^8*ls^8))))
hyx=zhx+Cos(zhj)*zhc
hyy=zhy+Sin(zhj)*zhc
hyj=hyfwj+u*((yh-hy)/r)/2
hyc=Sin(((yh-hy)/r)/2)*2*r
yhx=hyx+Cos(hyj)*hyc
yhy=hyy+Sin(hyj)*hyc
yhfwj=hyfwj+u*((yh-hy)/r)
hzj=yhfwj+u*((hz-yh)^2/(2*r*ls)-Atn(((hz-yh)^3/(6*r*ls)-(hz-yh)^7/(336*r^3*ls^3)+(hz-yh)^11/(42240*r^5*ls^5)-(hz-yh)^15/(9676800*r^7*ls^7))/((hz-yh)-(hz-yh)^5/(40*r^2*ls^2)+(hz-yh)^9/(3456*r^4*ls^4)-(hz-yh)^13/(599040*r^6*ls^6)+(hz-yh)^17/(0*r^8*ls^8))))
hzc=((hz-yh)^3/(6*r*ls)-(hz-yh)^7/(336*r^3*ls^3)+(hz-yh)^11/(42240*r^5*ls^5)-(hz-yh)^15/(9676800*r^7*ls^7))/Sin(Atn(((hz-yh)^3/(6*r*ls)-(hz-yh)^7/(336*r^3*ls^3)+(hz-yh)^11/(42240*r^5*ls^5)-(hz-yh)^15/(9676800*r^7*ls^7))/((hz-yh)-(hz-yh)^5/(40*r^2*ls^2)+(hz-yh)^9/(3456*r^4*ls^4)-(hz-yh)^13/(599040*r^6*ls^6)+(hz-yh)^17/(0*r^8*ls^8))))
hzx=yhx+Cos(hzj)*hzc
hzy=yhy+Sin(hzj)*hzc
hzfwj=yhfwj+u*((hz-yh)^2/(2*r*ls))
'直线计算
Ifzk>=jd1Andzk<=zhAndv=1Then
cnx=jd1x+Cos(fwj)*(zk-jd1)+Cos(fwj)*s+Cos(fwj+a*pi/180)*d
EndIf
Ifzk>=jd1Andzk<=zhAndv=2Then
cnx=jd1y+Sin(fwj)*(zk-jd1)+Sin(fwj)*s+Sin(fwj+a*pi/180)*d
EndIf
'第一条缓和曲线计算
Ifzk>zhAndzkl=zk-zh
x=l-l^5/(40*r^2*ls^2)+l^9/(3456*r^4*ls^4)-l^13/(599040*r^6*ls^6)+l^17/(0*r^8*ls^8)
y=l^3/(6*r*ls)-l^7/(336*r^3*ls^3)+l^11/(42240*r^5*ls^5)-l^15/(9676800*r^7*ls^7)
j=Atn(y/x)
c=y/Sin(j)
zj=l^2/(2*r*ls)
Ifzk>zhAndzkcnx=zhx+Cos(fwj+u*j)*c+Cos(fwj+u*zj)*s+Cos(fwj+u*zj+a*pi/180)*d
EndIf
Ifzk>zhAndzkcnx=zhy+Sin(fwj+u*j)*c+Sin(fwj+u*zj)*s+Sin(fwj+u*zj+a*pi/180)*d
EndIf
EndIf
'圆曲线计算
Ifzk>=hyAndzk<=yhThen
l=zk-hy
j=(l/r)/2
zj=2*j
c=Sin(j)*2*r
Ifzk>=hyAndzk<=yhAndv=1Then
cnx=hyx+Cos(hyfwj+u*j)*c+Cos(hyfwj+u*zj)*s+Cos(hyfwj+u*zj+a*pi/180)*d
EndIf
Ifzk>=hyAndzk<=yhAndv=2Then
cnx=hyy+Sin(hyfwj+u*j)*c+Sin(hyfwj+u*zj)*s+Sin(hyfwj+u*zj+a*pi/180)*d
EndIf
EndIf
'第二条缓和曲线计算
Ifzk>yhAndzkl=hz-zk
x=l-l^5/(40*r^2*ls^2)+l^9/(3456*r^4*ls^4)-l^13/(599040*r^6*ls^6)+l^17/(0*r^8*ls^8)
y=l^3/(6*r*ls)-l^7/(336*r^3*ls^3)+l^11/(42240*r^5*ls^5)-l^15/(9676800*r^7*ls^7)
j=Atn(y/x)
c=y/Sin(j)
zj=l^2/(2*r*ls)
fj=zj-j
Ifzk>yhAndzkcnx=hzx+Cos(hzfwj+pi+(-u)*j)*c+Cos(hzfwj+(-u)*zj)*s+Cos(hzfwj+(-u)*zj+a