CN104166376A - 复合插补法及其系统软件 - Google Patents

复合插补法及其系统软件 Download PDF

Info

Publication number
CN104166376A
CN104166376A CN201310202145.5A CN201310202145A CN104166376A CN 104166376 A CN104166376 A CN 104166376A CN 201310202145 A CN201310202145 A CN 201310202145A CN 104166376 A CN104166376 A CN 104166376A
Authority
CN
China
Prior art keywords
curve
time
point
line
formula
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310202145.5A
Other languages
English (en)
Inventor
刘希汉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201310202145.5A priority Critical patent/CN104166376A/zh
Publication of CN104166376A publication Critical patent/CN104166376A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

复合插补法及其系统软件,是计算机图形学核心技术领域里的一项新技术,它突破了目前国际上在该领域中,通常只能实现对直线、圆弧(部分系统可以对抛物线、椭圆)的直接插补生成,对非圆曲线只能靠直线或圆弧拟合的现状。本技术实现了对任意参数的渐伸线、阿基米德螺旋线、摆线、圆内外摆线、正余弦曲线、非圆二次曲线的直接插补生成,而且实现了对渐伸线、阿基米德螺旋线、非圆二次曲线等常用线型的平行线的插补生成,并解决了常用曲线及其平行线的光滑衔接问题,及能对相关曲线或其构成的图形实施任意旋转、扩缩、移动、对称等各种编辑还可显示其辅助线和相关参数。创建了将所生成曲线或图形编码的方法,数控设备无需插补运算仅解码数据即可作出要求的形状。这项技术将使计算机绘图、教学、相关科研及数控加工方法产生较大进步。

Description

