欢迎来到咨信网! | 成为共赢成为共赢 咨信网助力知识提升 | 自信网络旗下运营:咨信网 自信AI创作助手 自信AI导航
咨信网
全部分类
  • 包罗万象   教育专区 >
  • 品牌综合   考试专区 >
  • 管理财经   行业资料 >
  • 环境建筑   通信科技 >
  • 法律文献   文学艺术 >
  • 学术论文   百科休闲 >
  • 应用文书   研究报告 >
  • ImageVerifierCode 换一换
    首页 咨信网 > 资源分类 > PDF文档下载
    分享到微信 分享到微博 分享到QQ空间

    用Visual Basic语言来实现非圆曲线的逼近.pdf

    • 资源ID:226320       资源大小:1.32MB        全文页数:25页
    • 资源格式: PDF        下载积分:15金币
    微信登录下载
    验证码下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    验证码: 获取验证码
    温馨提示:
    支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    VIP下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    声明    |    会员权益      获赠5币      写作写作
    1、填表:    下载求助     索取发票    退款申请
    2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
    6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    7、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

    用Visual Basic语言来实现非圆曲线的逼近.pdf

    1、目录一.概述.31.1.数控机床课程设计的目的.31.2.课程设计的任务与要求.31.3.课程设计的步骤.31.4非 圆弧曲线逼近应用及国内外发展现状.4二非圆弧逼近设计思路.42.1.概述.42.2.用直线段逼近非圆曲线.42.2.1等间距法直线段逼近的节点计算.52.2.2等弦长法直线段逼近的节点计算.62.2.3等误差法直线段逼近的节点计算.82.3.流程图.9三.软件的介绍.103.1开发工具与语言.103.2 人机界面的确定.113.3 软件设计原则及进度规划.113.4.主界面的介绍.113.5.输出结果.12四.课程总结.14五.参考文献.15六.主要程序附录.16摘要非圆曲线是

    2、数控加工中经常遇到的问题,在编制加工程序过程中,经常要转换成用直线 或圆弧逼近的曲线后方能加工。转换的一般类型有直线逼近和圆弧逼近两种。直线逼近又 有等间距法、等弦长法、等误差法等。本文介绍了一个以Visual B asic6.0为开发工具,进 行数控编程中非圆曲线的节点坐标运算的软件。以抛物线、椭圆、双曲线为例讨论了等间 距法直线逼近的原理、程序流程以及将计算所得的节点坐标数据在Visual B asic6.0中绘制 成非圆曲线的方法。关键字:非圆曲线节点逼近1.课程设计的任务:用计算机高级编程语言(如VB,VC+等)来实现非圆曲线的逼近,可任选(1)直线逼近(如等间距法、等弦长法、等误差法

    3、等)、或(2)圆弧逼近。要求在满足允许误差的前提 下,使得逼近的直线段或圆弧段的数量最少(即最优解)。具体的要求如下:(1)列出一般的直线或圆弧逼近的算法(流程图)。(2)列出改进的直线或圆弧逼近的算法(流程图)即优化算法。比较改进前与改进后 的两种算法结果。(3)针对任意给定的某一由非圆曲线所构成的平面轮廓,根据指定的走刀方向、起刀点,自动生成CNC代码的生成。(4)在屏幕上显示该非圆曲线所构成的平面轮廓。第一章概述1.1、数控机床课程设计的目的数控机床课程设计是机电专业教学活动的一个重要的实践性环节,是对学生所学数控 机床课程和其它有关课程知识和技能的一次综合性练习,旨在使之巩固、充实、系

    4、统 化,并得到进一步扩展。课程设计是培养学生理论联系实际、解决生产实际问题的机会。通过对数控铳床典型部件的结构设计和零件编程的具体问题的解决,使学生对数控机床 的结构原理、设计方法以及用编程方法处理实际问题的一般步骤和具体技巧得到训练,提高运用所学专业知识分析问题和解决问题的能力。1.2、课程设计的内容和要求每个学生应该在规定的时间内,独立完成所选的题目,对于做机械结构设计的学生,要求用计算机绘图方式绘制有关的总装图(A0或A1图纸一张)和不少与三张的零件图。设计说明书5000字以上,要求装备图充分表明整机或部件的工作原理及结构,装备关系 明确,画面整洁,布局合理。线条粗细均匀,圆弧连接光滑,

    5、尺寸标注规范,文字注释 必须使用工整字体书写,符合国家标准。选择仿真的学生,用VB编程语言,编写计算机软件在WINDOWS实现数控装置的计算机 仿真。要求清楚地分析问题,提出算法,确定人机界面,列出流程图,最后用程序验证,并且提交程序说明书。对选择典型零件编程题目的学生,要求用编写计算机软件的方法解决数控过程的一个问 题。可以任用本人熟悉的一种变成语言,要求清楚的分析问题,提出算法,列出流程图,最后用程序验证,并且提交程序说明书1.3、课程设计的步骤课程设计的步骤大致包括:调查研究,收集资料,查阅文献;论证及确定设计方案,进 行机械结构设计和软件设计,编写程序和编制设计说明书,最后参加课程设计

    6、的答辩。1.4非 圆弧曲线逼近应用及国内外发展现状目前在国内外金属加工业中广泛使用的数控机床中,半闭环位置伺服系统是 一种比较普遍采用的技术方案。半闭环位置伺服系统将机床本身的机械传动链排 除在位置闭环之外,伺服系统的电气控制部分和执行机械相对独立,由于闭环中 非线性因素少,因此系统容易整定,可以方便地实现间隙补偿等,以提高位置控 制精度。对于加工形状简单的零件,计算比较简单,程序不多,采用手工编程较容易 完成,因此在点定位加工及由直线与圆弧组成的轮廓加工中,手工编程仍广泛应 用。但对于形状复杂的零件,特别是具有非圆曲线、列表曲线及曲面的零件,用 一般的手工编程就有一定的困难,且出错机率大,有

    7、的甚至无法编出程序。而采 用“R”参数编程则可很好地解决这一问题。非圆曲线轮廓零件的种类很多,但不管是哪一种类型的非圆曲线零件,编程 时所做的数学处理是相同的。一是选择插补方式,即首先应决定是采用直线段逼 近非圆曲线,还是采用圆弧段逼近非圆曲线;二是插补节点坐标计算。采用直线 段逼近零件轮廓曲线,一般数学处理较简单,但计算的坐标数据较多。数控机床是按照零件加工程序对工件进行加工的。一个好的加工程序不仅能 保证加工出符合要求的工件,还应能充分发挥数控机床的功能,使其安全、可靠、高效地运行。零件加工程序是数控系统的一个重要组成部分,据国外统计,数控 机床停机的原因中,有20%30%是由于编不出加工

    8、程序。为了提高数控机床的 利用率,编程员应努力提高编程能力,迅速编制出优良的零件加工程序。因此,非圆曲线的逼近对于数控机床的编程极其重要。非圆曲线的逼近在国 内外不断得发展。机械制造业中,具有抛物线形外形的零件是二维轮廓工件,比较常见也是比 较难以加工的。目前抛物线形零件的加工方法主要有:在普通机床上进行近似加 工;根据抛物线的形成定理,设计专用加工装置进行加工。由于一般数控机床的 编程代码只具有直线插补和圆弧插补功能,因此对于抛物线这类非圆形曲线的数 控加工大多采用小段直线或小段圆弧去逼近轮廓曲线,完成数控编程。由于必须 按照允许的精度要求计算各小段直线或圆弧的起点和终点,当工件轮廓较长而精

    9、 度要求很高时,逼近段直线或圆弧必须分得很细,因而计算量大,给手工编程带 来很多的不便,同时这种按逼近曲线或近似画法进行编程的方法从原理上讲就已 经带来了误差,因而无法加工出高精度的抛物线形零件。二章 非圆弧逼近设计思路2.1概述数控加工中把除直线与圆之外可以用数学方程式表达的片面廓形曲线,称为非圆曲线,其数学表达式的形式可以是以y=f(x)的直角坐标的形式给出,也可以是以p=p(0)的极坐标形式给出。通过坐标变换,后面两种形式的数学表达式,可以转换为直角坐标 表达式。这类零件的加工,以平面凸轮类零件为主,其他如样板曲线,圆柱凸轮以及数 控车床上加工的各种以非圆曲线为母线的回转体零件等等。其数

    10、值计算过程,一般可按 一下步骤进行。(1)选择插补方式 即应首先决定是采用直线段逼近非圆曲线,还是采用圆弧段或抛 物线等二次曲线逼近非圆曲线。2采用直线段逼近非圆曲线,一般数学处理较简单,但计算的数据较多,且各直线段间连 接处存在尖角,由于尖角处,刀具不能连续地对零件进行切削,零件表面会出现硬点或 切痕,使加工表面质量变差。采用圆弧段逼近地方式,可以大大减小程序段的数目,其 数值计算又分为两种情况,一种为相邻两圆弧段间彼此相交;另外一种则采用彼此相切 的圆弧段来逼近非圆曲线,后一种方法由于相邻圆弧彼此相切,一阶导数连续,工件表 面整体光滑,从而有利于加工表面质量的提高。采用圆弧段逼近,其数学处

    11、理过程比直 线段逼近要复杂一些。(2)确定编程允许误差 即应使G w 5允。(3)选择数学模型,确定计算方法非圆曲线节点计算过程一般比较复杂。目前生产 中采用的算法也较多。在决定采用什么算法时,主要应考虑的因素有两条,其一 时尽可能按等误差的条件,确定节点坐标位置,以便最大程度地减少程序段的数 目;其二是尽可能寻找一种简单的计算方法,以便计算机处理流程图。(4)根据算法,画出计算机处理流程图。(5)用高级语言编写程序,上机调试程序,并获得节点坐标数据。2.2.用直线段逼近非圆曲线用直线段逼近非圆曲线,目前常用的计算方法有等间距法,等弦长法和等误 差法即钟。2.2.1等间距法直线段逼近的节点计算

    12、1)基本原理等间距法就是将某一坐标轴划分成相等的间距。如图1所示,沿X轴方向取4X 为等间距长,根据已知曲线的方程、=X),可由Xi求得Yi,X尸x,+AX,A.+1=f(x.+Ax)o如此求得一系列点就是节点。由于要求曲线y=/(X)与相邻两节点连线间的法向距离小于允许的程序编制误差晨,AX值不能任意设定。一般先取X=0.1进行试算。实际处理时,并非任意相邻两点间的误差都要验算,对于曲 线曲率半径变化较少处,只需验算两节点间距离最长处的误差,而对曲线曲率半 径变化较大处,应验算曲率半径较少处的误差,通常由轮廓图形直接观察确定校 验的位置2)误差校验的方法下面以抛物线为例说明计算误差的方法:其

    13、曲线方程为:yaxx2+bxx+c,根据给定的和X、y的初始值X。、yO,求出相应线段的终点X1和yl,这样就可以求出直线mn的方程:alx+bly+c=0al=yl-yO bl=xO-xl cl=ylxO-yOxl它的斜率k为:左=上把xl=xO而过曲线上与逼近直线mn的误差最大的点的切线mn,其斜率即为曲线方程的导3数,所以有:y=2ax+b=k解方程得:x2=(k-b)/(2a)2y2=a x x2+b x x2+c这样就可以求得切点N(x2,y2),从而求得直线逼近曲线的误差:a x x2+/?x y 2 cb=-,-士 a2+b?然后让其与允许的误差b作比较,如果Ab Wb,则输出直

    14、线,如果46 6,则把 减半再从新计算,这样就可以在误差允许的范围内用直线逼近非圆曲线了.图(1)等间距逼近双曲线和椭圆的算法跟这个基本一样,只是椭圆的方程是参数式方程 x=acos(i),y=bsin(i),所以等间距的时候,不是x等间距,而是i等间距,这样算起 来就方便多了,还有双曲线和椭圆都要分象限计算,双曲线是以y轴分开两侧的,x 不能等于零,在一个椭圆上,可找到与其一条直线平行的两条切线,所以要分开象限 来计算。2.2.2等弦长法直线段逼近的节点计算1)基本原理等程序段法就是使每个程序段的段长度相等。如图2所示,由于零件轮廓曲线 y=/(X)的曲率各处不等,因此首先求出该曲线的最少曲

    15、率半径火皿n,由4n及鼠 确定允许的步长/,然后从曲线起点a开始,按等步长/一次截取曲线,得b,c,d.点,则ab=be=/即为所求各直线段。2)计算步骤(1)求最少曲率半径及脸。设曲线为歹=/,(x),则其曲率半径为4y=Kx)Y图2等弦长逼近(1+yH口 dR取-二odX(1-1)R=y o o y 一(i 十 y)y=。(22)根据歹=/(x)依次求出y/,代入(2-2)求x,再将x代入式(1-1)即得Rmin(2)确定允许长/。以及总为半径作的圆弧,由几何关系可知2 Jr2._(R _ 5 力)2 工l m in、m in 允/、/min 3 允(3)求出曲线起点a的坐标(x.,几),

    16、并以该点为圆心,以/为半径,所得圆方程与曲线方程y=/(x)联立求解,可求得下一点b的坐标(乙,乙),再以点b为圆心进一步求得出c点,直到求出所有点。求解方法f(x x)2+(y y)2=/、“可求出(xI y-/(x)b,九)5可求出(x C,y C)所示,首先求出曲线起点a的坐标与该圆和已知曲线公切的直线,切点/(X-Xb)_+(y _ yt I y=.f(x)2.2.3等误差法直线段逼近的节点计算1)基本原理设所求零件的轮廓方程为y=x),如图3(乙,九),以点a为圆心,以心为半径作圆,分别为P(3,L),T(x,匕),求出此切线的斜率;过点a作PT的平行线交曲线于b 点,再以b点为起点

    17、用上法求出c点,依次进行,这样即可求出曲线上的所有节 点。由于平行线间距离恒为般,因此,任意相邻两节点间的逼近误差为等误差。2)计算步骤(1)以起点a(x,几)为圆心,黑为半径作圆:(2)求圆与曲线公切线PT的斜率,用以下方程联立求号,力,仁一-=-上(圆切线方程)巴-xp y p-y a_j、尸=J _ xj+九(圆方程)匕一=/(%).(曲线切线方程)Xt-XP y=f(H)(曲线方程)(3)过a点与直线PT平行的方程为y-=k(x-Xa)(4)与曲线联立求解b点(x”,乙)y-ya=左(一%)I y=/(x)(5)按以上步骤顺次求的c,d.各节点坐标 3)特点6各程序段误差S均相等,程序

    18、段数目最少。但计算过程比较复杂,必须由计算机 辅助才能完成计算。在采用直线段逼近非圆曲线的方法中,是一种较好的方法。72.3.流程图以等间距法直线逼近抛物线为例,列出流程图,如图4图4抛物线流程图83.软件的介绍3.1开发工具与语言:以Visual B asic6.0(VB 6.0)作为开发平台。VB具有友好的用户界面,是面向对象的可视化设计工具,在解决加工仿真方面VB提供了直接有效的可视化途径,因此选用VB为开发工具3.2 人机界面的确定:Visual B asic6.0(VB 6.0)3.3软件设计原则及进度规划:1.软件要求使用方便,操作灵活,界面美观。另外要求接口明确,可拓展性强.2.

    19、划分模块并行进行,分阶段串行实施计划。尽量把软件做好,做3.4.1.使用说明首先选择要逼近的非圆曲线,然后按要求填输入各参数,点击输出曲线按钮,即可输出 9用点构成的曲线图形,用黑线表达,点击直线逼近曲线按钮即可输出用直线逼近的曲线 图形,用红线表示。输出CNC代码的窗口隐藏了,当点击输出CNC代码按钮时,其就会 弹出来,当点清空按钮时,就会清空输出的曲线和NC代码,并且隐藏NC代码窗口,有 时候输入的误差比较小时,运行的速度比较慢,要耐心等候,运行过程中不要胡乱点那 些按钮,因为这样会造成死机。3.5.输出结果3.5.1.如图6所示输入参数,然后输出直线逼近的抛物线,输出的CNC代码如图7所

    20、示。图6.输出直线逼近的抛物线10图7.输出抛物线的CNC代码3.5.2.输出直线逼近的椭圆和双曲线,如图8、图9所示。图8.输出直线逼近的椭圆11图9.输出直线逼近的双曲线四.课程总结课程设计主要是让我们对所学到的知识作一个系统全面的总结,然后运用到实际应用 中,达到融汇贯通的效果,这次的课程设计真的达到了这个目的了。首先就是对于VB的运用,大一的时候学习了 VB语言,但是很少用,很快就忘光光了,刚开始听到课程设计的题目的时候真的无从下手,眼看结束课程的时间就快到了,就不 得不下定决心去做这个课程设计,一边做一边学习VB,首先是把要用到的直线都用直线 逼近出来了,就是还没有误差判别,然后就运

    21、用数控的知识进行误差判别,遇到不懂就 去请教同学,当时明明懂得其中的原理,但要在VB上实现却很困难,不是这里溢出就是 那边有错,还好通过跟同学们一起讨论,请教,学习到了很多,然后回来自己慢慢调试,经过一翻的努力,终于把抛物线逼近出来了,看到它输出的时候真的很兴奋,很有成就 感,有了做抛物线的基础,接下来做椭圆和双曲线就比较容易多了,其算法基本上一样,只是方程不同而已,所以很快就把它们调试出来了。通过课程设计把VB语言和数控仿真结合起来,加深了对数控机床对非圆曲线加工的 算法及其实现过程的理解,提高了对专业知识的学习能力及其分析问题和解决问题的能 力。同时我还懂得了,当接到一个不太熟悉的问题时,

    22、首先不要怕了它,而不敢开始解 12决它,要勇于挑战它,下定决心,一步一步来,遇到问题更要慢慢研究,问题总会有解 决的方案的,只要肯努力,只要有一种永不言弃的精神,相信很快就会把问题解决了。最后谢谢老师一个学期来的教导,你的课思路清晰,重点突出,我们学起来比较容易,你的课程带给我们很多数控技术的专业知识,让我了解了数控机床的结构、其运作、控 制、加工过程,同时也了解到目前数控技术的发展状况,谢你!老师,带我们走进了数 控这个领域。五.参考文献 1.新编Visual B asic程序设计教程 江志文主编 中山大学出版社 2.Visual B asic6.0应用编程150例 王兴晶 尹立宏等编著 电

    23、子工业出版 社。3.数控技术 主编廖效果副主编刘又午 湖北科学技术出版社13六.主要程序附录Dim a As Single,b As Single,c As Single,x(5)As Single,y(5)As Single,temp As Integer,i As SingleDim s As Single,si As Single,j As Single,k As Single,al As Single,bl As Single,cl As SingleDim w As Single,m As Single,1 As IntegerDim pie As SinglePrivate Sub

    24、 Commandl_Click()Picturel.AutoRedraw=TruePicturel.DrawWidth=1If temp=1 ThenCall paowuxianFor x(0)=-20 To 20 Step 0.0005Picturel.PSet(x(0),a*x(0)-2+b*x(0)+c),vbB lackNext x(0)ElseIf temp=2 ThenCall tuoyuanFor i=-10 To 10 Step 0.01x(1)=a*Cos(i)y(1)=b*Sin(i)Picturel.PSet(x(1),y(1),vbB lackNext iElseIf

    25、temp=3 ThenCall xiangquxianFor x(0)=-100 To 100 Step 0.000514Picturel.PSet(x(0),a/x(0),vbB lack Next x(0)End IfEnd IfEnd IfEnd SubPrivate Sub Command2_Click()Picturel.CisTextl.Text=Text2.Text=Text3.Text=Text4.Text=”Text5.Text=Text5.Visible=FalseOptionl=True0ption2=False0ption3=FalseEnd SubPrivate Su

    26、b Command3_Click()EndEnd SubPrivate Sub Command4_Click()v=Vai(Text4.Text)s=1If temp=1 Then输出抛物线15Call paowuxian linel:1=2x(0)=-5 0y(0)=a*(x(0)设置抛物线的起点2+b*x(0)+cPicturel.PSet(x(0),y(0),vbRed输出NC代码前两句Text5.Text=G 9 2 xO yO zO&vbCrLf&N1 G 9 0 G OO&Text8.Text&x&x(0)&y&y(0)&M03 S&Text6.Text&vbCrLfText5.T

    27、ext=Text5.Text&N2 G 01 x&x(0)+s&y一&a*(x(0)+s)2+b*(x(0)+s)+c&F&Text7.Text&vbCrLfDox(1)=x(0)+s y(D=a*(x(l)k=(y(1)-y(0)x(3)=(k-b)/y(3)=a*(x(3)al=y(0)-y(1)bl=x(1)-x(0)cl=(y(0)*x(1)2+b*x(1)+c/s(2*a)2+b*x(3)+c-y(l)*x(0)w=Abs(al*x(3)+bl*y(3)-cl)/(Sqr(al 2+bl 2)计算出 误差If w 二 v Then 直线Picturel.Line-(x(1),y(1)

    28、,vbRed x(0)=x(l)y(0)=y(1)y(1)=Format(y(1),#.#)Else16s=s/2 G oTo linel End If 1=1+1Text5.Text=Text5.Text&N&1&x&x(1)&y&y(l)&vbCrLf Loop While x(0)=5 0 1=1+1Text5.Text=Text5.Text&1&G OO G 40 xO yO M02Else,输出椭圆 If temp=2 Then Dim m As Integer s=0.5 Call tuoyuan pie=3.1415 9 26 line2:1 二 2 i=pie/2 x(0)=a

    29、*Cos(i)y(0)=b*Sin(i)Picturel.PSet(x(0),y(0),vbRed 确定起点 输出NC代码前两句Text5.Text=G 9 2 xO yO zO&vbCrLf&N1 G 9 0&Text8.Text _&G 00 x&x(0)&y&y(0)&M03 S&Text6.Text&vbCrLf Text5.Text=Text5.Text&N2 G 01 x”&a*Cos(i+s*pie)&y _&b*Sin(i+s*pie)&F&Text7.Text&vbCrLf Do While i=3*pie/217i=i+s*pie x(l)=a*Cos(i)y(1)=b*S

    30、in(i)If x(1)x(0)And y(1)y(0)Thenk=(y(0)-y(D)/(x(0)-x(l)End Ifj=(Atn(-b/(a*k)*2+3*pie/2x(3)=a*Cos(j)y(3)=b*Sin(j)al=y(0)-y(1)bl=x(1)-x(0)cl=y(0)*x(1)-y(1)*x(0)w=Abs(al*x(3)+bl*y(3)-cl)/(Sqr(al-2+bl-2)If w=v ThenPicturel.Line-(x(1),y(1),vbRed Else s=s/2G oTo line2End IfText5.Text=Text5.Text&N&1&x&x(1)

    31、&y&y(l)&vbCrLf Loopi=3*pie/2 x(0)=a*Cos(i)y(0)=b*Sin(i)Picturel.PSet(x(0),y(0),vbRedDo While i=5*pie/2 i=i+s*pie x(l)=a*Cos(i)y(1);b*Sin(i)18If x(1)x(0)And y(1)y(0)Then k=(y(0)-y(D)/(x(0)-x(l)End If j 二(Atn(-b/(a*k)+pie/2)*2+3*pie/2x(3)=a*Cos(j)y(3)=b*Sin(j)al=y(0)-y(1)bl=x(1)-x(0)cl=(y(0)*x(1)-y(1)

    32、*x(0)w=Abs(al*x(3)+bl*y(3)-cl)/(Sqr(al 2+bl 2)If w=v ThenPicturel.Line-(x(1),y(1),vbRedElse s=s/2 G oTo line2End If 1=1+1Text5.Text=Text5.Text&N&1&x&x(1)&y&y(l)&vbCrLf Loop 1=1+1Text5.Text=Text5.Text&1&G 40 G OO xO yO M02Else,输出双曲线If temp=3 Thens=0.5Call xiangquxianline3:191=2 x(0)=-5 0 y(0)=a/x(0)P

    33、icturel.PSet(x(0),y(0),vbRed 输出NC代码前两句Text5.Text=G 9 2 xO yO zO&vbCrLf&N1 G 9 0 G OO&Text8.Text _&x&x(0)&y&y(0)&M03 S&Text6.Text&vbCrLf Text5.Text=Text5.Text&N2 G 01 x&x(0)+s&y _&a/(x(0)+s)&F&Text7.Text&vbCrLf Do While x(0)(-s)x(1)=x(0)+s y(D=a/x(l)If s 0 Thenk=(y(0)-y(D)/s End Ifx(3)=-Sqr(a*(x(0)-x

    34、(l)/(y(l)y(0)计算与逼近曲线误差最大 的点If x(3)0 Then y(3)=a/x(3)End If al=y(1)-y(0)bl=x(0)-x(1)cl 二(y(1)*x(0)-y(0)*x(1)w=Abs(al*x(3)+bl*y(3)-cl)/(Sqr(al 2+bl 2)计算误差 If w=v Then 比较计算误差与允许误差,若小于就输出曲线,否则重新计算 Picturel.Line-(x(1),y(1),vbRed x(0)=x(l)y(0)=y(1)Else20s=s/2G oTo line3End If 1=1+1Text5.Text=Text5.Text&N&

    35、1&x&x(1)&y&y(l)&vbCrLf Loop输出x大于0一边的曲线 si=s x(0)=si y(0)=a/x(0)Picturel.PSet(x(0),y(0),vbRedDo While x(0)=40 x(1)=x(0)+siy(D=a/x(l)Picturel.Line-(x(1),y(1),vbRedx(0)=x(l)y(0)=y(1)1=1+1x(1)二 Format(x(1),#.#)y(1)=Format(y(1),#.#)Text5.Text=Text5.Text&N&1&x&x(1)&y&y(l)&vbCrLf Loop 1=1+1Text5.Text=Text5

    36、.Text&1&G OO G 40 xO yO M02End IfEnd IfEnd IfEnd Sub21Private Sub Command7 _Click()Text5.Visible=TrueLabel9.Visible=TrueEnd SubPrivate Sub Optionl_Click()Label 1.Caption二请输入抛物线方程y=ax-2+bx+c的系数a、b、c temp=1Text2.Visible=TrueText3.Visible=TrueLabel3.Visible=TrueLabel4.Visible=TrueText5.Visible=FalseLab

    37、el9.Visible=FalseEnd SubPrivate Sub 0ption2_Click()Labell.Caption=请输入椭圆方程 x=acos(i),y=bsin(i)的系数 a、bText3.Visible=FalseLabel4.Visible=FalseText2.Visible=TrueLabel3.Visible=TrueText5.Visible=FalseLabel9.Visible=False temp=222End SubPrivate Sub Option3_Click()Labell.Caption=请输入双曲线y=a/x的系数atemp=3Text2.

    38、Visible=FalseLabel3.Visible=FalseText3.Visible=FalseLabel4.Visible=FalseText5.Visible=FalseLabel9.Visible=FalseEnd SubPrivate Sub 0ption4_Click()Text8.Text=G 41 DOIEnd SubPrivate Sub 0ption5 _Click()Text8.Text=G 42 DOIEnd SubPrivate Sub Text4_Change()Picturel.AutoRedraw=TruePicturel.SealeMode=0Pictu

    39、rel.ScaleMode=3Picturel.Scale(-5 0,5 0)-(5 0,-5 0)设置座标范围Picturel.Line(-5 0,0)-(5 0,0),vbB luePicturel.Line(48,2)-(5 0,0),vbB luePicturel.Line-(48,-2),vbB lue23Picturel.ForeColor=vbB luePicturel.Print X”Picturel.Line(0,5 0)-(0,-5 0),vbB luePicturel.Line(2,48)-(0,5 0),vbB luePicturel.Line-(-2,48),vbB luePicturel.Print Y”Picturel.CurrentX=1Picturel.CurrentY=-1Picturel.Print 0”End SubPublic Sub paowuxian()a=Vai(Textl.Text)b=Vai(Text2.Text)c=Vai(Text3.Text)End SubPublic Sub xiangquxian()a=Vai(Textl.Text)End SubPublic Sub tuoyuan()a=Vai(Textl.Text)b=Vai(Text2.Text)End Sub24


    注意事项

    本文(用Visual Basic语言来实现非圆曲线的逼近.pdf)为本站上传会员【曲****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表




    页脚通栏广告
    关于我们 - 网站声明 - 诚招英才 - 文档分销 - 便捷服务 - 联系我们 - 成长足迹

    Copyright ©2010-2024   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:4008-655-100    投诉/维权电话:4009-655-100   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   



    关注我们 :gzh.png  weibo.png  LOFTER.png