复合插补法及其系统软件
技术领域:本项目属于计算机图形学核心技术领域里曲线和图形生成与编辑的新方法,使用本方法编制的系统软件可直接生成含常用非圆曲线及其平行线的系列线型,并可显示其辅助线和相关参数,还能实现常用曲线及其平行线间的光滑衔接和对曲线或图形进行任意角度旋转等各种编辑功能,且可将已生成的各种曲线或图形进行数控编存解码等操作。
背景技术:在计算机绘图和数控加工的曲线生成相关技术方面,目前国际通用的方法是可以通过插补运算直接生成直线和圆弧,而对非圆曲线只能用直线或圆弧去分段拟合。本人在1989年2月申请并在之后已被授权的发明专利“复合逐点比较插补法及其系统软件”的项目中,解决了渐伸线、阿基米德螺旋线、摆线、圆内外摆线、正余弦曲线、椭圆、抛物线、双曲线等非圆曲线的直接插补生成问题。现在部分绘图系统也可对椭圆或抛物线进行插补,但是它们还未能真正成为计算机绘图和数控加工的母线。其原因在于,数控加工中刀具运行的中心轨迹应该是被加工工件轮廓的平行线,非圆曲线的平行线插补问题之前没有解决,还存在不同曲线或其平行线之间的光滑衔接问题,及由多种曲线构成图形的任意旋转、扩缩、剪切、延伸、移动、对称、矩阵、进退等编辑及复合编辑问题。另外现有数控设备执行机构运行时必需依赖即时插补运算,进而造成的微观阶梯式冲击和运行速度受到限制的问题也应该得到改善。
发明内容:针对以上背景和问题,若让常用非圆曲线与圆弧和直线一样真正成为计算机绘图或数控加工的母线,并从根本上提高数控加工的质量和速度,除必需让绘图或数控系统具有对非圆曲线的直接插补生成功能外,还应增加对常用非圆曲线的数控刀补功能,即也能直接插补生成相关曲线的平行线,并实现常用曲线及其平行线与其它曲线及其平行线的光滑衔接,还应具有对其构成的图形进行任意参数旋转、扩缩、剪切、延伸、移动、对称、矩阵、进退等编辑及选择或复合编辑功能。最好再创建数控编存解码方法,用于取代现有数控设备执行机构的即时插补运算过程,即设备运行时仅依靠已经运算完成的系列最终插补结果的组合编码数据驱动设备生成要求的图形。鉴于这些构想和对目标曲线的分析列出了系列课题:根据渐伸线、阿基米德螺旋线、摆线、圆内外摆线和正弦曲线的定义和性质,分析得出它们都存在与其参数对应的基圆,该基圆上每点的展开弧长又将作为曲线动点进给的变量基准,能在基圆相关点运行中用简易递推算法得到精确变化的弧长数据事关重要;针对常用曲线平行线生成和光滑衔接的目标,经分析部分曲线如圆弧、直线和渐伸线的平行线还是原曲线类型,通过改变相关参数就可解决刀补和衔接问题,而常用的椭圆、抛物线、双曲线及阿基米德螺旋线等线型的平行线已不再是其原来的线型,即不能通过改变原线型参数的方法得到其平行线,光滑衔接和自由旋转等编辑也相对较难;数控编存解码方法更无先例。下面分别说明本方法的主要技术特征和较具体的解决方法及其对应的数学模型:
1.复合插补法及其系统软件的主要技术特征
本复合插补法的主要特征是:这里采用自变量长度偏差修正法规正基圆轨迹,提高了作为许多非圆曲线复合插补变量基准的弧长递推计算精度,并在递推计算R倍弧长过程中依据不同R进行一定间隔的微量修正得到每步弧长这个变量基准;与该弧长基准相关的渐伸线和阿基米德螺旋线的生成是让其动点遵循弧长和角度复合变量基准运行,并在其动点位于X或Y轴极值点时作出判别并修改走向,即可在直角坐标系下生成可跨越象限任意长度的相关轨迹,并且可以在基准弧长较大时采用曲线长度细分计数以辅助控制线长,另外自变量长度偏差修正法也可用于修正常用非圆曲线轨迹与基准量的偏离;同样涉及圆弧长度的摆线、圆内外摆线和正弦曲线为其动圆沿导轨运动,动圆上的点与其导轨复合运动产生的轨迹,只要让动圆转动的弧长与导轨弧线长按比例同步运行,并将其相关点的位置相应叠加,即可得到该曲线或其变幅曲线;对常用曲线及其组成的图形绕自身原点或另外设定点的任意角度转动、对称、移动、扩缩、矩阵及剪切、衔接、倒退、删除、恢复、插入、追加的编辑及选择或复合编辑等操作是在曲线运行前,根据编辑项目和数据要求对用户程序相关的数据和指令进行修改处理后启动运行实现的,但非圆二次曲线的自由旋转对角度N中超过±90°的90倍数部分用修改用户程序数据和指令,小于90°部分用在程序启动预置后的运行中按标准曲线偏差和进给运算加与转角对应的位移分量的递推算法处理;在常用曲线的平行线生成和两条线段的光滑衔接方面,对渐伸线等仍可保持原线型的曲线平行线采用移动起点位置改变相关参数的方法实现,对已改变了原曲线性质的常用非圆二次曲线和阿基米德螺旋线等的平行线生成的方法是根据曲线的性质采用简化的递推算法数学模型顺序取得原线法向等距点的集合,光滑衔接则是相关曲线对应点切线角度一致的吻合;数控编码方法是在曲线或图形绘制及编辑完成后,根据设定的二轴叠加每次移动步距,在曲线或图形重绘时编辑生成代表每次步距和走向的系列数据。下面分别阐述相关数学模型的建立依据与主要逻辑判别方法:
2.自变量偏差修正规制基圆曲线轨迹保证递推计算弧长的精度
因为计算机绘图或数控运行的轨迹均是建立在直角坐标系基础之上,由被控动点沿平行于X、Y轴的运动构成各种曲线,该动点与基准量之间的偏差运算和判别是计算机图形中曲线轨迹生成的依据,长度偏差是插补方法中最基本最常用的偏差运算。圆在直角坐标系下基本方程式为:X2+Y2=R2其轨迹生成的长度偏差判别式可以简单的确定为:F=X2+Y2-R2其中R为常量基准,其轨迹生成中常用的递推运算公式为:当X±1时:F=F±2*X+1,当Y±1时:F=F±2*Y+1,依此偏差的正负和走向指令结合,可以控制动点在沿基准R内外一个运算单位内的X、Y的正或负方向交替运行,形成微观阶梯状态的圆弧轨迹,因为位于坐标轴附近的该轴向坐标值远大于另一方向的坐标值,坐标值越大在偏差运算的权重上也越大,使在坐标轴附近的被控动点沿该轴向走一步偏差即反向改走另一方向,动点在另一方向要走许多步偏差才能再反向,构成圆弧的微观折线靠向坐标轴前在此轴向应为逐步增加的走向,而过坐标轴后此轴向应变为逐步减小的走向,因此造成被控动点在接近坐标轴前主要沿基准R外侧运行,过坐标轴时突然凹下,离开坐标轴附近主要沿基准R内侧运行,如图1所示,存在坐标轴上偏离最大,轴二侧的圆弧轨迹不对称问题。
作为圆弧长度控制和与许多非圆曲线生成相关的圆弧长变量的计算,这里设圆周上动点至圆心的半径R与X轴夹角为a,动点沿X轴向进给一步,对应的圆切线长度为H=1*sin(a)=Y/R,而RH=Y,动点沿Y轴向进给一步,对应的圆切线长度为H=1*cos(a)=X/R,而RH=X,即:当X±1时RH+Y,当Y±1时RH+X,当RH>=R时RH-R,H±1,这里以RH作为逐步递推计算圆弧长的基础,因此圆轨迹相对基准R的偏离,轴对称位置X或Y数据的差异,将影响递推弧长计算的精确度。
为了解决这个问题,针对轨迹偏离的最大点在坐标轴上,并随动点的移动逐渐减小,在二坐标轴的角分线45°处恰好跨越基准R的状况,这里采用其自身变量修正偏差的方法,减小圆的轨迹相对基准R的偏离。原理是在坐标轴至角分线45°处对其基准量R进行最大为0.5个运算单位至0的正负变量修正,如图2所示。例如动点在Y轴上其坐标为(0,Y=R),此时修正判别式为F=02+Y2-(R+0.5)2=0-R-0.25<0,当F<0时应该Y不变而进行X+1的动作,此时修正判别式的R=Y,而0.25可以忽略,等同于F-Y,并随Y值的减小逐渐减少修正量,而要达到在一个象限的中间45°处修正量为零,之后该R修正量应变为负值并且其绝对值逐渐增大,直到X轴时为负的最大值R-0.5,即F=X2+0-(R-0.5)2=0+R-0.25,同时引入该圆的自身变量X等同于F+X。由Y轴向X轴运行的1/4象限中间各点的修正偏差应该是F=F-Y+X,而由X向Y轴运行的1/4象限中间各点的修正偏差应该是F=F-X+Y,这是满足在坐标轴上基准R±0.5最大修正量,然后逐渐减少修正量的绝对值到X轴与Y轴对角线45°处修正量为0并开始修正值的正负变换,这是曲线的自变量偏差修正公式。任意起点的圆运行前均可用该式进行偏差预置。而在曲线运行中仅将原来的递推运算公式最后的+1改为+2即可。原因是在1/4象限中,其F偏差修正值由-R到+R总修正量为2*R,满1/4象限时由F-(Y或X)到F+(X或Y)总步数为X步+Y步=2*R步,而F判别式是X、Y变化的每步必算的,所以每步多+1即等于总修正量为2*R,而且也满足由R+0.5到R-0.5和在象限中间45°处不修正的设想。因为有起步前按动点起始位置X、Y的偏差修正预置,对任意起止点或不满1/4象限的曲线运行中的偏差递推修正式+1改+2同样可以达到理想的修正目的。即:
当X±1时:F=F±2*X+2,当Y±1时:F=F±2*Y+2;
在象限变换时应进行缺项的F-X或F-Y的偏差修正预置。此方法还适用于曲线平行线和其它曲线长度偏差判别的公式,尤其对渐伸线、阿基米德螺旋线、摆线、圆内外摆线和正余弦曲线等以圆作基准量的场合更需要。
为了进一步提高递推方法计算的弧长精度,这里根据递推算法得到的弧长与常规算法得到的标准弧长值之间的微小误差,作出了针对不同R每运行N步再对R倍弧长修正±1个运算单位的R-N微数据库,在含求取弧长的线段插补运算前的程序启动时根据R调出该数据N,在正常插补运算中对圆弧长度递推运算中每步X或Y±1时RH±(Y或X)后,每隔N步再插入对RH±1的微量修正,每次的修正量为1/R个运算单位,用以提高作为基准数据的准确性。弧长的累计和取整还是当RH>=R时,RH-R,整数圆弧长H±1。
3.弧长变量相关曲线的复合插补及对非圆曲线的长度偏差修正方法
与上述弧长变量基准相关的渐伸线、阿基米德螺旋线、摆线、圆内外摆线、正弦曲线等线形生成中涉及的复合插补数学模型和对渐伸线、阿基米德螺旋线相对于其基准弧长的自变量长度偏差修正法说明如下:
渐伸线动点Xd、Yd相对基圆X、Y切点的展开弧长H,如图3所示。该长度偏差Fl=Xd 2+Yd 2-H2,这里也参照对圆弧长度偏差修正的方法根据动点所在象限,在其起步前进行相当于对基准变量H加减最大0.5个运算单位的偏差修正预置即:Fl=Fl±Xd-+Yd,运行中当被控动点本身的Xd±1时:Fl=Fl±2*Xd+2,Yd±1时:Fl=Fl±2*Yd+2;但对由同步运行的基圆切点的移动引起的Xd±1、Yd±1变化,将根据切点所在象限对应的动点本身移动产生的Xd、Yd加减变化是否一致,设定Fl=Fl±2*Xd或Fl=Fl±2*Yd的后面是否需要再+2处理,一致则加相反则不加,因为作为基准的H为变量,在极值点换象限或起步偏差修正预置时使用的是当时的H值,由基圆上切点变化引起H的伸缩也应在偏差修正中予以体现,预置时减掉的Xd或Yd为初值,在随后的递推偏差计算式的+2处理中相当于每步多加1使预置的修正值复原,并经中间0修正后逐渐使该修正值到下一个极值点变为加Yd或Xd,而对由于基圆上切点移动产生基准H变化的部分,恰好可用其对应的偏差递推计算式中的+2相当于修正量加1或不加相当于修正量减1,使修正量对应于基准值H的变化。另外Fl与H变化相关的递推算式:当H±1时Fl=Fl-+2*H-1。由渐伸线的参数方程Xd=R*cos(a)+Ra*sin(a),Yd=R*sin(a)-Ra*cos(a)求导得dX/da=Ra*cos(a),dy/da=Ra*sin(a),dy/dx=tan(a),dy/dx=0时Y=0,dx/dy=ctan(a),dx/dy=0时X=0,说明渐伸线的极值点与基圆过坐标轴点垂直对应。角度偏差则取基圆切点至圆心半径的斜率Y/X与基圆切点至渐伸线被控动点展开切线的斜率Xd/Yd互相垂直即:Xd/Yd=Y/X取将其扩大X*Yd倍的差值作为角度偏差判别公式Fa=X*Xd-Y*Yd,因X、Yd均为正整数不影响运算结果的正负。其递推公式为:
当X±1时,Fa=Fa±Xd,当Xd±1时,Fa=Fa±X;
当Y±1时,Fa=Fa-+Yd,当Yd±1时,Fa=Fa-+Y;
对在极坐标系下的阿基米德螺旋线,极径长度H=R*a1其中R为伸缩系数常量,a1为由极点和极轴起始的回转角度变量,而H恰好是R为半径的基圆与a1弧度对应的弧长。因为计算机图形是建立在直角坐标系基础上的,将上述螺旋线的极点与原点对应将其移入直角坐标系,将a1分为H=0的极轴与X轴正向夹角a0为初始角度常量(X轴起顺时针取正值逆时针取负值)和与X轴相关的角度变量a,并规定a+a0>=0,代表极径H与a变化相关的H=R*(a+a0)的外端点(Xd、Yd)描绘的轨迹就是在直角坐标系下的阿基米德螺旋线,该螺旋线基圆的R与螺旋线的极径H都在由原点和极点起的同一条射线上角度一致。该螺旋线的Xd 2+Yd 2=H2如图4所示,相关长度偏差判别式为:Fl=Xd 2+Yd 2-H2,对其轨迹和偏差判别式的修正要考虑该曲线各轴向极值点不与坐标轴重合,故以其在一个象限内的极值点为界按X、Y走向可将该线段分为与基圆同向或异向两部分,对同向部分参照圆弧长度偏差判别修正的思路,根据所在象限进行单变量修正,对扩展型在起步或极值换限时将Fl减掉X或Y极值向的Xd或Yd值,相当于在极值点处对基准H进行最大接近+0.5和随离开极值点而减小的修正,对收缩型在起步或坐标轴上象限变换时将Fl加上由X或Y轴开始从0增加项的Xd或Yd值,相当于在坐标轴处对基准H进行最小为0并逐渐增加的修正,即Fl=Fl±Xd或Fl=Fl±Yd并以此进行线段起步及运行中变换象限或极值点时的偏差预置,运行中预置对应项的Xd±1,Yd±1变化时Fl=Fl±2*Xd+2或Fl=Fl±2*Yd+2而未预置项Xd±1,Yd±1变化时Fl=Fl±2*Xd+1或Fl=Fl±2*Yd+1不变,扩展型在运行到坐标轴同向部分结束时由递推算式的+2多加1使修正值恢复为0,而收缩型同向部分由起步或换限预置开始通过对预置项运行中递推算式的+2多加1至该象限的极值点结束相当于Fl=Fl+(Xd或Yd的最大值),此时为对基准H进行负最大接近-0.5的修正,在该处应用Fl=Fl-(Xd或Yd)将Fl恢复到修正值为0的状态,准备进入螺旋线与其基圆走向不同的部分。对一个象限内螺旋线与其基圆走向不同的部分这里不进行长度偏差的修正,螺旋线的Fl与H变化相关的递推算式:当H±1时Fl=Fl-+2*H-1。对螺旋线的在直角坐标系下角度偏差的处理,根据代表螺旋线伸缩系数的基圆半径R(X、Y)的角度应与螺旋线被控动点至坐标原点(基圆中心)连线的极径H(Xd、Yd)角度相同Yd/Xd=Y/X的原则,取其差值Yd/Xd-Y/X再扩大X*Xd倍不影响偏差的正负即:Fa=X*Yd-Y*Xd,其递推公式为:当X±1时,Fa=Fa±Yd,当Yd±1时,Fa=Fa±X;当Y±1时,Fa=Fa-+Xd,当Xd±1时,Fa=Fa-+Y;对螺旋线的X、Y向极值点以对应轴向的导数为0求取,阿基米德螺旋线在直角坐标系下表示Xd、Yd的方程式为:Xd=R*(a+a0)*cos(a),Yd=R*(a+a0)*sin(a),dX/da=R*cos(a)-R*(a+a0)*sin(a),dX/da=0时dX/dy=0为X向极限值,此时R*cos(a)=R*(a+a0)*sin(a)得(a+a0)=ctan(a)其中(a+a0)=H/R,ctan(a)=X/Y即H/R=X/Y。在Y轴向dy/da=R*sin(a)+R*(a+a0)*cos(a),dy/da=0时dy/dx=0为Y向极限值,此时R*sin(a)=-R*(a+a0)*cos(a)得(a+a0)=-tan(a)因为通常(a+a0)为正值Y向极限值在2、4象限,其X、Y值的符号各异所以式中出现负号,这里取变量的绝对值计算故负号可忽略,得到H/R=Y/X,取其等式的R*Y或R*X倍为螺旋线的X、Y向极值点判别式,X轴向:Fj=H*Y-R*X,Y轴向:Fj=H*X-R*Y按此式进行偏差预置和判断Fj>0为螺旋线与基圆同向侧,Fj=0为螺旋线极值点,Fj<0为螺旋线与基圆异向侧,运行中以Fj递推运算结果的正负变换时为极值点,Fj递推算式:
当H±1时X向极值Fj=Fj±Y Y向极值Fj=Fj±X;
当X±1时X向极值Fj=Fj-+R Y向极值Fj=Fj±H;
当Y±1时X向极值Fj=Fj±H Y向极值Fj=Fj-+R;
对采用弧长H计数的渐伸线或阿基米德螺旋线,在H较大时可以使用渐伸线或螺旋线的曲线长度细分计数以辅助控制线长,是指对曲线长JJ参照圆弧长度的递推算法,取中间变量Hj1,当Xd±1时:Hj1+Yd,当Yd±1时:Hj1+Xd,当Hj1>=H时JJ±1,Hj1-H。
圆沿直线导轨滚动圆周上一点形成摆线轨迹,如图5所示,保证滚动的条件是圆周长度与直线长度始终相等,其圆周长度按上述修正方法计算,直线长度L的递推计算方法,取直线起点为直角坐标系的原点至终点的X、Y构成斜边为R的直角三角形,如图6所示,根据勾股定理R=sqrt(X2+Y2),R与X轴的夹角为a,cos(a)=X/R,sin(a)=Y/R,设定线长为L,取中间变量R倍L为RL,当X+1时:L=L+1*cos(a)=L+X/R,扩大R倍RL=RL+X,同理当Y+1时:L=L+1*sin(a)=L+Y/R,扩大R倍RL=RL+Y,若RL>=R则:RL-R,L±1,以此计算直线的线长L。与之相关的变幅摆线导轨线长Lg和其变幅系数M与动圆弧长Hd和其变幅系数N同步时Lg*M=Hd*N以Lg*M与Hd*N的大小交替运行。
圆内外及其变幅摆线,如图7所示,导轨圆弧长Hg和其变幅系数M与动圆弧长Hd和其变幅系数N同步时Hg*M=Hd*N以Hg*M与Hd*N的大小交替运行。正弦曲线,如图8所示,则依直线XLYL线长L与圆弧长H同步运行,即L2=Xl 2+Yl 2=H2定义其偏差判别式为Fl=Xl 2+Yl 2-H2以Fl的正负交替运行,取线的轴向分量与圆弧的垂直于轴向的振幅分量的组合轨迹。它们的圆弧长度H相关计算均采用上述的偏差预置和递推运算中修正的方法以确保曲线生成精度的要求。
4.常用曲线顺逆时针转动角度的处理方法
本系统设定:转角N输入时顺时针取正值逆时针取负值,构建于直角坐标系的常用曲线,其任意角度的转动是怎样实现的呢?这里采用了对非圆二次曲线之外的常用曲线在运行前的预置处理或编辑程序中,以曲线的坐标原点或另外的编辑中心点计算转动角度后的动点新坐标重置起点坐标,并根据新起点是否过象限等情况视需要更改运行指令的前期处理,然后在程序运行中通常按转动后的数据和指令运行即可。
二次曲线的转动,这里采用在转角N的绝对值大于90°时,对90*n部分用修改指令和n为奇数时将X、Y相关的数据互换的方式处理,之后对余下小于90°的a1=abs(N%90)部分,采用起步前按90*n转动后的标准曲线的X、Y值加转动a1后预置被控动点X′、Y′坐标,在运行中按90*n转动后的标准曲线的X、Y值进行偏差运算,对实际被控动点X′、Y′按标准X、Y进给量加与转角对应的位移分量的递推算法进行处理。即起步前依据新X、Y所在象限及N为顺逆时针转向X轴或Y轴,计算转动角度a1后被控动点X′Y′的坐标,如图9所示为:
X′=X*cos(a1)±Y*sin(a1),Y′=Y*cos(a1)-+X*sin(a1);
根据上式还可以算出没有转动a1前标准二次曲线上的某点与该曲线转动a1角度后该点于X向和Y向的位移分量为:dx=|X-X′|=X*(1-cos(a1))-+Y*sin(a1),dy=|Y-Y′|=Y*(1-cos(a1))±X*sin(a1);此位移量可以作为曲线运行中转动a1角度时递推运算的依据,当按标准曲线插补运算结果为:X±1或Y±1时对应转动a1角度,实际X′和Y′应移动的量为:
当X±1时:dx式中多出±(1-cos(a1))项,dy式中多出±sin(a1)项,此时X向位移应为:X′±(1-cos(a1)),Y向位移应为:Y′±sin(a1);
当Y±1时:dy式中多出±(1-cos(a1))项,dx式中多出-+sin(a1)项,此时Y向位移应为:Y′±(1-cos(a1)),X向位移应为:X′-+sin(a1);其中因a1是常量可在动点运行前的数据预置时算好三角函数值,以避免递推运算中解三角函数。为取整数运算,可将dx、dy和该三角函数值乘以固定系数(例如:10000)使其变为整数便于计算,这里设:A2=sin(a1)*10000,A3=(1-cos(a1))*10000,当X±1时:dx±A3,dy±A2,当Y±1时:dy±A3,dx-+A2,在当dx>=10000时X′+1,dx-10000或dy>=10000时Y′+1,dy-10000,在当dx<=10000时X′-1,dx+10000或dy<=10000时Y′-1,dy+10000,式中的正负运算符号应根据被控动点所处象限和其走向确定,这是本方法中对非圆二次曲线本身顺逆时针转动任意N角度时,使用的曲线轨迹中被控动点按标准偏差位移后加相应转角位移分量的递推运算方法。
5.常用曲线之间的光滑衔接及其平行线生成的方法:
常用非圆二次曲线、渐伸线和阿基米德螺旋线等同类及互相之间的光滑衔接及其平行线的生成和它们的平行线之间的光滑衔接的实现,是关系到该曲线能否真正成为计算机绘图或数控加工母线的关键问题。因为圆和直线的平行线及二线衔接问题,只要依据圆半径、线斜率设定或改变相应数据即可处理,属于初等数学范畴比较容易解决的课题。这也是它们在计算机绘图或数控加工领域得到广泛应用的一个重要原因。若实现上述其余的常用非圆曲线本身的生成,涉及到用简化的递推计算数学模型解决相当于高等数学范畴的微积分课题,同样若实现包括它们的平行线的生成及二线间的光滑衔接,也应该涉及到用简化的数学模型解决三角函数和微积分运算的课题。其中比较直观和相对容易解决的是以基圆的展开切线端点勾画的渐伸线,因为渐伸线的法线就是展开的基圆切线,而渐伸线某点的切线应与该点对应基圆切点的圆半径平行。这可由对渐伸线参数方程:X=Rcos(a)+Rasin(a),Y=Rsin(a)-Racos(a),求导:dx/da=Racos(a),dy/da=Rasin(a),dy/dx=tan(a),而tan(a)=Y0/X0,Y0/X0为基圆上对应点至圆心半径的斜率而得到证实。因此与生成渐伸线的平行线相关的法线角度等于对应的基圆切线的角度,与渐伸线端点衔接的其它曲线的端点切线角度应与渐伸线端点至其基圆的切点到圆心的基圆半径角度一致。其它二次曲线和阿基米德螺旋线的平行线生成及衔接问题相对较难,但同样可以靠建立简单的能进行三角函数和微积分递推运算的数学模型解决相关的课题,下面分别加以说明。
5.1抛物线的平行线生成及与其它曲线光滑衔接相关数学模型和方法
以焦点在Y轴开口向上的抛物线为例,如图10所示,其标准方程为:
X2=2PY求导:2X=2PY′即:Y′=X/P与该抛物线的X点对应的导数即切线角度为:a=atan(X/P),在抛物线端点的该角度即为该抛物线与其它曲线光滑衔接时应与其它曲线端点的切线一致的角度,在抛物线的平行线生成过程中也用到该角度。设其平行线与抛物线的垂直距离为M,则在抛物线X点作M长法线,该法线分量为:Mx=M*sin(a)My=M*cos(a)即:Mx/My=X/P则其平行线的角度偏差判别式为:Fb=Mx/My-X/P因实际判别时仅要求偏差的正负,为简化运算并提高精度故可将上式扩大P*My倍,即:Fb=Mx*P-My*X而平行线与原线的间距偏差判别式为:Fm=Mx2+My2-M2曲线运行时依据表示动点所处的象限和其走向的指令,由Fb的正负判断该走原线还是该走其平行线,再由Fm的正负判断该走平行线的X正负方向或Y正负方向。运行起步前的Fb和Fm偏差预置时按上述原式计算,Fm参照圆的偏差加Fm=Fm-My+Mx;或Fm=Fm+My-Mx修正,运行之中Fb和Fm均采用递推算法。(之后在抛物线转动角度后生成其平行线过程中Fm算式均不变)即:
当原线的X±1时:Fb=Fb-+My;
当其平行线的Mx±1时:Fb=Fb+-P;Fm=Fm±2*Mx+2;
当其平行线的My±1时:Fb=Fb-+X;Fm=Fm±2*My+2;
当抛物线转动角度N时与其平行线生成相关的Fb算式随之变化,如图11所示,如前述转角N输入时顺时针取正值逆时针取负值,对N的绝对值大于和等于90°的情况,对其90*n部分用修改指令和n为奇数时对换X、Y坐标数据等方法解决,抛物线导数的求取按转90*n部分处理后的标准状态进行,对余下小于90°的a1=abs(N%90)部分的处理方法为:在标准状态当焦点在Y轴取切线与X轴夹角为a值,a、Mx、X、My、Y均取正值,若抛物线上动点的切线方向与其焦点轴转角N方向相同,都处于奇或偶象限且a>=a1时:a-a1为抛物线转动后的X点切线相对X轴或法线相对于Y轴的夹角,该线转动a1角度后切点X至其法向等距点M的X、Y分量为:Mx=abs(M*sin(a-a1)),My=abs(M*cos(a-a1)),因tan(a)=X/P设tan(a1)=A,Mx/My=tan(a-a1)=(X/P-A)/(1+(X*A)/P)=(X-P*A)/(P+X*A)可设角度偏差判别式为:Fb=Mx/My-(X-P*A)/(P+X*A)将其扩大My*(P+X*A)倍正负结果不变为:Fb=Mx*P+Mx*X*A-My*X+My*P*A;---(1)
因角度a为在标准状态下Y焦轴抛物线上的X点切线相对于X轴的夹角,当转角a1=a时将X点切线转到与X轴平行,X点法线转到与Y轴平行的位置,此时Mx=0、My=M为抛物线转a1角度后,其平行线的Y向极值和My的换向点。
当抛物线动点的切线与焦点转角N方向相同都处于奇或偶象限且a<a1时:a1-a为X点切线相对于X轴或法线相对于Y轴的夹角,其法向等距点M转a1角度后X、Y分量为:Mx=abs(M*sin(a1-a)),My=abs(M*cos(a1-a)),也即:Mx/My=tan(a1-a)=(A-X/P)/(1+(X*A)/P)=(P*A-X)/(P+X*A)从而可设角度偏差判别式为:Fb=Mx/My-(P*A-X)/(P+X*A)将其扩大My*(P+X*A)倍正负结果不变为:Fb=Mx*P+Mx*X*A-My*P*A+My*X;---(2)
当切线与转角方向不同处异象限a+a1为抛物线转动后的X点切线相对于X轴或法线相对于Y轴的夹角,a+a1=90°与My=0为抛物线的平行线转动N后的X向极值点,即Mx走向变换点。a+a1<=90°时:切点X至法向等距点M转后的X、Y分量为Mx=abs(M*sin(a+a1)),My=abs(M*cos(a+a1))此时Mx/My=tan(a+a1)=(X/P+A)/(1-(X*A)/P)=(X+P*A)/(P-X*A)从而可设角度偏差判别式为:Fb=Mx/My-((X+P*A)/(P-X*A)取其扩大My*(P-X*A)倍正负结果不变:Fb=Mx*P-Mx*X*A-My*X-My*P*A;---(3)
当切线与转角方向不同处异象限a+a1>90°时:切点X至法向等距点M转后的X、Y分量为:Mx=abs(M*cos(a+a1-90)),My=abs(M*sin(a+a1-90)),因a+a1>90°tan(a+a1)本身为负值,而Mx和My为正值所以:Mx/My=-tan(a+a1)=-(X/P+A)/(1-(X*A)/P)=-(X+P*A)/(P-X*A)从而可设角度偏差判别式为:Fb=Mx/My+(X+P*A)/(P-X*A)其扩大My*(P-X*A)倍正负值不变:Fb=Mx*P-Mx*X*A+My*X+My*P*A;---(4)
运行起步前的Fb和Fm偏差预置时按上述原式计算,Fm参照圆的偏差加Fm=Fm-My+Mx;或Fm=Fm+My-Mx修正,运行之中Fb和Fm也采用递推算法以(1)式为例。即:
当原线的X±1时:Fb=Fb+-Mx*A-+My;
当其平行线的Mx±1时:Fb=Fb+-P+-X*A;Fm=Fm±2*Mx+2;
当其平行线的My±1时:Fb=Fb-+X+-P*A;Fm=Fm±2*My+2;
因本系统的变量Mx、X、My、Y均取绝对值进行运算,角度a也是取其相对于X轴的夹角,故在偏差运算方面Y焦轴上下开口的抛物线算式可以原点对称通用。但其平行线Mx和My走向,依动点所在象限和指令及偏差的正负进行不同判定,并且在Mx=0和My=M或Mx=M和My=0时,变更Mx或My的走向,并进行不含Mx=0或My=0项的偏差再预置。
同理要生成焦点在X轴的抛物线的平行线或与其它曲线光滑衔接,对其方程Y2=2PX求导:2Y=2PX′即:X′=Y/P与该抛物线的Y点对应的导数即切线角度为:a=atan(Y/P),因此角度为相对于Y轴的角度,其端点相对于X轴的该角度90-a是与其它曲线光滑衔接时与其端点切线一致的角度。作抛物线的平行线时,设平行线与抛物线的垂直距离为M,则在抛物线Y点作M长法线,该法线分量为:Mx=M*cos(a)My=M*sin(a)即:My/Mx=Y/P也可推导出相应的一组Fb和Fm偏差判别式及简化的递推算式(推导从略)。
焦点在X轴上无转动的抛物线平行线相关的偏差判别式:
Fb=My*P-Mx*Y,Fm=Mx2+My2-M2,再进行Fm±Mx-+My的修正。
运行之中Fb和Fm均采用递推算法。即:
当原线的Y±1时:Fb=Fb-+Mx;
当其平行线的Mx±1时:Fb=Fb-+Y;Fm=Fm±2*Mx+2;
当其平行线的My±1时:Fb=Fb+-P;Fm=Fm±2*My+2;
焦点在X轴有转动N(顺时针为正),a=atan(Y/P),a1=abs(N%90),A=tan(a1),间距为M的抛物线平行线偏差判别式(推导从略)Fm不变,Fb以a=a1或a+a1=90及Mx=0或My=0的极值点为界分为4种算式,并变换极值点相关Mx或My走向:
a>=a1:Mx=M*cos(a-a1)My=M*sin(a-a1)
Fb=My*P+My*Y*A-Mx*Y+Mx*P*A;---(5)
a<a1:Mx=M*cos(a1-a)My=M*sin(a1-a)
Fb=My*P+My*Y*A+Mx*Y-Mx*P*A;---(6)
a+a1<=90°:Mx=M*cos(a+a1)My=M*sin(a+a1)
Fb=My*P-My*Y*A-Mx*Y-Mx*P*A;---(7)
a+a1>90°:Mx=M*sin(a+a1-90°)My=M*cos(a+a1-90°)
Fb=My*P-My*Y*A+Mx*Y+Mx*P*A;---(8)
这也是程序运行前或程序运行中需要变换算式时抛去某个带有0变量项的偏差预置算式,运行之中Fb和Fm也采用递推算法以(5)式为例:
当原线的Y±1时:Fb=Fb+-My*A-+Mx;
当其平行线的Mx±1时:Fb=Fb-+Y+-P*A;Fm=Fm±2*Mx+2;
当其平行线的My±1时:Fb=Fb+-P+-Y*A;Fm=Fm±2*My+2;
其Fb判别式也可以作成Fb=X/P-Mx/My或Fb=Y/P-My/Mx的形式,此时与其相关的逻辑判别关系也要相应的正负反向。
5.2双曲线的平行线生成及与其它曲线光滑衔接的数学模型和方法
双曲线的标准方程为(焦点在X轴):X2/A2-Y2/B2=1(焦点在Y轴):Y2/B2-X2/A2=1,如图12所示,求导:2X/A2-2YY′/B2=0或2YY′/B2-2X/A2=0即:Y′=B2X/A2Y双曲线的导数即切线斜率为:B2X/A2Y,与该切线对应的角度为:a2=atan(B2X/A2Y),在双曲线端点的该角度即为该双曲线与其它曲线光滑衔接时应与其它曲线的端点的切线一致的角度。而与该切线垂直的法线角度取正值为:a=atan(A2Y/B2X),在双曲线的平行线生成方面,设其平行线与双曲线的垂直距离为M,则在双曲线上一点作M长法线,该法线X、Y分量为:Mx=M*cos(a)My=M*sin(a)即:A2Y/B2X=My/Mx则其平行线的角度偏差判别式为:Fb=A2Y/B2X-My/Mx因实际判别时仅要求偏差的正负,为简化运算并提高精度,因X、Y、Mx、My运算中取绝对值,故可在Fb等式两侧乘B2XMx用:Fb=Mx*A2*Y-My*B2*X取代前式。而平行线与原线的间距偏差判别式为:Fm=Mx2+My2-M2曲线运行时依据表示动点所处的象限和其走向的指令,由Fb的正负判断该走原线还是该走其平行线,再由Fm的正负判断该走平行线的X正负方向或Y正负方向。运行起步前的Fb和Fm偏差预置时按上述原式计算,Fm参照圆的偏差加Fm=Fm-My+Mx;或Fm=Fm+My-Mx修正,运行之中Fb和Fm参照圆的修正递推算法为(Fm相关的判别式及其修正和递推算式在之后的转角处理时不变):
当原线的X±1时:Fb=Fb-+My*B2
当原线的Y±1时:Fb=Fb+-Mx*A2
当其平行线的Mx±1时:Fb=Fb+-A2*Y;Fm=Fm±2*Mx+2;
当其平行线的My±1时:Fb=Fb-+B2*X;Fm=Fm±2*My+2;
当双曲线转动角度N时其平行线生成的Fb算式也应随之变化,如图13所示,如前述转角N输入时顺时针取正值逆时针取负值,对N的绝对值大于和等于90°的情况,对其90*n部分用修改指令和n为奇数时对换X、Y坐标数据等方法解决,双曲线导数的求取按转90*n部分处理后的标准状态进行,对余下小于90°的a1=abs(N%90)部分的处理方法为:在标准状态取法线与X轴夹角为a值,角度a、Mx、My、X、Y均取正值。若转角a1使双曲线对应线段靠向Y轴则其法线转向X轴,当a>=a1时:a-a1为双曲线转动a1后其法线相对X轴夹角,该法线X、Y分量为:Mx=abs(M*cos(a-a1)),My=abs(M*sin(a-a1)),设C=tan(a1),tan(a-a1)=((A2*Y)/(B2*X)-C)/(1+(A2*Y)/(B2*X)*C)=(A2*Y-B2*X*C)/(B2*X+A2*Y*C)=My/Mx,从而可设角度偏差判别式为:Fb=(A2*Y-B2*X*C)/(B2*X+A2*Y*C)-My/Mx;其简化判别式为:Fm不变,Fb=Mx*A2*Y-Mx*B2*X*C-My*B2*X-My*A2*Y*C;式中因A2、B2、C均为常数故可设:C1=A2、C2=B2*C、C3=B2、C4=A2*C这样上式可以简化为:Fb=Mx*C1*Y-Mx*C2*X-My*C3*X-My*C4*Y;---(9)
当a=a1与My=0时为平行线X向极值点,即Mx走向变换点。
当a<a1时:a1-a为双曲线转动后其法线相对X轴的角度,该法线X、Y分量为:Mx=abs(M*cos(a1-a)),My=abs(M*sin(a1-a))设C=tan(a1);tan(a1-a)=(C-(A2*Y)/(B2*X))/(1+(A2*Y)/(B2*X)*C)=(B2*X*C-A2*Y)/(B2*X+A2*Y*C)=My/Mx;从而可设角度偏差判别式为:
Fb=(B2*X*C-A2*Y)/(B2*X+A2*Y*C)-My/Mx;其简化判别式为:
Fb=Mx*C2*X-Mx*C1*Y-My*C3*X-My*C4*Y;---(10)
若转角a1使双曲线对应线段靠向X轴则其法线转离X轴,使该法线相对X轴的角度加大,即:a+a1为双曲线转动后法线相对X轴的角度,a+a1=90°与Mx=0为平行线Y向极值点,即My走向变换点。
当a+a1<=90°时:该法线的X、Y分量为:Mx=abs(M*cos(a+a1)),My=abs(M*sin(a+a1)),设C=tan(a1),tan(a+a1)=((A2*Y)/(B2*X)+C)/(1-(A2*Y)/(B2*X)*C)=(A2*Y+B2*X*C)/(B2*X-A2*Y*C)=My/Mx;从而可设角度偏差判别式为:Fb=(A2*Y+B2*X*C)/(B2*X-A2*Y*C)-My/Mx;其简化判别式为:
Fb=Mx*C1*Y+Mx*C2*X-My*C3*X+My*C4*Y;---(11)
当a+a1>90°时:该法线的X、Y分量为:Mx=abs(M*sin(a+a1-90°)),
My=abs(M*cos(a+a1-90°)),设C=tan(a1),还因a+a1>90°tan(a+a1)本身为负值,而Mx和My为正值所以:My/Mx=-tan(a+a1)=-((A2*Y)/(B2*X)+C)/(1-(A2*Y)/(B2*X)*C)=-(A2*Y+B2*X*C)/(B2*X-A2*Y*C)=My/Mx;从而可设角度偏差判别式为:Fb=(A2*Y+B2*X*C)/(B2*X-A2*Y*C)+My/Mx;其简化判别式为:
Fb=Mx*C1*Y+Mx*C2*X+My*C3*X-My*C4*Y;---(12)
运行起步前的Fb和Fm偏差预置时按上述原式计算,Fm参照圆的偏差加Fm=Fm-My+Mx;或Fm=Fm+My-Mx修正,运行之中Fb和Fm也采用递推算法以(9)式为例。即:
当原线的X±1时:Fb=Fb-+Mx*C2-+My*C3;
当原线的Y±1时:Fb=Fb+-Mx*C1-+My*C4;
当其平行线的Mx±1时:Fb=Fb+-C1*Y-+C2*X;Fm=Fm±2*Mx+2;
当其平行线的My±1时:Fb=Fb-+C3*X-+C4*Y;Fm=Fm±2*My+2;
因本系统的变量Mx、X、My、Y均取绝对值进行运算,角度a也是取双曲线上点至其平行线的法线相对于X轴的夹角,故在偏差运算方面X焦轴左右开口的双曲线算式可以原点对称通用。而且焦点在Y轴的双曲线的平行线其法线角度和平行线与原线间距的偏差判别公式也可以通用。但其平行线Mx和My走向,依动点所在象限和指令及偏差的正负进行不同判定,并且在Mx=0和My=M或Mx=M和My=0时,变更Mx或My的走向和进行不含Mx=0或My=0项的偏差再预置。
双曲线Fb判别式也可作成Fb=My/Mx-A2Y/B2X或Fb=Mx/My-B2X/A2Y等形式,此时与其相关的逻辑判别关系也要相应的正负反向。
5.3椭圆的平行线生成及与其它曲线光滑衔接的数学模型和方法
椭圆的标准方程为:X2/A2+Y2/B2=1,如图14所示,求导:2X/A2+2YY′/B2=0,Y′=-B2X/A2Y是椭圆上点切线的斜率,在椭圆弧的端点处a2=atan(B2X/A2Y),a2应该是与其它曲线光滑衔接时二线端点切线一致的角度。而与其平行线相关的法线的斜率为A2Y/B2X,该法线相对于X轴的夹角为:a=atan(A2Y/B2X),在椭圆的平行线生成方面,设其平行线与椭圆的垂直距离为M,则在椭圆内外M长法线的X、Y分量为:Mx=M*cos(a)My=M*sin(a)即:A2Y/B2X=My/Mx则其平行线的角度偏差判别式为:Fb=A2Y/B2X-My/Mx因实际判别时仅要求偏差的正负,为简化运算并提高精度故可将等式两侧乘B2XMx用:Fb=Mx*A2*Y-My*B2*X取代。而平行线与原线的间距偏差判别式为:Fm=Mx2+My2-M2上式与双曲线的法线角度偏差和间距偏差判别式完全相同,但在动点走向判断时依据各自的指令和偏差判别的结果决定有所区别。运行起步前的Fb和Fm偏差预置时按上述原式计算,Fm参照圆的偏差加Fm=Fm-My+Mx;或Fm=Fm+My-Mx修正,运行之中Fb和Fm参照圆的修正递推算法。(之后与椭圆转角平行线相关的Fm算式均不变)即:
当原线的X±1时:Fb=Fb-+My*B2
当原线的Y±1时:Fb=Fb+-Mx*A2
当其平行线的Mx±1时:Fb=Fb+-A2*Y;Fm=Fm±2*Mx+2;
当其平行线的My±1时:Fb=Fb-+B2*X;Fm=Fm±2*My+2;
当椭圆转动角度N时其平行线的生成相关Fb算式也应随之变化,如图15所示,如前述转角N输入时顺时针取正值逆时针取负值,对N的绝对值大于和等于90°的情况,对其90*n部分用修改指令和n为奇数时对换X、Y坐标数据等方法解决,椭圆导数的求取按转90*n部分处理后的标准状态进行,对余下小于90°的a1=abs(N%90)部分的处理方法为:在标准状态取法线与X轴夹角为a值,角度a、Mx、My、X、Y均取正值。若a1转角使椭圆的法线转向X轴,当a>=a1时:a-a1为椭圆转动后其法线与X轴的夹角,该法线的X、Y分量为:Mx=abs(M*cos(a-a1)),My=abs(M*sin(a-a1)),设C=tan(a1);tan(a-a1)=((A2*Y)/(B2*X)-C)/(1+(A2*Y)/(B2*X)*C)=(A2*Y-B2*X*C)/(B2*X+A2*Y*C)=My/Mx;设角度偏差式为:Fb=(A2*Y-B2*X*C)/(B2*X+A2*Y*C)-My/Mx其简化判别式为:Fb=Mx*A2*Y-Mx*B2*X*C-My*B2*X-My*A2*Y*C;式中因A2、B2、C均为常数故可设:C1=A2、C2=B2*C、C3=B2、C4=A2*C这样上式可以简化为与双曲线法线与X轴夹角为a-a1时相同的算式:Fb=Mx*C1*Y-Mx*C2*X-My*C3*X-My*C4*Y;---(9)
经分析在椭圆角度转动后,当a<a1或当a+a1<=90°及a+a1>90°时的平行线上点与其原线法向对应点的角度偏差和间距偏差判别式也可与双曲线的相应的Fb判别式共用。
Fb=Mx*C2*X-Mx*C1*Y-My*C3*X-My*C4*Y;---(10)
Fb=Mx*C1*Y+Mx*C2*X-My*C3*X+My*C4*Y;---(11)
Fb=Mx*C1*Y+Mx*C2*X+My*C3*X-My*C4*Y;---(12)
但曲线运行时依据表示动点所处的象限和其走向的指令,由Fb的正负判断该走原线还是该走其平行线,再由Fm的正负判断该走平行线的X正负方向或Y正负方向的逻辑关系则是不同的。运行起步前的Fb和Fm偏差预置时按上述原式计算,Fm参照圆的偏差加Fm=Fm-My+Mx;或Fm=Fm+My-Mx修正,运行之中Fb和Fm也采用递推算法以(10)式为例。即:
当原线的X±1时:Fb=Fb+-Mx*C2-+My*C3;
当原线的Y±1时:Fb=Fb-+Mx*C1-+My*C4;
当其平行线的Mx±1时:Fb=Fb+-C2*X-+C1*Y;Fm=Fm±2*Mx+2;
当其平行线的My±1时:Fb=Fb-+C3*X-+C4*Y;Fm=Fm±2*My+2;
在Mx=0和My=M或Mx=M和My=0时,变更Mx或My的走向和进行不含Mx=0或My=0项的偏差再预置。
椭圆Fb判别式也可作成Fb=My/Mx-A2Y/B2X或Fb=Mx/My-B2X/A2Y等形式,此时与其相关的逻辑判别关系也要相应的正负反向。
5.4阿基米德螺旋线的性质及其平行线生成和与其它曲线衔接的方法
如前所述H=R*(a+a0)的外端点描绘的轨迹就是阿基米德螺旋线,其中H为极径长度变量,R为伸缩系数常量,a为以X轴正向起的转角变量,a0为H=0时极轴与X轴正向的初始夹角常量。经分析得出:阿基米德螺旋线具有从其极点起垂直于极径向曲线的展开方向作伸缩系数R长线段,再由该线段R的外端点向极径H生成螺旋线处的端点作射线,该射线就是此点螺旋线的法线,该法线与极径的锐夹角C=atan(R/H或1/(a+a0))为R/H或极角倒数的反正切值,而该螺旋线的切线与极径的锐夹角是C的余角,并且该余角的正切值与其极角的弧度值相等,即tan(90-C)=(H/R或a+a0)的性质。如图16所示,此性质可以由前述的在轴向极值点处H/R=Y/X或H/R=X/Y,即该处螺旋线的法线或切线与极径的夹角等于极径与X或Y坐标轴的夹角,因为过极值点的法线或切线均与坐标轴平行的推导结果得以证实,也说明螺旋线的极值点是符合其性质的特例。该极值点均不在坐标轴上,同一条螺旋线距原点或极点越远过极值点的极径H与直角坐标轴的夹角越小,法线与极点或坐标原点的垂直距离等于R*cos(C)。而在螺旋线的非极值点处,其法线或切线与直角坐标轴的夹角,也应该是其法线或切线与极径的夹角同极径与坐标轴夹角的和或差。
阿基米德螺旋线的平行线应是其法向等距点的集合,而螺旋线要与其它曲线光滑衔接就应该在衔接点处二曲线的切线角度相等,欲作其平行线或与其它曲线光滑衔接就应该得到其相应点法线或切线与坐标轴的夹角,如图17所示,由上述螺旋线的性质中得到其法线与极径H的锐夹角C=atan(R/H),其切线与极径的锐夹角是C的余角,而极径与坐标轴的锐夹角视不同象限和走向为:a1=(atan(Y/X)或atan(X/Y)),螺旋线与其它曲线光滑衔接用其切线与坐标轴的夹角a2视不同象限和走向为:a2=90-C±a1角度值。在生成螺旋线的平行线相关的被控动点与其母线的距离和角度复合判别式中,其间距偏差判别公式与其它曲线的相同为:Fm=Mx2+My2-M2运行起步前的Fm偏差预置时按上述原式计算,同时参照圆的偏差加Fm=Fm-My+Mx;或Fm=Fm+My-Mx修正,在保证法向角度准确方面,需用到其法线与直角坐标轴夹角的连续变量,从而涉及三角和差的递推运算说明如下:
第一象限逆时针走向在X极值点下方属于螺线与基圆异向段,以延伸型螺旋线为例,因为在极值点上其法线与X轴平行,极值点下方的法线与极径的夹角大于极径与坐标轴的夹角,此时坐标轴与螺旋线法线的夹角为C-a1,该夹角的正切值为:tan(C-a1)=(R/H-Y/X)/(1+RY/HX)=(RX-HY)/(HX+RY),在其法线上设与螺旋线等距点M,螺旋线至M连线的X、Y分量为Mx和My,理论上(RX-HY)/(HX+RY)=My/Mx,设M连线与法线的角度偏差判别式为:
Fb=(RX-HY)/(HX+RY)-My/Mx=R*X*Mx-H*Y*Mx-H*X*My-R*Y*My;---(13)
同象限逆时针走向在X极值点上方属于螺旋线与基圆同向段,延伸型的螺旋线,其极径与X轴夹角大于极径与法线的夹角,这时取tan(a1-C)=(Y/X-R/H)/(1+RY/HX)=(HY-RX)/(HX+RY)为基准正切值,此时角度偏差判别式为:
Fb=(HY-RX)/(HX+RY)-My/Mx=H*Y*Mx-R*X*Mx-H*X*My-R*Y*My;---(14)
第二象限逆时针走向在Y极值点右方属于螺旋线与基圆异向段,延伸型的螺旋线,其极径与法线夹角大于极径与Y轴的夹角,其法线与Y轴夹角的正切值为:tan(C-a1)=(R/H-X/Y)/(1+RX/HY)=(RY-HX)/(HY+RX)。同样在其法线上设与螺旋线等距点M,螺旋线至M连线的X、Y分量为Mx和My,理论上(RY-HX)/(HY+RX)=Mx/My,设M连线与法线的角度偏差判别式为:
Fb=(RY-HX)/(HY+RX)-Mx/My=R*Y*My-H*X*My-H*Y*Mx-R*X*Mx;---(15)
同象限逆时针走向在Y极值点左方属于螺旋线与基圆同向段,延伸型的螺旋线,其极径与Y轴夹角大于极径与法线的夹角,这时取tan(a1-C)=(X/Y-R/H)/(1+RX/HY)=(HX-RY)/(HY+RX)为基准正切值,此时角度偏差判别式为:
Fb=(HX-RY)/(HY+RX)-Mx/My=H*X*My-R*Y*My-H*Y*Mx-R*X*Mx;---(16)
运行之中Fb和Fm也采用递推算法以(13)式为例。即:
当原线的X±1时:Fb=Fb+-R*Mx-+H*My;
当原线的Y±1时:Fb=Fb-+H*Mx-+R*My;
当原线的H±1时:Fb=Fb-+Y*Mx-+X*My;
当其平行线的Mx±1时:Fb=Fb+-R*X-+H*Y;Fm=Fm±2*Mx+2;
当其平行线的My±1时:Fb=Fb-+H*X-+R*Y;Fm=Fm±2*My+2;
曲线运行时依据表示动点所处的象限和其走向的指令,由Fb的正负判断该走原线还是该走其平行线,再由Fm的正负判断该走平行线的X正负方向或Y正负方向。针对X=0、Y=0、Mx=0、My=0等情况,运行中需要变换象限和走向并对Fb进行缺项预置。
另外三、四象限与一、二象限对称,并且顺时针转向延伸型的螺旋线及顺逆时针转向收缩型的螺旋线,与上述对应极值方向和基圆与螺旋线的走向同异线段的角度偏差判别式相同可以共用,其间距偏差判别公式完全共用,但对不同象限,不同转向及延伸或收缩类型的线段,应依其表示动点所处的象限和其走向的指令,由Fb的正负判断该走原线还是该走其平行线,再由Fm的正负判断该走平行线的X正负方向或Y正负方向。同样针对X=0、Y=0、Mx=0、My=0等情况,运行中需要变换象限与走向并对Fb进行缺项预置。阿基米德螺旋线的本身及其平行线顺逆时针转动角度的处理,是在程序运行前的偏差预置中进行的,与运行中的角度和平行线间距的偏差判别运算无关。
6.数控编存解码方法
目前的数控设备都是根据用户输入或根据要求自行编制的G代码等用户程序,顺序地对构成整体的每一段曲线由起点开始逐步进行即时的被控动点偏差计算,依据计算结果和当前指令作出动点走向的判断,再向驱动执行机构发出运行指令,执行机构依据该指令运行(闭环系统同时返回运行数据供比较)。遇到二线段交替时还要等待后段程序的数据和偏差预置操作,周而复始插补出要求的图形。这种方法一则前后步之间的预置、计算和判别需要时间,影响速度,二则由于依据即时插补运算偏差结果的单轴向移动动作,在原本光滑的线段内产生并非理想的微观阶梯状态。若能将全部插补运算的过程放在整个控制运行开始之前的其它时间或另外设备进行,仅存储插补的结果需要时用来驱动数控执行机构,就可以节省即时插补运算的时间加快设备运行速度,若再将插补结果的几步组合起来分段同步运行,即可由一段段顺应曲线走向的微观折线取代交替单步运行的阶梯状态,如图18所示。鉴于以上分析,这里采用在要求的曲线或图形绘制编辑完成后,在本系统内通过对话框给出根据需要设定的二轴叠加同步进给步距数即每段步数(本系统中取值范围设为1至6)和数控编码指令,启动该曲线或图形的重绘过程,其中分别累计各轴向走行的方向和步数,当二轴合计步数大于或等于设定步距时,将此累计数据按轴向分别存储于一个字节的低4位和高4位,每4位的最高位代表正负走向,其余3位代表同步进给的步数(1至7步),存储后进行移位处理,等待继续存储下一段落的累计数据,当一条线段至终点时将剩余的可能还不满足设定段落的累计数据也进行存储,完成该条曲线数据存储后,连续进行下一条曲线进给数据的采集累计和存储,直至整个图形重绘完成时结束数据存储。这样通常计算机中每个字4字节,若段落步距设为6的话可存储约24步插补结果的进给数据。使用时调出并顺序按字节读取该数据,以每字节的4与8位的0或1状态分别确定X与Y轴的走向,以1至3位与5至7位分别确定X与Y轴同步进给的步数,用以同时驱动速度与步距正比的二轴同步进给机构,即可得到顺应曲线路径的连续折线段,从而可以消除原折线位置的微观阶梯状态,实现不需即时插补的数控设备驱动新方法。此方法对一或多条各种曲线构成的简繁图形均可进行编存解码处理,自动生成一套连续完整的数据及图形。并且在本系统中还可以将编制完成的一套数据及将存储本套数据的编号、字节数和起始坐标作为一种新线型和其它曲线类似地存储于系统的硬盘,需要时可以一种线型的形式随时调出。另外还可以在每完成一个字(4字节)或几个字的数据编制时分别存储图形生成中被控动点的X、Y坐标值,该坐标值可用于分段编制现行数控设备的以直线段拟合曲线的G代码等用户程序。
7.复合插补法系统软件的用户程序内容及指令表
用户程序内容及指令表的说明:其运行指令定义的原则是:直线以其起点为坐标原点,依该直线的走向所处的象限定义其指令1-4。而圆的1-4象限顺时针旋转的指令定为1-4,其1-4象限逆时针旋转的指令为5-8。二次曲线比拟圆弧的走向假设圆心在弧的包围处,对向其坐标原点方向运行的线段取1-8定义指令,对背离其坐标原点方向运行的线段取11-18定义指令。渐伸线则分为扩张型或收缩型2种情况处理,对扩张型以其展开切线在基圆上切点所在象限和顺逆走向按圆的1-4或5-8确定指令,对收缩型以其展开切线在基圆上切点所在象限和顺逆走向按圆的1-4或5-8并在其前面加2即:21-24或25-28确定其指令。阿基米德螺旋线的极坐标方程为H=R*C说明它也存在一个表示其极径H依极角C扩缩的系数R常量,即一个半径为R的基准圆,并且极径与其基准圆的对应点是同步运行状态,但阿螺线在直角坐标系下的极值点并不在坐标轴上,根据其这种特性我们将阿螺线的一周定义为8段,其中4段与其基圆的走向一致的可以类比顺圆或逆圆定义为1-4或5-8,另4段与其基圆的走向不一致的部分,仍可参照其所在的基圆象限和顺逆将其定义为11-14或15-18,另外阿螺线也存在扩张或收缩的状态,前面的定义可以用于扩张型,而对于收缩型4段与其基圆的走向一致的可以类比顺圆或逆圆定义为21-24或25-28,另4段与其基圆的走向不一致的部分,仍可参照其所在的基圆象限和顺逆将其定义为31-34或35-38。正弦曲线和摆线属于圆线2种曲线同步运行复合生成的曲线,因此其指令也按圆线分别在运行指令和辅助指令中赋予。渐伸线和阿基米德螺旋线的辅助指令栏内的曲补计数是针对曲线终点在远离基圆的状态时,对以基圆弧长计数H至H+1的范围内进一步按曲线长度细分的补充计数形式,平时设为0表示不用补充细分,需要时设定该范围内的补充曲线长度数值。位置坐标指圆弧的圆心、直线的起点、二次曲线的坐标原点、正弦曲线或摆线的分解圆心、渐伸线或阿基米德螺旋线的基圆中心、点的坐标及数控数据的起始线段的前述位置坐标。基础起点指圆相对圆心的起点坐标、直线相对起点的终点坐标或直线的斜率、二次曲线相对其原点的起点坐标、正弦曲线或摆线的分解圆相对其圆心的起点坐标、渐伸线或阿基米德螺旋线的基圆上相对其中心的起点坐标。轴焦动起指椭圆的长短轴系数AB、双曲线的实虚轴系数AB、抛物线的焦点轴参数PxPy、渐伸线的被控动点相对其基圆切点的起始坐标、阿基米德螺旋线的被控动点相对其基圆中心的起始坐标、正弦曲线或圆线摆线分解的导向线由其起始圆心至终点圆心的坐标值或导向线的斜率、圆圆摆线为滚动圆起点相对基圆起点的坐标值。计数长度这里对直线取其起点至终点线长、二次曲线取其曲线路径对应的X+Y坐标值之和、圆弧、摆线或正弦曲线取起点至终点的圆弧长、渐伸线或阿基米德螺旋线取基圆终点对应的由0算起的展开基圆弧长绝对值计数。绘图比例为绘制图形与输入数据的缩小比例系数。刀补为设定的曲线与其内外平行线的±距离其中直线以其起点至终点的顺时针方向为正逆时针为负值、转角以最新另设定的点坐标或整个图形首条曲线的位置坐标或本曲线的位置坐标(优先权依次递减)为中心,顺时针方向为正逆时针为负的转动角度值。变幅系数仅针对两种摆线的导轨与动圆弧线长按比例吻合时乘各自的比例系数。再者这里将点(代码10)也作为一种线型,它只包含X、Y二个坐标位置参数,主要在图形编辑中将最新输入的点坐标作为对称、回转、扩缩等操作的参考基准及作点与各种曲线关系的点输入。还有数控数据(代码11)它包含一个可由多条曲线构成完整图形的数控数据存储信息,其中X、Y代表图形的起始位置,B代表图形数据的存储字数,M=1代表数据调出状态,M=0为数据存储状态,N代表数据的存储目录编号。在本用户程序中除双曲线的实虚轴系数±A±B及±M刀补量和±N°转动角度为正负整数之外,其余需要输入的数值均为正整数。
8.用本方法作成了具有绘图编辑数控编码等多功能的系统软件
应用本方法采用VC语言作成了在计算机绘图、辅助教学和数控加工等方面具有许多原创性新功能和新特点配有方便使用窗口的实用系统软件。该系统软件在数字图形学领域不仅理想地实现了对渐伸线、阿基米德螺旋线、圆内外摆线、圆线摆线、正余弦曲线、双曲线、椭圆、抛物线、直线和圆弧等曲线的直接插补生成。而且还实现了对渐伸线、阿基米德螺旋线、双曲线、椭圆、抛物线、直线和圆弧等常用曲线的内外任意间距平行线的直接插补生成和这些曲线及其平行线的光滑衔接,及对曲线或图形进行任意参数的平移、对称、旋转、阵列、扩缩、倒退、复制、粘贴、剪切、延伸、衔接、储存、删除、恢复、调出及选择部分图形的编辑或定点及组合编辑,达到了以它们为母线作出比仅用圆弧和直线难以实现的多种图形的目地。在用户使用方面:它不仅可以将前述的用户程序通过窗口对话框输入绘图,还可以通过点击本系统软件用户窗口中的各种曲线或简图标志,然后用鼠标在屏幕上拖动或点击2-3点再点右键即可生成所要的曲线或图形,还可以通过曲线方程参数输入对话框输入所要曲线的相关参数也可生成所要的图形。对无论用哪种输入方式作出的曲线或图形,本系统都可以自动生成用户程序的目录,通过点击主菜单的线形编辑和程序目录选项可以显示目录中全部用户程序内容,再通过曲线编辑对话框可以对用户程序内容进行修改或删除及插入新的用户程序段。在辅助教学方面:本系统具有可以方便地作出这些曲线的辅助线,计算和显示它们的特性参数和方程式,并可以作出常用曲线任意点的切线、法线和平行线,求出和显示直线与曲线的交点等功能。在工业加工方面:本系统具有对各种参数的标准渐伸线齿轮进行含正负任意距离刀补量的自动编程和控制加工功能,还具有对各种参数的标准阿基米德螺旋线棘轮进行含正负任意距离刀补量的自动编程和控制加工功能,并且本系统能够兼容输入目前国际通用的数控加工G代码程序的功能。本系统软件还包含了前述首创的数控编存解码功能,即可对由本系统绘制和编辑后的任何曲线或图形,根据用户设定的步距和编辑指令,启动图形重绘过程,并同时依据前述方法编制和存储快速自动生成的数控数据,而且还可以显示由该数据中每段落节点构成的图形。这种方法的采用不仅可以提高数控执行机构的运行速度、改善数控进给的微观阶梯状态和动态中的机械冲击现象使设备运行趋于速度均匀平稳,并能因为简单的解码方法而简化数控执行机构的控制系统。本系统还可同时存储数控编码中均匀生成的系列图形轨迹中的相关坐标点数据,并用该数据自动编制可用于现有数控设备的G代码等用户程序,具备给现有数控设备作编程器的功能。
9.本方法及其系统软件的优点和积极效果:
本方法及其系统软件是在计算机图形学领域的核心技术里的一项较大的具有突破性和前瞻性的创新成果。在科研和教学方面,这些可以直接插补生成的曲线几乎涵盖了解析几何中常用的曲线范围,输入相关的数学方程式的参数即可生成其对应的图形,还可计算和显示用3点或其它方式输入生成的曲线对应的参数,并可计算和显示曲线相关的切线和法线及直线与曲线的交点坐标,是直观学习解析几何的难得帮手,这些图形生成的本身也是对数字和图形关系的由常量到变量,由勾股定理到微积分应用的范例,对研究和学习这些曲线轨迹相关的内容会起到前所未有的帮助。在计算机图形绘制方面,图形和文字是人类文明的起源,这种方法和系统软件为我们增加了许多曲线绘制的基本功能,它的应用不仅可以轻松地绘制出先前难以实现的曲线,而且可以轻易地画出常用曲线的平行线及理想地进行常用曲线及其平行线的光滑衔接,并由多种曲线组合生成先前难以绘制的各种优美图形。在工业设计和数控加工方面,它可以使平面或空间的图形设计和数控加工方法摆脱属于纯机械加工时代的直线和圆弧的束缚,让常用非圆曲线摆脱拟合的误差。可给工艺品的设计和加工增添新手段、服饰设计可以采用更多曲线,印染和刺绣增加新图案。现有的直线和圆弧插补的方法可以由平面扩展到空间,本系统的所有常用曲线及其平行线的插补方法同样可以由平面扩展到空间,也可以探讨将其与曲线和曲面的测绘及3D打印雕刻结合制作出更新颖的曲面部件,为类似动物、人体、骨骼等仿生学相关复杂的造型设计和数控加工提供新的方法。本系统的数控编存解码技术应该是数控设备驱动概念的更新,它不仅可以让数控设备的执行机构省略插补运算的过程,提高运行速度,而且改进数控设备运行中的微观冲击现象。进而从设计理念经多种曲线的插补绘制自动数控代码编制到解码加工的全新过程应该逐步取代现有的设计和加工方法。使雷达天线、航空飞机、航天火箭、水下舰艇等行业需要的从整体外形到特殊形状部件由设计到加工均可产生一个质的进步。可对涉及数字轨迹控制相关众多领域的技术进步产生较大的推进作用。
10.附图说明:
本说明带有18幅附图,其中图1为常规插补方法生成的圆弧轨迹偏离基准相对坐标轴不对称示意图,图2为本复合插补法采用自变量偏差修正法规正圆弧轨迹和采用微切线累计递推计算弧长示意图,图3为渐伸线示意图,图4为阿基米德螺旋线示意图,图5为变幅摆线生成原理示意图,图6为直线线长累计递推计算示意图,图7为圆内外变幅摆线生成示意图,图8为正弦曲线生成示意图,图9为非圆二次曲线任意角度回转原理示意图,图10为抛物线与其它常用曲线光滑衔接和无转动内外平行线生成示意图,图11为抛物线与其它常用曲线光滑衔接和回转任意角度后其内外平行线生成示意图,图12为双曲线与其它常用曲线光滑衔接和无转角内外平行线生成示意图,图13为双曲线及其衔接曲线回转任意角度后其平行线生成示意图,图14为椭圆上断点与其它常用曲线光滑衔接和无转角内外平行线生成示意图,图15为椭圆和其衔接曲线任意角度回转后内外平行线生成示意图,图16为阿基米德螺旋线性质及其法线与极径和坐标轴夹角原理示意图,图17为阿基米德螺旋线的法线切线及与其它常用曲线光滑衔接和其内外平行线生成示意图,图18为无需即时插补运算的数控轨迹编存解码形成的折线轨迹与常规插补方法生成的阶梯轨迹示意图。以上附图全部是用本复合插补方法编制的系统软件绘制而成。

Claims (8)

1.在计算机图形学的核心技术领域中的一种可直接生成含常用非圆曲线及其平行线的系列线型,并可显示其辅助线和相关参数,还能将含常用非圆曲线及其平行线的多种线型进行光滑衔接和各种编辑使之构成理想图形,且具有将曲线或完整图形进行数控编存解码功能的复合插补法及其系统软件,其主要特征是:这里采用自变量长度偏差修正法规正基圆轨迹,提高了作为许多非圆曲线复合插补变量基准的弧长递推计算精度,并在递推计算R倍弧长过程中依据不同R进行一定间隔的微量修正得到每步弧长这个变量基准;与该弧长基准相关的渐伸线和阿基米德螺旋线的生成是让其动点遵循弧长和角度复合变量基准运行,并在其动点位于X或Y轴极值点时作出判别并修改走向,即可在直角坐标系下生成可跨越象限任意长度的相关轨迹,并且可以在基准弧长较大时采用曲线长度细分计数以辅助控制线长,另外自变量长度偏差修正法也可用于修正常用非圆曲线轨迹与基准量的偏离,同样涉及圆弧长度变量的摆线、圆内外摆线和正弦曲线为其动圆沿导轨运动,动圆上的点与其导轨复合运动产生的轨迹,只要让动圆转动的弧长与导轨弧线长按比例同步运行,并将其相关点的位置相应叠加,即可得到该曲线或其变幅曲线;对常用曲线及其组成的图形绕自身原点或另外设定点的任意角度转动、对称、移动、扩缩、矩阵及剪切、衔接、倒退、删除、恢复、插入、追加的编辑及选择或复合编辑等操作是在曲线运行前,根据编辑项目和数据要求对用户程序相关的数据和指令进行修改处理后启动运行实现的,但非圆二次曲线的自由旋转是对角度N中超过±90°的90倍数部分用修改用户程序数据和指令,对小于90°部分用在程序启动预置后的运行中按标准曲线偏差和进给运算加与转角对应的位移分量的递推算法处理的;在常用曲线的平行线生成和两条线段的光滑衔接方面,对渐伸线等仍可保持原线型的曲线平行线采用移动起点位置改变相关参数的方法实现,对已改变了原曲线性质的常用非圆二次曲线和阿基米德螺旋线等的平行线生成的方法是根据曲线的性质采用简化的递推算法数学模型顺序取得原线法向等距点的集合,光滑衔接则是相关曲线对应点切线角度一致的吻合;数控编码方法是在曲线或图形绘制及编辑完成后,根据设定的二轴叠加每次移动步距,在曲线或图形重绘时编辑生成代表每次步距和走向的系列数据。 
2.根据权利要求1所述的复合插补法及其系统软件,其特征在于:针对使用通常偏差算法产生的圆弧轨迹在坐标轴上偏离最大,轴二侧的轨迹不对称的问题,采用圆弧的自变量对长度偏差修正法,该方法是对通常的被控动点与 基准量的长度偏差算式:F=X2+Y2-R2在起步偏差预置或运行中象限变换时根据起点所在象限和走向是离开X轴或朝向X轴进行F=F-X+Y或F=F-Y+X的偏差修正预置,及对曲线运行中的递推算式:当X±1时:F=F±2*X+1,当Y±1时:F=F±2*Y+1,改为:当X±1时:F=F±2*X+2,当Y±1时:F=F±2*Y+2,用以使对基准R的修正量在一个象限内实现由0.5经0到-0.5的变化,达到去除在坐标轴上被控点相对基准R的最大偏离,使坐标轴两侧轨迹对称,整个轨迹均以R为中心运行;另外在递推计算R倍弧长过程中依据不同R进行一定间隔的微量修正是指在递推计算圆弧长度,即:当X±1时RH+Y,当Y±1时RH+X,当RH>=R时RH-R,H±1的过程中,根据事先针对不同R半径的圆常规计算弧长与递推计算弧长的微小差异设定的调整数据N,每隔N步对递推计算弧长的中间变量R倍弧长RH进行+1或-1的操作,每次修正量为1/R个运算单位,以提高基准弧长的准确性。 
3.根据权利要求1所述的复合插补法及其系统软件,其特征在于:与上述弧长基准相关的渐伸线和阿基米德螺旋线的生成是让其动点遵循弧长和角度复合变量基准运行,并在其动点位于X或Y轴极值点时作出判别并修改走向,即可在直角坐标系下生成可跨越象限任意长度的相关轨迹,并且自变量长度偏差修正法也可用于修正常用非圆曲线轨迹与基准量的偏离,一是指渐伸线动点Xd、Yd相对基圆X、Y切点的展开弧长H的长度偏差Fl=Xd 2+Yd 2-H2,这里也参照对圆弧长度偏差修正的方法根据动点所在象限和走向,对其进行起步前的偏差修正预置即:Fl=Fl±Xd-+Yd,运行中当Xd±1时:Fl=Fl±2*Xd+2,当Yd±1时:Fl=Fl±2*Yd+2,但对由基圆切点的移动引起的Xd±1、Yd±1变化,将根据切点所在象限对应的动点本身移动Xd、Yd变化是否一致设定Fl=Fl±2*Xd或Fl=Fl±2*Yd后是否需要+2处理,一致则加相反则不加,另外Fl与H变化相关的递推算式:当H±1时Fl=Fl-+2*H-1,复合插补中与渐伸线长度偏差相关的角度偏差判别公式为Fa=X*Xd-Y*Yd,其递推公式为:当X±1时,Fa=Fa±Xd,当Xd±1时,Fa=Fa±X,当Y±1时,Fa=Fa-+Yd,当Yd±1时,Fa=Fa-+Y,其极值点与基圆过坐标轴点垂直对应;二是指阿基米德螺旋线的长度偏差判别式Fl=Xd 2+Yd 2-H2,因其轴向极值点不与坐标轴重合,对其走向与基圆相同部分参照圆弧长度偏差判别修正的思路,根据所在象限进行单变量修正,对扩展型在起步或换限时将Fl减掉X或Y极值向的Xd或Yd值,对收缩型在起步或换限时将Fl加上由X或Y轴开始从0增加项的Xd或Yd值,即Fl=Fl±Xd或Fl=Fl±Yd,运行中预置对应项的Xd±1、Yd±1变化时Fl=Fl±2*Xd+2或Fl=Fl±2*Yd+2,其余未预置项Xd±1、Yd±1变化时Fl=Fl±2*Xd+1或Fl=Fl±2*Yd+1不变,而收缩型同向部分在极值点结束时相当于Fl=Fl+(Xd或Yd的最大 值),应用Fl=Fl-(Xd或Yd)将Fl恢复到修正值为0的状态,对一个象限内螺旋线与其基圆走向不同的部分这里不进行长度偏差的修正;螺旋线的Fl与H变化相关的递推算式:当H±1时Fl=Fl-+2*H-1,螺旋线的角度偏差式为:Fa=X*Yd-Y*Xd,其递推公式为:当X±1时,Fa=Fa±Yd,当Yd±1时,Fa=Fa±X;当Y±1时,Fa=Fa-+Xd,当Xd±1时,Fa=Fa-+Y;螺旋线的X、Y向极值点以X轴向:Fj=H*Y-R*X,Y轴向:Fj=H*X-R*Y进行偏差预置和判断Fj>0为与基圆同向,Fj=0为极值点,Fj<0为与基圆异向,运行中以Fj递推运算结果的正负变换时为极值点,Fj递推算式: 
当H±1时X向极值Fj=Fj±Y;Y向极值Fj=Fj±X; 
当X±1时X向极值Fj=Fj-+R;Y向极值Fj=Fj±H; 
当Y±1时X向极值Fj=Fj±H;Y向极值Fj=Fj-+R; 
在基准弧长H较大时可采用曲线长度细分计数以辅助控制线长,是指对渐伸线或阿基米德螺旋线曲线长JJ参照圆弧长度的递推算法,取中间变量Hj1,当Xd±1时:Hj1+Yd,当Yd±1时:Hj1+Xd,当Hj1>=H时JJ±1,Hj1-H;同样涉及圆弧长度变量的摆线、圆内外摆线和正弦曲线为其动圆沿导轨运动,动圆上的点与其导轨复合运动产生的轨迹,是指该曲线的轨迹生成中不仅与精确的圆弧长度递推计算相关,而且涉及直线长度的递推计算,这里首先根据直线的X、Y向长度利用勾股定理取得R并设中间变量R倍L为RL,当X+1时:RL+X,当Y+1时:RL+Y,若RL>=R则:RL-R,L±1,以此计算直线的线长L,与之相关的变幅摆线导轨线长Lg和其变幅系数M与动圆弧长Hd和其变幅系数N同步时Lg*M=Hd*N以Lg*M与Hd*N的大小交替运行,并将其相关点的位置相应叠加;圆内外及其变幅摆线,导轨圆弧长Hg和其变幅系数M与动圆弧长Hd和其变幅系数N同步时Hg*M=Hd*N以Hg*M与Hd*N的大小交替运行,并将其相关点的位置相应叠加;正弦曲线,则依直线XLYL线长L与圆弧长H同步运行,即:Fl=Xl 2+Yl 2-H2以Fl的正负交替运行,取直线的轴向分量与圆弧的垂直于轴向的振幅分量的组合轨迹。 
4.根据权利要求1所述的复合插补法及其系统软件,其特征在于:非圆二次曲线的自由旋转对角度N中超过±90°的90*n倍数部分采用修改用户程序指令和将n为奇数时的X、Y相关数据互换处理,之后对余下小于90°的a1=abs(N%90)部分,依据新X、Y所在象限及N为顺逆时针转向X轴或Y轴用:X′=X*cos(a1)±Y*sin(a1),Y′=Y*cos(a1)-+X*sin(a1)在程序启动时进行转角后被控动点的预置,在运行中将按90*n转动后的新X、Y等变量进行标准偏差和进给运算加与转角a1对应的位移分量的递推算法处理,这里设:A2=sin(a1)*10000,A3=(1-cos(a1))*10000,当X±1时:dx±A3, dy±A2,当Y±1时:dy±A3,dx-+A2,在当dx>=10000时X′+1,dx-10000或dy>=10000时Y′+1,dy-10000,在当dx<=10000时X′-1,dx+10000或dy<=10000时Y′-1,dy+10000,式中的正负运算符号应根据被控动点所处象限和其走向确定,这是本方法中对非圆二次曲线本身顺逆时针转动任意N角度时,使用的曲线轨迹中被控动点按标准偏差位移后加相应转角位移分量的递推运算方法。 
5.根据权利要求1所述的复合插补法及其系统软件,其特征在于:在常用非圆二次曲线中抛物线的平行线生成和两条线段的光滑衔接方面,焦点在Y轴的抛物线端点与其它曲线光滑衔接的角度为a=atan(X/P),焦点在X轴的抛物线端点与其它曲线光滑衔接的角度为a=atan(Y/P),其中P为焦点参数,与焦点在Y轴无转角的抛物线间距为M的平行线生成相关的角度和距离复合偏差式中角度偏差算式:Fb=Mx*P-My*X,距离偏差算式:Fm=Mx2+My2-M2其中距离偏差参照圆弧偏差修正的方法进行了Fm=Fm-My+Mx;或Fm=Fm+My-Mx的偏差修正预置,在极值点X=0与Y=0时变换指令,运行中采用递推算法: 
当原线的X±1时:Fb=Fb-+My; 
当其平行线的Mx±1时:Fb=Fb±P;Fm=Fm±2*Mx+2; 
当其平行线的My±1时:Fb=Fb-+X;Fm=Fm±2*My+2; 
焦点在Y轴带转角N的抛物线的间距为M的平行线生成相关的距离偏差计算和判别式与无转角时相同,角度偏差Fb算式依抛物线转角中小于90*n的(90*n部分的处理方法与非圆二次曲线本身转角相同)a1=abs(N%90)部分与变化的切线角度a大小关系不同,以a=a1或a+a1=90及Mx=0或My=0的极值点为界分为4种算式,并变换极值点相关Mx或My走向,其中设tan(a1)=A: 
a与a1同向且a>=a1时:Fb=Mx*P+Mx*X*A-My*X+My*P*A;(1) 
a与a1同向且a<a1时:Fb=Mx*P+Mx*X*A-My*P*A+My*X;(2) 
a与a1反向且a+a1<=90°时:Fb=Mx*P-Mx*X*A-My*X-My*P*A;(3) 
a与a1反向且a+a1>90°时:Fb=Mx*P-Mx*X*A+My*X+My*P*A;(4) 
这也是程序运行前的偏差预置算式和程序运行中需要变换算式时抛去某个带有0变量项的算式,在程序运行中的递推算式以(1)式为例:: 
当原线的X±1时:Fb=Fb±Mx*A-+My; 
当其平行线的Mx±1时:Fb=Fb±P±X*A;Fm=Fm±2*Mx+2; 
当其平行线的My±1时:Fb=Fb-+X±P*A;Fm=Fm±2*My+2; 
焦点在X轴无转角的抛物线间距为M的平行线生成相关的角度和距离偏差计算和判别式为:角度偏差算式:Fb=My*P-Mx*Y距离偏差算式及其偏差修正预置方法与Y焦轴时相同,在极值点X=0与Y=0时变换指令,运行中递推 算法: 
当原线的Y±1时:Fb=Fb-+Mx; 
当其平行线的Mx±1时:Fb=Fb-+Y;Fm=Fm±2*Mx+2; 
当其平行线的My±1时:Fb=Fb±P;Fm=Fm±2*My+2; 
焦点在X轴带转角N的抛物线的间距为M的平行线生成相关的距离偏差计算和判别式与无转角时相同,角度偏差Fb算式依抛物线转角中小于90*n的(90*n部分的处理方法与非圆二次曲线本身转角相同)a1=abs(N%90)部分与变化的切线角度a大小关系不同,以a=a1或a+a1=90及Mx=0或My=0的极值点为界分为4种算式,并变换极值点相关Mx或My走向,其中设tan(a1)=A: 
a与a1同向且a>=a1时:Fb=My*P+My*Y*A-Mx*Y+Mx*P*A;(5) 
a与a1同向且a<a1时:Fb=My*P+My*Y*A+Mx*Y-Mx*P*A;(6) 
a与a1反向且a+a1<=90°时:Fb=My*P-My*Y*A-Mx*Y-Mx*P*A;(7) 
a与a1反向且a+a1>90°时:Fb=My*P-My*Y*A+Mx*Y+Mx*P*A;(8) 
这也是程序运行前或程序运行中需要变换算式时抛去某个带有0变量项的偏差预置算式,在程序运行中的递推算式以(5)式为例: 
当原线的Y±1时:Fb=Fb±My*A-+Mx; 
当其平行线的Mx±1时:Fb=Fb-+Y±P*A;Fm=Fm±2*Mx+2; 
当其平行线的My±1时:Fb=Fb±P±Y*A;Fm=Fm±2*My+2。
6.根据权利要求1所述的复合插补法及其系统软件,其特征在于:常用非圆二次曲线中双曲线和椭圆的平行线生成和两条线段的光滑衔接方面的角度和间距判别式可以共用,但在被控动点的走向判别方面各不相同,双曲线和椭圆端点与其它曲线光滑衔接的角度为a2=atan(B2X/A2Y),式中A、B为双曲线的实虚轴或椭圆的长短轴系数,与其平行线生成相关的法线角度为:a=atan(A2Y/B2X),无转角的双曲线和椭圆与间距为M的平行线生成相关的复合偏差判别式中角度偏差算式:Fb=Mx*A2*Y-My*B2*X距离偏差算式:Fm=Mx2+My2-M2其中距离偏差参照圆弧偏差修正的方法进行Fm=Fm-My+Mx;或Fm=Fm+My-Mx的偏差修正预置,在极值点X=0或Y=0时变换指令,运行中采用递推算法: 
当原线的X±1时:Fb=Fb-+My*B2; 
当原线的Y±1时:Fb=Fb±Mx*A2; 
当其平行线的Mx±1时:Fb=Fb±A2*Y;Fm=Fm±2*Mx+2; 
当其平行线的My±1时:Fb=Fb-+B2*X;Fm=Fm±2*My+2; 
带转角N的双曲线和椭圆与间距为M的平行线生成相关的复合偏差判别式中距离偏差算式与无转角时的判别式及其偏差修正方式相同,角度偏差Fb算式 依双曲线和椭圆转角中小于90*n的(90*n部分的处理方法与非圆二次曲线本身转角相同)a1=abs(N%90)部分与变化的法线角度a大小关系不同,以a=a1或a+a1=90及Mx=0或My=0的极值点为界分为4种算式,并变换极值点相关Mx或My走向,其中C=tan(a1)、C1=A2、C2=B2*C、C3=B2、C4=A2*C: 
a1使法线转向X轴且a>=a1时:Fb=Mx*C1*Y-Mx*C2*X-My*C3*X-My*C4*Y;(9) 
a1使法线转向X轴且a<a1时:Fb=Mx*C2*X-Mx*C1*Y-My*C3*X-My*C4*Y;(10) 
a1使法线转离X轴a+a1<=90时:Fb=Mx*C1*Y+Mx*C2*X-My*C3*X+My*C4*Y;(11) 
a1使法线转离X轴a+a1>90时:Fb=Mx*C1*Y+Mx*C2*X+My*C3*X-My*C4*Y;(12) 
运行之中Fb和Fm也采用递推算法以(9)式为例。即: 
当原线的X±1时:Fb=Fb-+Mx*C2-+My*C3; 
当原线的Y±1时:Fb=Fb±Mx*C1-+My*C4; 
当其平行线的Mx±1时:Fb=Fb±C1*Y-+C2*X;Fm=Fm±2*Mx+2; 
当其平行线的My±1时:Fb=Fb-+C3*X-+C4*Y;Fm=Fm±2*My+2。
7.根据权利要求1所述的复合插补法及其系统软件,其特征在于:经分析发现H=R*(a+a0)的阿基米德螺旋线具有从其极点起垂直于极径向曲线的展开方向作伸缩系数R长线段,再由该线段R的外端点向极径H生成螺旋线处的端点作射线,该射线就是此点螺旋线的法线,该法线与极径的锐夹角C=atan(R/H或1/(a+a0))为R/H或极角倒数的反正切值,而该螺旋线的切线与极径的锐夹角是C的余角,并且该余角的正切值与其极角的弧度值相等,即tan(90-C)=(H/R或a+a0)的性质;螺旋线的极径与坐标轴的锐夹角视不同象限和走向为:a1=(atan(Y/X)或atan(X/Y)),螺旋线与其它曲线光滑衔接用其切线与坐标轴的夹角a2视不同象限和走向为:a2=90-C±a1角度值;在生成螺旋线的平行线相关的被控动点与其母线的距离和角度复合判别式中,其间距偏差判别公式与其它曲线的相同为:Fm=Mx2+My2-M2运行起步前的Fm偏差预置时按上述原式计算,同时参照圆的偏差修正方法,在程序启动或运行中换限时作Fm=Fm-My+Mx;或Fm=Fm+My-Mx的偏差修正预置,在保证法向角度准确方面,根据不同极值方向和螺旋线与其基圆走向的同异,以坐标轴和极值点为界区分Fb算式: 
X向极值的异向段:Fb=R*X*Mx-H*Y*Mx-H*X*My-R*Y*My;---(13) 
X向极值的同向段:Fb=H*Y*Mx-R*X*Mx-H*X*My-R*Y*My;---(14) 
Y向极值的异向段:Fb=R*Y*My-H*X*My-H*Y*Mx-R*X*Mx;---(15) 
Y向极值的同向段:Fb=H*X*My-R*Y*My-H*Y*Mx-R*X*Mx;---(16) 
运行之中Fb和Fm也采用递推算法以(13)式为例: 
当原线的X±1时:Fb=Fb±R*Mx-+H*My; 
当原线的Y±1时:Fb=Fb-+H*Mx-+R*My; 
当原线的H±1时:Fb=Fb-+Y*Mx-+X*My; 
当其平行线的Mx±1时:Fb=Fb±R*X-+H*Y;Fm=Fm±2*Mx+2; 
当其平行线的My±1时:Fb=Fb-+H*X-+R*Y;Fm=Fm±2*My+2。
8.根据权利要求1所述的复合插补法及其系统软件,其特征在于:数控编码方法是在曲线或图形绘制及编辑完成后,根据设定的二轴叠加每次移动步距,在曲线或图形重绘时编辑生成代表每次步距和走向的系列数据的具体方法为:对图形准备进行数控编码前,首先通过对话等形式设定二轴叠加同步进给步距数即每段步数(本系统中取值范围设为1至6),在曲线或图形重绘过程中,由系统分别累计各轴向走行的方向和步数,当二轴合计步数大于或等于设定步距时,将累计的X、Y步距数按轴向分别存储于一个字节的低4位和高4位,每4位的最高位代表正负走向,其余3位代表同步进给的步数(1至7步),存储后进行移位处理,等待继续累计和存储下一段落的数据,在每条曲线末尾即使不满足设定段落的累计数据也进行存储,完成该条曲线数据存储后,连续进行下一条曲线进给数据的采集累计和存储,直至整个图形重绘完成时结束数据存储;使用时调出并顺序按字节读取该数据,以每字节的第4与第8位的0或1状态分别确定X与Y轴的走向,以1至3位与5至7位分别确定X与Y轴同步进给的步数,用以同时驱动速度与步距正比的二轴同步进给机构,即可得到顺应曲线路径的连续折线段,从而实现不需即时插补运算的数控设备驱动新方法;在本系统中还可以将编制完成的一套数据及将存储本套数据的编号、字节数和起始坐标作为一种新线型和其它曲线类似地存储于系统的硬盘,需要时可以一种线型的形式随时调出;另外还可以在每完成一个字(4字节)或几个字的数据编制时分别存储图形生成中被控动点的X、Y坐标值,该坐标值可用于分段编制现行数控设备的以直线段拟合曲线的G代码等用户程序。 
CN201310202145.5A 2013-05-18 2013-05-18 复合插补法及其系统软件 Pending CN104166376A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310202145.5A CN104166376A (zh) 2013-05-18 2013-05-18 复合插补法及其系统软件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310202145.5A CN104166376A (zh) 2013-05-18 2013-05-18 复合插补法及其系统软件

Publications (1)

Publication Number Publication Date
CN104166376A true CN104166376A (zh) 2014-11-26

Family

ID=51910237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310202145.5A Pending CN104166376A (zh) 2013-05-18 2013-05-18 复合插补法及其系统软件

Country Status (1)

Country Link
CN (1) CN104166376A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105156323A (zh) * 2015-09-10 2015-12-16 中国科学院等离子体物理研究所 一种冷压机转子
CN105807721A (zh) * 2015-01-20 2016-07-27 兄弟工业株式会社 数值控制装置及其控制方法
WO2018214141A1 (zh) * 2017-05-26 2018-11-29 深圳配天智能技术研究院有限公司 一种刀具路径的补偿方法及数控机床
CN110412941A (zh) * 2019-08-07 2019-11-05 合肥学院 螺旋曲面数控包络铣削方法及其集成控制系统
CN112157260A (zh) * 2020-09-30 2021-01-01 中南大学 一种用于激光熔覆3d打印转角优化的方法
CN113123177A (zh) * 2019-12-31 2021-07-16 比亚迪股份有限公司 防滑钢板及其加工方法、轨道梁
CN114952412A (zh) * 2022-07-11 2022-08-30 捷普电子(新加坡)公司 刀具的设计方法及刀具的加工路径生成方法
CN116048004A (zh) * 2022-12-14 2023-05-02 天津理工大学 数控系统中基于切线矢量的阿基米德螺线实时插补方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1044716A (zh) * 1989-02-01 1990-08-15 刘希汉 复合逐点比较插补法及其系统软件
US20070292227A1 (en) * 2006-06-14 2007-12-20 Vigel S.P.A. Method for milling grooves in bored workpieces
CN101738984A (zh) * 2009-12-23 2010-06-16 哈尔滨工业大学 一种基于四元数的五坐标样条插补控制方法
CN101751008A (zh) * 2008-12-18 2010-06-23 陈学恭 一种插补方法
CN101782759A (zh) * 2010-01-15 2010-07-21 上海维宏电子科技有限公司 数控系统中基于旋转半径固定的多轴插补方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1044716A (zh) * 1989-02-01 1990-08-15 刘希汉 复合逐点比较插补法及其系统软件
US20070292227A1 (en) * 2006-06-14 2007-12-20 Vigel S.P.A. Method for milling grooves in bored workpieces
CN101751008A (zh) * 2008-12-18 2010-06-23 陈学恭 一种插补方法
CN101738984A (zh) * 2009-12-23 2010-06-16 哈尔滨工业大学 一种基于四元数的五坐标样条插补控制方法
CN101782759A (zh) * 2010-01-15 2010-07-21 上海维宏电子科技有限公司 数控系统中基于旋转半径固定的多轴插补方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105807721A (zh) * 2015-01-20 2016-07-27 兄弟工业株式会社 数值控制装置及其控制方法
CN105807721B (zh) * 2015-01-20 2020-02-18 兄弟工业株式会社 数值控制装置及其控制方法
CN105156323A (zh) * 2015-09-10 2015-12-16 中国科学院等离子体物理研究所 一种冷压机转子
WO2018214141A1 (zh) * 2017-05-26 2018-11-29 深圳配天智能技术研究院有限公司 一种刀具路径的补偿方法及数控机床
CN110412941A (zh) * 2019-08-07 2019-11-05 合肥学院 螺旋曲面数控包络铣削方法及其集成控制系统
CN113123177A (zh) * 2019-12-31 2021-07-16 比亚迪股份有限公司 防滑钢板及其加工方法、轨道梁
CN113123177B (zh) * 2019-12-31 2023-03-14 比亚迪股份有限公司 防滑钢板及其加工方法、轨道梁
CN112157260A (zh) * 2020-09-30 2021-01-01 中南大学 一种用于激光熔覆3d打印转角优化的方法
CN112157260B (zh) * 2020-09-30 2021-08-27 中南大学 一种用于激光熔覆3d打印转角优化的方法
CN114952412A (zh) * 2022-07-11 2022-08-30 捷普电子(新加坡)公司 刀具的设计方法及刀具的加工路径生成方法
CN116048004A (zh) * 2022-12-14 2023-05-02 天津理工大学 数控系统中基于切线矢量的阿基米德螺线实时插补方法及设备
CN116048004B (zh) * 2022-12-14 2024-04-19 天津理工大学 数控系统中基于切线矢量的阿基米德螺线实时插补方法及设备

Similar Documents

Publication Publication Date Title
CN104166376A (zh) 复合插补法及其系统软件
CN111061213B (zh) 一种基于Bezier曲线转角平滑过渡算法的加工方法
Chase Shapes and shape grammars: from mathematical model to computer implementation
JPH0550030B2 (zh)
CN106647623B (zh) 一种几何精度及衔接速度最优化的五轴联动平滑插补方法
CN104714477B (zh) 一种加工文件规划系统与加工文件的生成方法
Gangnet et al. Incremental computation of planar maps
JP2021131895A (ja) 実景ナビゲーションアイコン表示方法、装置、機器及び媒体
WO2008142114A2 (en) Computer-aided design apparatus
CN110598325B (zh) 齿轮的三维自动化设计方法
CN103544343A (zh) 动力卡盘的系列化、参数化建模方法
CN109934923B (zh) 适用于生物材料3d打印的模型分层以及轨迹填充方法
Bertolazzi et al. Clothoids: a C++ library with Matlab interface for the handling of clothoid curves
CN102298787A (zh) 动画对象运动的控制方法及系统
Liang et al. Tool path planning on triangular mesh surfaces based on the shortest boundary path graph
CN102033513A (zh) 一种计算机辅助离散几何规划方法与系统
CN101364101A (zh) 数控相贯线切割机套料模块系统
Huang et al. Multilevel structured NC machining process model based on dynamic machining feature for process reuse
Hu et al. Tool path optimization algorithm of spatial cam flank milling based on NURBS surface
CN103543694B (zh) 一种基于嵌入式智能终端的数控车削加工仿真方法
Stark et al. Major Technology 1: Computer Aided Design—CAD
Marhl et al. Extensions of sweep surface constructions
CN113608496A (zh) 空间路径g2转接光顺方法、设备及计算机可读存储介质
Milos et al. The 3d blade surface generation for kaplan turbines using analytical methods and cad techniques
CN104345686A (zh) 二维双向dexel毛坯建模方法及其加工仿真方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141126