编程计算

2024-05-09

编程计算(精选十篇)

编程计算 篇1

1 计算机编程思想研究

1.1 计算机语言应用及环境分析

就现阶段而言,计算机编程仍然受诸多编程环境的影响,目前,常见的编程环境主要有Vista操作系统、Windows操作系统和Linux操作系统等。不同的编程语言对不同编程环境的适应性也不尽相同,例如,C语言因其简单紧凑、应用方便和运算、数据类型丰富等特点十分适用于Windows操作系统中,而HAL.DLL及计算机相关硬件部分则以传统的汇编语言为主[1]。

1.2 结构化程序设计

计算机的结构化编程思想是当其在面临复杂任务时,为防止任务混乱而产生的一种编程思想,该思想的重点是将程序进行规范化,具体内容如下:通过采用模块分解和功能抽象,进而将复杂的任务分解成容易处理和控制的子任务,并对分解后的子任务实施级别更加细化的任务划分,从而确保最终得到的子任务成为一种能够独立进行程序编写的子程序模块,并以相关调用和结构关系为依据,将此类模块进行组织协调,最终获得所需程序。需要说明的是,对任意的大型程序,其基本构成程序总是包括三种基本基本结构,分别为顺序结构、选择结构和循环结构。根据所要实现的功能,将大型程序划分成若干个基本功能模块,各功能模块均能够实现对计算机的控制和数据处理,从而按照层次关系,进行合理组织,实现复杂程序的相关功能[2]。

1.3 面向对象程序设计

基于面相对象设计的编程思想将对象、类、封装以及消息和集成等概念对相关程序展开设计,并为了能够解决结构化程序设计难以处理的部分问题,如代码重用等,从而提出了面向对象程序设计的技术,其编程思想的特点如下:1)封装。作为类与对象概念的主要特征,封装能够使模块的独立性大幅提升,从而为用户对程序做出修改与维护提供了保证;2)抽象与继承。抽象主要包括了对程序数据与编写过程的抽象,而继承性则使得所编写程序的可重用性问题得以良好解决。面向对象程序开发思想的上述优越性使其能够针对所编写的程序积极引用较为成熟的类库,进而从整体上提高了软件开发的效率。

结构化程序与面向对象程序两种编程思想并不是各自独立的,二是相互支持并存在关联的,就现阶段而言,在进行面向对象的程序设计时,通常以“对象=算法+数据结构”或“程序=对象+对象”来进行,由此可知,在进行面向对象程序设计时,仍然需要对算法予以良好实现的结构化程序设计思想,以此确保程序编写的准确性和全面性[3]。

2 AOP编程思想研究

2.1 AOP编程的开发思想

计算机编程思想和编程技术的发展使得以面向对象为主要思想的编程方法成为了计算机编程领域应用最为广泛的思想,有效促进了编程技术的发展。然而,面向对象的编程思想始终难以克服在编程过程中发生的冗余问题。基于此,经过相关领域人员的研究和分析,AOP编程思想得以产生。

AOP,即面向切面编程是一种利用程序运行期动态代理和预编译方式实现程序功能的一类编程技术,其实质上是OPP编程的扩展和延伸,同时,也是基于Java语言的Spring开源框架的重要组成部分,通过隔离业务逻辑的各个部分,从而降低其彼此间的耦合度,在具备面向对象变成的程序可重用性优势的同时,也大幅提高了软件开发的效率[4]。

2.2 AOP编程思想的优势

AOP编程思想具有记下几方面优势:1)更好地定义服务。利用AOP编程思想展开程序编程能够促使服务实现多元化应用,并在确保编程简易化的同时,获取更多的程序功能。2)较高的专注性。在对离散方面子程序进行创建时,能够积极引用开发团队的某项工作进行专注开发,对于团队中的精英而言,其可以较好地实现编程体验,从而提高自身编程技能并增加AOP编程经验。3)编程的持久性。在利用AOP编程思想展开基本结构程序的面向对象编程时,开发人员可以独立的方式利用相同的编程代码进行对象的创建,并通过调用所创建对象,降低程序重复编译的次数,促使程序编译效率实现最大化[5]。

2.3 AOP将系统视为关注点

AOP同样也是GOF设计模式的延伸,通过强调调用对象与被调用对象的解耦思想,从而为开发人员提供了能够进行横切关注点描述的科学机制,同时,将横切关注点予以主动织入到面向对象的程序当中,从而为横切关注点模拟化提供了良好的保障,使其能够对方面代码做出合理划分,提高程序开发效率。对于开发人员而言,通过AOP编程思想的利用,能够使其在进行程序编译时更好地对系统的方面代码进行插入、更改和删除,使得程序的可重用性得到大幅提升。

2.4 AOP编程软件性能

基于AOP编程思想的软件具有以下两方面性能:1)代码冗余度。在OOP(面向对象编程)中,因横切关注点通常涉及的模块种类较多,故围绕横切关注点的程序功能的实现也大都分布在诸多模块当中,例如,在一个对数据库予以引用的系统当中,系统的性能则极有可能对所有访问数据库的模块产生影响,从而将代码分散至不同模块中。对于AOP而言,其模块化横切关注点对每个关注点的处理方面采取最小耦合的思想,使得横切关注点也具有了模块化性能,基于此种设计产生的系统,不仅代码冗余度大幅减小,而且对各模块功能的调用效率也得到了有效提升,为系统维护人员的维护工作奠定了良好基础[6]。2)对于面向对象的程序设计而言,由于其一个模块通常要实现多个关注点的对应,故而使得其他对类似功能具有需求的系统并不能马上对该模块进行调用。对于AOP程序设计而言,其通过将每一方面(Aspect)进行独立模块化,从而确保各个模块间呈现出一种松散耦合的状态。例如,在程序编写时,能够引入另一独立日志写入器对既有的日志写入器予以替换,从而将日志写入数据库当中,使不同日志的写入需求均能够得到良好实现。由此可见,基于AOP编程思想的各模块松散耦合的实现能够有效提高代码重用性,与OOP编程相比,实现模块松散耦合方面具有较大优势。

3结论

计算机三级编程题 篇2

请编制程序PROG1.ASM,其功能是:内存中连续存放着二个无

??符号字节序列A(k)和B(k)(k=0,…,9;下同),求序列C(k),C(k)=A(k)+B(k),

??C(k)以字的形式按C(0),…,C(9)的顺序连续存放。

?? 例如:

?? 序列A(k)为30H,31H,61H,FFH,…;

?? 序列B(k)为00H,01H,F1H,0AH,…。

?? 则结果C(k)为0030H,0032H,0152H,0109H,…。

?? 部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT

??中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,

??由过程SAVE保存到文件OUTPUT1.DAT中,

?? 填空BEGIN和END之间已给出的`源程序使其完整 (空白已用横线

??标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦

??可), 或删除BEGIN和END之间原有的代码并自行编程来完成要求的

??功能。

?? 对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE执行文

??件, 最终运行程序产生结果(无结果或结果不正确者均不得分)。调

编程计算 篇3

关键词:编程;辅助编程;即时风格块

中图分类号:TM571.6

对于即时风格块辅助编程来说,在一般人的眼中,是一种非常专业的东西。简单来说,所谓的即时风格块辅助编程只是计算机编程中的一个重要组成部分,在近几年的研究中,得到了大幅度的开发,其功能得到了较大的进步,对人们的生活和工作产生了较大的积极影响。鉴于这样的情况,科研人员需要对计算机编程中即时风格块辅助编程进行一定的深化,将其中的隐患和一些问题进行排查和清除,这样才能有效的保证即时风格块辅助编程更好的服务于用户。我国在这方面已经有所成就,本文就计算机编程中即时风格块辅助编程的运用方法进行一定的思考。

1 即时风格块辅助编程的运用现状

1.1 范围有限

对于即时风格块辅助编程来说,在现阶段的运用中,运用范围有限是一个主要的问题,主要原因在于,我国虽然在即时风格块辅助编程方面已经有了一定的成就,但仅限于科研人员选定的范围,对于绝大部分的用户来说,在即时风格块辅助编程方面,有的只是一些概念性的定义,或者道听途说,而体验过的用户对于即时风格块辅助编程的了解也不是特别的多,科研人员只是需要一些数据而已,综合起来,无论是没有体验过的用户,还是已经体验过的用户,对于即时风格块辅助编程来说,只是有一个模棱两可的感觉,运用即时风格块辅助编程的范围是有限的。

1.2 问题较多

在即时风格块辅助编程中,虽然对广大的用户产生了很大的积极影响,但存在的问题也较多,比方说与现有的一些系统不兼容,与一些程序发生冲突等等,这都对用户产生了一定的消极影响。现阶段的社会发展较快,即时风格块辅助编程需要得到一定的突破,对于上述问题来说,是必须解决的,值得注意的是,有些科研机构在解决的时候,采取的是暂时性的措施,这种方法有好处,也有坏处。好处是可以为用户暂时提供一定的良好服务,为科研人员争取一定的研究时间;坏处是在将来的时间内,一旦科研人员没有研究出良好的解决办法,将会使得问题的严重程度增加。因此,在即时风格块辅助编程的运用现状中,问题比较多,而且难以解决,用户对即时风格块辅助编程产生了一定的质疑,广大的用户需要的是全面服务,而不是为了一个即时风格块辅助编程舍弃其他的程序应用。

1.3 步骤繁杂

在计算机编程中,任何一个环节都比较复杂,这是一个公认的事实。但在即时风格块辅助编程中,步骤不是一般的繁杂,经过一定的调研,广大的用户反馈的是,在应用即时风格块辅助编程后,很多的应用都出现了迟缓的现象,而且在工作和生活中,计算机也受到了一定的消极影响,这也跟具体的职业和人群有一定的关系,但归根结底是即时风格块辅助编程步骤繁杂的原因。为了能够更好的服务于用户,促进即时风格块辅助编程的发展,必须良好的解决这一问题,改变这一现状,只有这样才能提高计算机编程的整体性能,从而对用户的生活和工作产生积极影响。

2 计算机编程中即时风格块辅助编程的运用方法

2.1 扩大范围

对于计算机编程而言,随着应用人群的日益增多,对其产生了一定的积极影响,鉴于这样的情况,也需要扩大即时风格块辅助编程的应用范围,但并不是单纯的扩大,要注意划分职业和人群的类别。在职业方面,有白领级别、老板级别;在人群方面,有老人、年轻人、中年人,按照这样的划分进行扩大范围,同时及时的进行调研,将反馈意见和建议及时的送到科研人员的手中,这样就可以将即时风格块辅助编程中的一些问题及时的解决。主要原因在于,科研人员在进行研究的时候,角度比较单一,而且他们主要是在实验室进行研究,广大的用户所面多的环境比较多样,接触的人群较多,符合即时风格块辅助编程的应用要求,用户所反馈出来的信息能够对即时风格块辅助编程的研究产生一定的积极影响。因此,需要扩大范围。

2.2 综合因素进行考虑

对于即时风格块辅助编程来说,只是计算机编程中的一个环节而以,虽然起到了很重要的作用,得到了很大的发展,但并没有办法完全的代替全部的计算机编程,鉴于这样的情况,必须在运用的过程中,综合因素进行考虑。从内部来说,需要考虑到其他的环节,计算机编程具有多个版块和方面,即时风格块辅助编程占据其中重要的一环,只有让即时风格块辅助编程与其他的环节产生良性的循环,才能让用户有最好的体验;从外部来说,需要与计算机的系统等方面兼容,只有这样才能保证即时风格块辅助编程在运用的过程中不会受到外力的干扰。

2.3 自身进行优化

在上文中,我们提到了即时风格块辅助编程存在步骤复杂的情况,为了让用户更好的使用即时风格块辅助编程,必须对步骤进行一定的简化,对即时风格块辅助编程进行一定的优化处理。其中,简化步骤只是一个方面,在即时风格块辅助编程中,有很多的方面都可以进行优化,比方说在与其他程序进行配合使用的时候,会有一些重复的程序出现,重复的程序可以进行一定量的删除,减少空间,这样就可以提高即时风格块辅助编程的性能,使用户在使用风格块辅助编程的时候,更加的流畅,同时不会影响到其他程序的使用。

3 对计算机编程中即时风格块辅助编程的运用方法的思考

3.1 从实际的情况出发

对于科研人员来说,即时风格块辅助编程已经得到了很大的发展,面对新的环境,新的用户,科研人员需要研究出新的成果。但客观因素的制约性较强,主观性因素没有办法改变,很多的科研人员由于主观因素过强,没有从实际的情况出发,片面的追求即时风格块辅助编程的某一方面,或者计算方式、或者步骤的简化,导致在即时风格块辅助编程方面,开始使用的时候,的确显现出了一定的优势,但在日后的使用中,隐患逐渐的凸显,对用户造成了很大的损失。在计算机编程中,需要进行不断的调查和研究,了解用户的需求和社会的发展情况,从实际的情况出发,这样才能研究出最好的即时风格块辅助编程,一旦片面的追求某一个方面,只会产生消极的影响。

3.2 借鉴国际的先进技术

在计算机编程中,国际的技术已经达到了较为高端的水平,我国的即时风格块辅助编程虽然是较为新鲜的领域,但可以借鉴一些国际上先进的技术,这对于推动即时风格块辅助编程的研究,是有一定的积极影响的。在计算机编程中,所有的模块都是环环相扣的,国际的一些先进编程在这方面是非常高端的,我国的即时风格块辅助编程虽然较为先进,但没有与计算机编程中的其他方面良好的配合,鉴于这样的情况,需要进行一定的借鉴,从而弥补这一不足。除此之外,我国的即时风格块辅助编程与国际的很多计算机编程都有以一定的共同之处,良好的借鉴具有很大的促进作用。

4 总结

计算机编程是现阶段社会发展不可或缺的一个因素,而即时风格块辅助编程又是社会关注的焦点,我国经过不懈的努力,已经取得了一定的成果,对广大的用户产生了较为广泛的积极影响。本文对计算机编程中即时风格块辅助编程的运用方法进行了一定的思考,除了本文所阐述的方面,加强自主研究也是非常重要的一个方面,任何一个国家在计算机编程中都在不断的自主研究,只有这样才能获得更大的突破。相信我国在将来的发展中,一定会在即时风格块辅助编程的运用方法上,得出更加高端的方式。

参考文献:

[1]文韬.浅谈计算机编程能力的构思[J].新课程学习(社会综合),2009(04).

[2]清水.7种正在流行的编程语言[N].计算机世界,2010(40).

[3]李建新,肖天灿.归纳法应用在计算机编程中的一个案例[J].实验教学与仪器,2010(05).

计算机辅助与数控编程 篇4

计算机辅助设计 (CAD) 是人和计算机相结合、各尽所长的新型设计方法。包括分析和综合两方面的内容。

计算机辅助制造 (CAM) 是数控 (NC) 技术发展的必然需求, 它为解决复杂曲面加工编程问题提供了非常有效的途径, 它是利用CAD产生的几何模型, 借助于相关的程序自动生成用于控制数控机床进行加工的数控程序。CAM的应用取代了传统手工编程方法, 提高了编程的精度和效率。

CAD与CAM的有机集成而形成的CAD/CAM系统, 整个设计和制造过程中通过数据共享来使用公用数据库中的数据, 既提高了工作效率, 又降低了出错的可能性。

2 图形交互式自动编程的步骤

2.1 零件的几何建模

对于基于图纸以及型面特征点测量数据的复杂形状零件数控编程, 其首要环节是建立被加工零件的几何模型。

2.2 加工方案与加工参数的合理选择

数控加工的效率与质量有赖于加工方案与加工参数的合理选择, 其中刀具、刀轴控制方式、走刀路线和进给速度的优化选择是满足加工要求、机床正常运行和延长刀具寿命的前提。

2.3 刀具轨迹生成

刀具轨迹生成是复杂形状零件数控加工中最重要的内容, 能否生成有效的刀具轨迹直接决定了加工的可能性、质量与效率。刀具轨迹生成的首要目标是使所生成的刀具轨迹能满足无干涉、无碰撞、轨迹光滑、切削负荷光滑并满足要求、代码质量高。同时, 刀具轨迹生成还应满足通用性好、稳定性好、编程效率高、代码量小等条件。

2.4 数控加工仿真

由于零件形状的复杂多变以及加工环境的复杂性, 要确保所生成的加工程序不存在任何问题十分困难, 其中最主要的是加工过程中的过切与欠切、机床各部件之间的干涉碰撞等。对于高速加工, 这些问题常常是致命的。因此, 实际加工前采取一定的措施对加工程序进行检验并修正是十分必要的。数控加工仿真通过软件模拟加工环境、刀具路径与材料切除过程来检验并优化加工程序, 具有柔性好、成本低、效率高且安全可靠等特点, 是提高编程效率与质量的重要措施。

2.5 后置处理

后置处理是数控加工编程技术的一个重要内容, 它将通用前置处理生成的刀位数据转换成适合于具体机床数据的数控加工程序。其技术内容包括机床运动学建模与求解、机床结构误差补偿、机床运动非线性误差校核修正、机床运动的平稳性校核修正、进给速度校核修正及代码转换等。因此后置处理对于保证加工质量、效率与机床可靠运行具有重要作用。

3 典型的CAD/CAM软件

3.1 Master CAM软件

Master CAM软件是美国CNC Software INC研发的基于PC平台的CAD/CAM系统, 其销售量高居全球第一。这是专为复杂外形及曲面加工所设计的最经济有效的CAD/CAM工具软件, 它在造型功能、加工功能、仿真模拟、显示屏幕以及数据接口等领域均有上乘表现, 包括美国在内的各工业大国皆一致采用此系统, 作为设计、加工制造的标准。它可以帮助用户轻松构建2D或3D图形, 并可以通过设置刀具路径及参数来加工出用户需要的成品。它所构建的图形全部适用于Master CAM中的两轴至五轴铣削模块、车铣复合加工模块以及线切割等模块, 也可以与其他的CAD软件的输出图形兼容, 例如DXF、IGES、STL、STA文件等。Master CAM不仅提供可靠与精确的刀具路径, 更让NC程序设计师可以轻而易举地设计出最具效率的加工程序。

此工具软件具有下列几个特点:提供可靠与精确的刀具路径;可以直接在曲面及实体上加工;提供多样加工方式;提供完整的刀具库及加工参数数据库;拥有多种后置处理功能, 适合用来生成适用的NC程序。

3.2 Pro/ENGINEER软件

Pro/ENGINEER自从1988年问世以来, 已发展成为当今世界最普及的三维CAD/CAM系统之一, 广泛应用于电子、机械、模具、工业设计、汽车、航空航天、家电和玩具等各行各业。Pro/ENGINEER是一个全方位的三维产品设计开发软件, 集成了零件设计、产品装配、模具开发、数控加工、钣金件设计、铸造件设计、造型设计、逆向工程、自动测量、机构仿真、应力分析和产品数据库管理等多种功能。

3.3 UG软件

UG是UNIGRAPHIC的简称, 它起源于美国麦道飞机公司, 以CAD/CAM一体化而著称, 可以支持不同的硬件平台。它由CAD、CAE、仿真、质量保证、开发工具、软件接口、CAM及钣金加工等部分组成。该软件已广泛应用于机械、模具、汽车及航空领域, 它常用于注射模、钣金成形模及冲模设计与制造上。

CAD部分:包含特征造型 (Feature Modeling) 、曲线 (Curve) 、草图 (Sketch) 、自由成形特征及曲面 (Free Form Feature) 、绘图 (Drafting) 、装配 (Assembly) 、钣金 (Sheet Metal) 等模块。在此部分可以进行3D线框造型、3D实体造型、2D工程绘图、工程装配及检验、钣金设计等。

CAM部分:包含一般加工 (Point-To-Point) 、NC铣削加工 (Planer-Mill、Cavity Mill、Fixed-Mill等) 、NC车削加工 (Lathe-Rough、Lathe-Thread、Lathe-Drill等) 、线切割 (Wire-EDM) 等模块。在此部分根据CAD生成的模型或从外部输入的CAD模型, 选择相应的加工方法、刀具、工艺参数等, 生成加工刀具位置源文件 (CLSF) , 再经过后置处理成对应机床的加工程序即可使用。

CAE部分:包含有限元分析、机构分析等模块。在此部分能够对各种不同的设计方案进行快速的工作模拟, 进行结构解析和运动特性解析, 预测产品性能及功能。

3.4 CAXA系列软件

CAXA是北京航空航天大学海尔软件有限公司面向我国工业界推出的全中文界面的, 包括数控加工、工程绘图、注射模设计、注塑工艺分析、数控机床机床通信等一系列CAD/CAM/CAE软件的品牌名称。主要包括以下几种。

CAXA制造工程师 (CAXA-ME) :面向加工中心的CAM软件, 该软件具有强大的造型功能, 可快速建立复杂的三维模型, 具有灵活多样的加工方式。快速生成加工轨迹。通用后置处理适用于各种数控系统。支持三坐标测量机, 具有数控代码反读和真实感仿真功能。

CAXA注射模具设计 (CAXA-IMD) :注射模专业CAD软件。该软件提供注射模标准模架和零件库, 以及塑料、模具材料和注射机等的设计参数库。可随时查询、检索;并能自动换算型腔尺寸, 对模具进行各种计算。

CAXA注射工艺设计 (CAXA-IPD) :是与美国C-MOLD公司合作开发的面向注塑行业的CAE软件。采用国际CAE技术, 通过科学的分析方法和简便操作, 可预测注塑工艺过程, 确定优化的注塑工艺参数, 达到优化设计的目的。

CAXA线切割 (CAXA-WEDM) :数控线切割机床的CAM软件, 可以交互式绘制需切割的图形, 自动生成带有复杂形状轮廓的两轴线切割加工轨迹。输出3B或G代码, 支持快、慢走丝线切割机床的编程加工。

4 CAD/CAM数控编程系统的功能使用方法及应用过程

4.1 熟悉系统的功能与使用方法

1) 了解系统的功能框架。对于CAD/CAM数控系统首先应了解其总体功能框架, 包括造型设计、二维工程绘图、装配、模具设计、制造等功能模块, 以及每一个功能模块所包含的内容, 特别应关注造型设计中的草图设计、曲面设计、实体造型以及特征造型的功能, 因为这些是数控加工编程的基础。

2) 了解系统的编程能力。对于一个数控编程系统, 应了解其编程能力的编程能力。

3) 熟悉系统的用户界面及输入方式。系统是在图形交互方式下工作, 还是在命令交互方式下工作;系统是否具备批处理能力等。

4) 了解系统的文件管理方式。对于一个零件的编程, 最终要得到的是能在指定的数控机床上完成该零件加工的正确的数控程序, 该程序是以文件形式存在的。在实际编程时, 往往还要构造一些中间文件, 如零件模型 (或加工单元) 文件、工作过程文件 (日志文件) 、几何元素 (曲线、曲面) 文件、刀具文件、刀位文件、数控机床数据文件等, 应该熟悉系统对这些文件的管理方式及它们之间的关系。

4.2 分析加工零件

1) 分析待加工表面。一般来说, 在一次加工中, 只需对加工零件的部分表面进行加工。这一步骤的内容是:确定待加工表面及其约束面, 并对其几何定义进行分析, 必要的时候需对原始数据进行一定的预处理, 要求所有几何元素的定义具有唯一性。

2) 确定加工方法。根据零件毛坯形状以及待加工表面及其约束面的几何形态, 并根据现有机床设备条件, 确定零件的加工方法及所需的机床设备和工夹量具。

3) 确定编程原点及编程坐标系。一般根据零件的基准面 (或孔) 的位置以及待加工表面在毛坯上选择一个合适的编程原点及编程坐标系 (也称为工件坐标系) 。

4.3 对待加工表面及其约束面进行几何造型

这是上机编程的第一步。对于CAD/CAM数控编程系统来说, 一般可根据几何元素的定义方式, 在前面零件分析的基础上, 对加工表面及其约束面进行几何造型。

4.4 选择合理的刀具

一般来说, 可根据加工方法和加工表面及其约束面的几何形态选择合适的刀具类型及刀具尺寸。但对于有的复杂曲面零件, 则需要对加工表面及其约束面的几何形态进行数值计算, 根据计算结果才能确定刀具类型和刀具尺寸。这是因为, 对于一些复杂曲面零件的加工, 希望所选择的刀具加工效率高, 同时又希望所选择的刀具符合加工表面的要求, 且不与非加工表面发生干涉或碰撞。由于在某些情况下, 加工表面及其约束面的几何形态数值计算很困难, 只能根据经验和直觉选择刀具, 这时, 便不能保证所选择的刀具一定是合理的, 在刀具轨迹生成之后, 需要进行一定的刀位验证。

4.5 刀具轨迹生成及刀具轨迹编辑

对于CAD/CAM数控编程系统来说, 一般可在所定义加工表面及其约束面 (或加工单元) 上确定其外法向矢量方向, 并选择一种走刀方式, 根据所选择的刀具 (或定义的刀具) 和加工参数, 系统将自动生成所需的刀具轨迹。所要求的加工参数包括:安全平面、主轴转速、进给速度、线性逼近误差、刀具轨迹间的残留高度、切削深度、加工余量、进刀段长度及迟刀段长度等。当然, 对于某一加工方式来说, 只要求部分加工参数。一般来说, 数控编程系统对所要求的加工参数都有一个缺省值。刀具轨迹生成以后, 如果系统具备刀具轨迹显示及交互编辑功能, 则可以将刀具轨迹显示出来。如果有不太合适的地方, 可以在人工交互方式下对刀具轨迹进行适当的编辑与修改。刀具轨迹计算的结果存放在刀位文件 (.cls) 之中。

4.6 刀位验证

如果系统具有刀位验证的能力, 对可能过切、干涉与碰撞的刀位点, 采用系统提供的刀位验证手段进行检验。

值得说明的是, 刀位验证大量用到曲面求交算法, 计算时间比较长, 最好是在批处理方式下进行, 检验结果存放在刀位验证文件之中, 供分析和图形显示用。

4.7 后置处理

根据所选用的数控系统, 调用其数控系统特性文件, 运行数控编程系统提供的后置处理系统, 将刀位文件转换成数控加工程序。

参考文献

[1]赵国增.机械CADCAM.机械工业出版社, 2008.

[2]庞恩泉.CAD/CAM数控编程技术一体化教程.山东大学出版社, 2009.

计算机编程笔试题 篇5

1.(35分)

输入一个单链表,输出该链表中倒数第k个节点,链表的倒数第0个节点为链表的尾指针,

链表结构定义:

struct listnode{

int m_nkey;

listnode* m_pnode;

};

用c/c++编写printnode函数,要求考虑链表非常大时的时间复杂度;

printnode函数原型:void printnode(const listnode *link,int k);

注:可以不用c/c++编写,可以用你自己熟悉的语言编写,但是首先扣掉10,

另外 只写出思路或者伪代码,给5分;

2.(35分)

对一个整数数组,给定一个整数,在数组中找到两个数,这两个数之和等于所给定的这个整数,这样的数可能有多对,要求输出所有可能的组合。

要求考虑数组非常大,时间复杂度和空间复杂度;

二、测试(15分)

想办法测试msdn,尽可能考虑更多的用例,写出你的测试方案;

注:并非考试你是否学习软件测试,而是看你解决问题的思路,

三、写作(15分)

假如你现在手上有个不得不按时完成,而且所用工具是个陌生的没有时间来上手的,请你给你的pm发封英文电子邮件,请他帮你解决。

计算机编程语言能否享有著作权? 篇6

日前,美国联邦巡回上诉法院针对甲骨文公司诉谷歌公司侵犯JAVA作品著作权案作出二审判决,撤消了此前联邦旧金山地方法院作出的有关甲骨文公司的JAVA不享有著作权的一审判决。 这一案件集中于甲骨文公司对谷歌公司安卓手机操作系统侵犯Java相关版权的指控。在一份长达69页的判决书中,由3名法官组成的联邦巡回上诉法院合议庭裁定,甲骨文公司可以就谷歌公司在安卓系统中使用Java编程语言的行为要求版权保护,指导计算机执行预期操作的一系列指令中可能包含了符合版权保护条件的表达。

甲骨文公司此前起诉称,谷歌公司在开发Android系统的过程中抄袭了许多材料,包括超过37个Java的API,以及11行Java源代码。甲骨文公司认为这些代码应当受到版权法的保护。

2012年,美国旧金山地区法官威廉·阿尔苏普判决称,这种情况不受版权法保护。他在2012年5月31日的一份声明中清楚地说明了这一点并且否定了先前陪审团对于谷歌公司的行为构成侵权的认定:“接受甲骨文公司的声明意味着任何人都可以对某一指令系统的某一版本的代码要求版权保护,并禁止其他任何人用自己的代码方式实现相同的指令系统或部分指令系统。从未有过任何判决鼓励或者支持这样的主张。”

而美国联邦上诉法院在甲骨文上诉之后做出了相反的判决,并且这直接导致了谷歌公司将整个案件上诉至美国最高法院。联邦上诉法院在2014年5月的判决中写到:“我们认为一个API软件包中代码的声明,结构和组织方式是受版权保护的。我们决定推翻此前地区法院关于API版权的判定,并恢复陪审团给出的关于谷歌侵权的意见”。

在著作权法基础理论中有一项重要的理论即思想与表达两分法,著作权只保护思想的表达而不保护思想本身。在计算机软件中,所有的功能、方法、流程均被视为思想而不受著作权法保护。进一步,为了明确两分法,产生了吸收原则,即如果一种思想仅有一种或者有限的几种方式表达,该表达因为受思想吸收而不受保护。

一审法院认为,JAVA API实际上就是函数接口信息,由于函数是功能,因此不受保护。而接口程序虽然是表达,但是如果谷歌公司为了兼容目的,仅能采用一种方式编写API,那么API的表达被函数的功能吸收,因此JAVA API不能受保护。

二审判决则认为,所谓表达方式有限不是“抄袭时”的表达方式有限,而是“创作时”的表达方式有限。换句话说,最初Sun公司在编写Java的API时,表达方式很多。编好了之后,谷歌公司要复制的时候,当然只有一种方法。该情形下,不能因为和功能有结合而就完全放弃对表达的保护。至于是否兼容,那是“合理使用”的问题,而不是受不受著作权法保护的问题。而是否构成“合理使用”也是二审法院责令一审法院继续进行审理的问题。

计算机编程优化的研究 篇7

算法作为计算机学科的一项重要基础, 而且是数学的重要组成部分。得益于信息技术的不断发展创新, 算法对于计算机科学的意义也愈显重大, 对计算机科学的发展起到了举足轻重的推动作用, 正是由于以上原因, 对于计算机专业研究人员来说, 算法成为了其必备的数学素养。对计算机专业的学生教授算法, 不仅有助于构建算法思想的思维模式, 而且在教学中通过讲解具有应用意义的数学实例, 可以使学生学习撰写算法报告的手段。设计程序框图是学习数学算法的极为有用的工具, 学生通过研究、设计、模仿等手段, 培养基本的数学算法思想, 培养独立解决问题的能力, 提高逻辑推理能力, 为编程课程的顺利学习奠定坚实的基础。

2 计算机编程

计算机编程的实质就是翻译计算机语言, 通过计算机编程技术使不同的应用功能得以实现。可以说计算机编程技术是以计算机语言为基础的一项计算机技术。受制于海量数据运算, 对结果精确要求越来越严格, 人们对数据处理工具的需求也就随之出现, 而计算机正是满足了人们这方面的需求。计算机的一个显著优势就是超高的运算效率——可以达到每秒几千万次, 甚至几亿次。计算机的每一次升级, 就是提高计算机额运算效率, 而这对计算机来说也是最大的要求。计算机的实用性要想具有一定水平的保证, 就要最大限度的提高计算机的运转效率。

在计算机编程领域, 数学算法将会起到巨大的优化作用, 因为它是能够通过发现规律从而达到节省工作量的一种技巧与思想。作为一种计算机程序的设计汇编语言, C语言成为了一种基础的计算机语言。在编程时, 编程人员首先需要关注的就是代码逻辑的运行过程。由于C语言内在局限性, 导致了不简洁的编程, 而这对计算机的运算效率造成了严重影响。相比较而言, 精简代码就成为了数学算法的最大优势。其主要目的就是提高计算机的操作效率, 而这就是通过简化编程中冗杂的代码程序得以实现。逻辑分析是计算机编程的前提, 从而设计出程序的流程。计算机程序作为一种操作程序, 其本质上是通过代码这一工具实现的;而数学算法作为一种处理编程代码的疑难问题的媒介, 其本质上是通过更为人性化的计算方法来达到这一目的的。所以, 数学建模思想的价值就在于, 它通过数学模型的构造, 提升计算机运算效率, 减小工作负荷, 解决编程代码中的各种问题。

3 数学算法对计算机编程优化

3.1 算法思想与计算机数学实验教学内容相结合

教师在计算机教学过程中应该通过对具有建模意义的应用问题进行案例分析, 同时, 结合学生掌握数学知识的程度, 来建立相应的算法, 编辑程序来解决具有实际应用类型的问题。以兔子问题为教学案例:“一对幼兔成长一个月就可以成为成兔, 成兔一个月后可以繁殖出一对幼兔。假设不存在兔子死亡现象, 今后的12月中, 每月各有多少只兔子。”教师可以教同学们利用树状图工具来描述兔子数量的增长, 然后列出流程图, 接着利用Mathematica或Matlab教学软件来完成编程计算。

再有, 教师可以在考虑学习积分课程之前增加一节数学实验课程, 可以选择计算任意封闭图形的面积为实验课程的教学案例, 通过向学生教授无穷级数求和的方法来引导学生探索面积的分割求法, 并独自设计算法, 进行面积计算。在教授案例的过程中使得学生对于和式极限有更直观的认识。而学生则更容易学习定积分的知识, 同时也降低了教学难度, 提高了教学效率。

3.2 设计合理的数据结构

对于算法性能来说, 数据结构的合理性是决定性要素, 合理的数据结构不仅能够减少变量的内存空间, 而且能够在使用算法时使得访问变量更加便捷, 从而达到提高算法效率的目的。以稀疏矩阵为例, 若在矩阵中元素较多, 那么编程人员就应当考虑压缩存储空间, 如果采用直接定义二维数组的方法来直接存储矩阵, 那么会因为稀疏矩阵中存在大量零元素而导致大量的存储空间被浪费。考虑到存储空间的因素, 可以采用三元组 (行号、列号、元素值) 来存储稀疏矩阵, 这样做的好处一是可以压缩存储空间, 二是通过减少遍历矩阵的次数, 达到提高算法的运算效率的目的。

3.3 通过并行计算降低算法执行时间

在实践中有两种方式可以实现大幅降低算法执行时间的效果, 一是在单机上多核心之间的并行;二是多机间的并行。目前, 主流计算机大多是双核心甚至是四核心, 同时计算机硬件和软件设备更新发展速度极快, 使得分布式系统成为不可阻挡的流行趋势。但是, 目前多核心计算机或是分布式系统仍然是串行执行, 并未进行针对性的优化处理。按照分析方式对算法进行分类, 可分为可并行部分和不可并行部分 (即串行部分) 。可并行部分可以在同一机器上不同的核心并行运行, 或是将可并行部分分配给分布式系统中不同的主机运行, 然后将结果汇总。在使用分布式系统进行并行计算时, 专业人员首先要做出一个合理的分配方案, 对算法的运算量进行计划并权衡网络开销的金额。

3.4 营造自主教学课堂, 培养学生学习兴趣

概率论、线性代数及数据分析是学习算法设计课程的重要基础, 同时还需掌握其他的专业数据知识, 例如:数据结构、离散数学。这就对教师在教学过程中采用多样化的课堂模式提出了要求, 教师应当向学生明确学习目标, 以激发学生的学习积极性、培养独立解决问题的能力为教学目的。通过运用情境法教学、参与式教学及问题式教学等多种教学方法, 使得理论与实践相结合, 促进学生对理论和算法应用的熟练掌握。

3.5 结合理论与实践, 促进全面发展

随着社会经济、科学技术的迅猛发展, 对算法运用的需求也随之大幅增加, 例如, 分析蛋白质的空间结构、检测人脸和识别基因。因此, 在算法分析的过程中, 教师应当以具有实际应用价值的方式对热点问题进行剖析, 通过建立问题解决模型, 使学生真正认识到算法知识的应用意义。

4 结语

在科学技术飞速发展的时代, 计算机编程的方法需要改进, 以适应工作的需要, 人工编程已成为时代的步伐, 在编程方式上的变化是时代潮流, 势在必行。在企业中, 更新先进的编程方法, 可显著提高应用程序的计算机编程管理能力和数控加工效率, 以满足企业的要求。数学算法作为一种优化方法, 可以用来分析计算机程序设计的逻辑, 也是计算机编程的基本技术。许多语言和开发工具已经出现在广泛的应用程序中。

摘要:数学算法它作为一种思想, 在计算机编程领域起到了巨大的优化作用。基于此, 介绍了计算机编程与数学算法, 并研究数学算法对计算机编程的优化。

关键词:数学算法,计算机编程优化,数据结构

参考文献

[1]李刚等.计算机编程语言的发展:基础·实例·上机[M].北京:中国宇航出版社, 2004.

[2]王萍.面向对象的程序设计[M].北京:清华大学出版社, 2007.

[3]刘晓峥.浅析面向过程与面向对象编程思想之异同[J].科技信息, 2011 (3) .

[4]刘丹, 刘德山.C语言程序设计课程综合性和设计性实验研究[J].计算机教育, 2012 (9) .

[5]李霞.非计算机专业C程序设计课程实验教学的探讨[J].电脑知识与技术, 2010 (12) .

浅谈计算机编程思想 篇8

1 结构化程序设计

所谓结构化编程思想是编程者的一种思想, 这种思想是指编程者面对复杂任务时脑海里所进行的思考, 这种思想能够指导程序编程者以正确的思路解决复杂的任务。这种编程思想注重规范程序结构, 注重指导编程者采用通俗易懂的方式求解复杂问题。在这种编程思想的指导下, 编程者应当根据一定的结构形式来编写和设计程序, 通过这种方式能够约束程序的结构, 使程序的结构变得合理, 这样不仅能够保证程序的正确性, 还能便于检验程序的正确性。

结构化程序设计思想具有自身的特点及性质, 具体来说, 结构化程序设计思想包含以下内容。

1.1 通过一些基本结构组成程序。

在结构化程序设计中, 每一个大型程序都包含三种基本结构, 这三种结构都按一定的顺序排列, 通过顺序排列组成一个结构化程序。具体的三种基本结构为选择结构、循环结构和顺序结构。每一个程序都由这三种基本结构组成, 这一理论已经由结构化定理和多年的软件界实践经验证明。结构化程序只有一个入口和出口, 程序结构中没有死循环, 每个程序中的三种基本结构按顺序执行。

1.2 在结构化程序中, 大型的程序都可以根据他们的不同功能分成不同的功能模块。

程序包含多个子模块, 每个模块的功能相互独立, 独立执行自己模块的任务, 这些模块都能控制计算机和处理数据。在这样的程序中, 应当尽量简化模块之间的关系, 按一定的层次关系组织这些模块, 通过组合不同功能的子程序, 从而组合出一个复杂程序。

1.3 自顶向下一步步实施。

在结构化编程中, 由于分解了不同功能的模块, 并且将模块的功能进行了抽象, 因此, 在程序的执行中, 结构化编程可以将一个复杂程序分成多个容易处理和控制的子任务, 随后再分成更细的任务, 最后得到的子程序模块都能够独立编程。将这些程序模块划分好后, 按照一定的调用关系和结构关系组织这些程序模块, 就可以编程出解决问题的复杂程序。

结构化程序的优点有结构好、模块联系简单等。同时, 由于程序员是通过清晰的编程思想指导编写出来的程序, 因此这样的程序逻辑性强, 易于理解。在结构化编程思想诞生之前, 编程界的软件开发十分混乱, 编程思想产生后, 编程者通过这种思想的知道能够设计出结构良好的程序。

2 面向对象的程序设计

结构化编程思想的基本设计思路是分解程序的功能, 因此, 在采用这种编程思想进行编程时, 程序员必须考虑程序所要处理的数据的格式, 这样, 如果要处理不同格式的数据时就要改写或者重新编写程序, 或者要对相同格式的数据做不同的处理时也要修改或者重新编写程序。因此, 在需要重用代码时, 结构化编程会给程序员带来许多不便。

近些年开始流行一种新的程序设计思想, 就是面向对象的编程思想。这种编程思想应用类、对象、封装、继承和消息等基本概念设计程序。为了解决结构化程序中代码不能重用的问题, 提出了面向对象程序设计技术。一般情况下, 面向对象的编程思想包含以下基本特征。

2.1 抽象

面向对象编程思想中, 抽象指的是忽略任务中与目前编程目标没有关系的编程方面, 忽略这些与当前目标无关的方面, 能够帮助程序员更加专注于能够解决当前任务的方面。数据抽象定义了程序的数据类型以及加在这些数据类型上的操作;过程抽象将任何操作看成单个实体, 虽然这些操作可以通过一些低级的操作才完成。数据抽象中, 能够修改和访问对象的值。

2.2 继承

继承是一种层次模型, 这种模型属于联接类, 代码可以重用, 能够明确表述共性。继承是指这样一个过程, 这个过程是指在现有的类中派生出一个新类。在继承关系中, 将原始类成为父类、基类, 新类则成为子类和派生类。通过继承方式, 新类可以继承基类的数据和方法。通过这种方式, 面向对象的程序设计能够很好的解决代码重用问题。

2.3 封装

作为面向对象程序的重要特征中的一大特征, 是面向对象程序中类和对象的主要特点。在实际编程中, 封装指的是把程序中的数据和程序实现过程统一包装起来, 这些包起来的对象之间可以通过一些私密的接口互相访问。程序中必须定义对象中哪些特性可见, 哪些不可见。通过封装的方式将程序变成一个个的模块, 由于各个模块之间的相互依赖关系不大, 因此, 这样的设计便于程序员修改和维护程序。

2.4 多态性

多态性是指这样一种特点, 派生类继承了基类的操作和属性后, 但是派生类的数据类型可以和基类不同, 也可以有和基类不同的功能, 不同类的对象可以同时响应同一条信息。例如, 采用相同的方法实现选择、删除时, 在不同的程序中会呈现出不一样的效果, 这就是面向对象的程序多态性的体现。

3 结论

总而言之, 本文中所介绍的两种编程思想是当前编程界应用的比较多的编程思想。随着人类经济社会的进一步发展, 编程也会不断发展, 为了解决一些新的问题, 新的编程思想也会不断出现。这是编程发展的必然过程, 新的编程思想与旧编程思想的撞击和融合将会给编程界带来新的冲击, 指导程序员更好地解决编程任务, 提高编程质量和速度, 推动信息技术的快速发展。

参考文献

[1]李琳, 徐雨明, 王樱.浅谈C++课程教学方法的研究与应用[J].科技信息.2009 (16)

[2]段新娥.浅议面向对象程序设计中的类与函数[J].科技情报开发与经济.2006 (05)

[3]刘义.浅谈面向对象程序设计[J].今日科苑.2008 (06)

[4]胡军, 管春.面向对象程序流程框图方法的研究[J].南昌大学学报 (理科版) .2002 (03)

[5]韩同春.面向对象技术在勘察软件开发中的应用[J].物探化探计算技术.2003 (03)

[6]王方.基于UML模型的关系数据库设计[J].黑龙江科技信息.2010 (28)

[7]邵长磊, 吾际舟, 刘斌, 白玉宝.计算机编程语言的演变[J].农业网络信息.2009 (11)

[8]刘海蓉.计算机专业精品课程建设实践与思考[J].职业技术教育.2009 (26)

[9]史永哲.计算机编程思想分析[J].硅谷.2010 (10)

编程计算 篇9

数控加工是数控设备上按事先编制好的加工程序对工件进行高效加工的一种新方法。程序编制就是将零件的工艺过程、工艺参数、刀具位移及位移方向、其他辅助动作 (换刀、冷却、工件的松夹等) , 按运动顺序和所用的数控系统规定的指令代码及程序格式编成加工程序单, 再将程序单中的全部内容记录在控制介质上, 然后输给数控装置, 从而指挥数控设备运动。这种从零件到制成控制介质的全过程, 称为数控加工的程序编制。

数控加工编程的主要内容和过程包括工艺分析、数学处理、编写程序清单、制备控制介质、程序检验与试运行等过程。

1.1 工艺分析。

依据零件图对被加工零件进行工艺分析, 明确加工内容和技术要求。在此基础上确定零件的加工方式、安装方法和夹具、对刀点和换刀点、走刀路线、加工刀具、加工用量等工艺参数, 确定程序编制的允许误差。

1.2 数据处理。

依据零件图、加工工艺路线及数控装置情况, 并考虑所允许的编程误差允许量, 进行基点、节点、刀具中心轨迹、绝对值、增量值等计算。

1.3 编写零件加工程序单。

根据所确定的各项工艺内容和计算出的运动轨迹的坐标值, 按照数控系统所规定使用的程序指令及程序格式, 逐段编写零件加工程序单。

1.4 制备控制介质。

将程序单的内容通过键盘直接键入数控装置的存储器中存储, 或制备穿孔带、磁带等控制介质。

1.5 程序校验与试运行。

程序单和所制备介质须经过校验和试运行, 才能正式使用。主要达到两个目的:一是检查程序内容及控制介质的制备是否正确, 以保证对零件轮廓轨迹的要求:二是检查刀具调整及编程计算是否正确, 以保证零件加工精度达到图样的要求。对于第一个目的, 可将控制介质的内容输入数控装置, 进行机床的试运行检查, 来验证机床运行轨迹的正确性, 若数控装置带CRT屏幕图形显示, 则可用屏幕图形模拟就更为方便了。对于第二个目的, 则必须进行零件的首件试加工。

2 计算机辅助数控加工与计算机辅助编程

计算机辅助数控加工由工艺分析和加工参数设置、几何分析、刀位轨迹生成、刀位仿真后置处理、加工过程仿真等六大功能模块组成, 主要分为前置处理、后置处理和加工仿真三部分功能。计算机辅助编程就是借助于通用计算机来编制程序, 其过程可分为原程序编制和目标程度编制两个阶段。

一个完整的数控语言系统由前置处理和后置处理两部分组成。前置处理是对用数控语言所编制的源程序进行输入与翻译、运算、刀具中心轨迹和刀位偏差计算以及输出刀位数据, 又称为主处理、主信息处理或信息处理, 这部分工作可独立于具体的数控机床进行工作。后置处理是按数控机床控制系统的要求来设计, 包括输入刀位数据、功能信息处理、运动信息处理、输出数控程序等工作。前置处理和后置处理工作在计算机辅助数控加工中有很大比重。前置处理如采用现成的计算机辅助制造软件或自动数控编程系统, 则二次开发量不大。后置处理是计算机辅助加工中的一个功能模块, 需自行开发。随着数控机床发展, 数控系统功能越来越强, 各厂家生产的数控系统差异性越大, 从而增加了开发通用后置处理软件的迫切性及开发难度。

加工仿真是指用计算机来仿真数控加工过程, 包含以下方面:刀具中心运动轨迹仿真, 刀具、夹具、机床、工件间的运动干涉碰撞仿真, 质量分析仿真和工艺过程布局仿真。

3 计算机辅助数控编程的一般方法

3.1 面向车间的编程 (简称WOP)

面向车间编程其基本构思是用图形符号代替数控语言, 使用者按照菜单提示选择相应的符号和回答屏幕的提问, 输入必要的数据, 就可以进行编程。与常规编程方法的区别在于编程数据的输入方法, 目前编制的数控程序通常是用G功能指令编程语言, 这种方法抽象, 必须要求操作工人先掌握后才能进行编程。按照WOP编程方法, 操作人员依据加工零件的形状尺寸用图形交互输入方式生成数控程序, 操作人员仅进行零件描述, 具体的数控程序 (加工顺序、轨迹控制) 由WOP编程系统自动生成, 同时诸如刀具、切削数据等加工工艺数据和加工零件几何形状数据定义是分离的, 即操作人员可以充分利用WOP系统推荐的工艺数据, 依据自己的生产经验进行优化修正。

WOP作为一种新的数控编程方法, 其显著优点就是不仅考虑了提高生产的柔性和适应性, 还考虑了车间范围内技术工人的专门知识和经验, 同时由于其直观性, 将更容易为人们所接受和推广应用, 它对实现以人为中心的现代集成制造技术具有极大的促进作用。

用于各种工艺方法的WOP系统, 将与CAD和CAPP系统集成, 建立一个适合WOP系统的公共数据库和工件模型, 以便实现CAD、CAPP和NC编程系统之间的数据交换。未来的理想方案是在数控编程中集成其他技术, 并能更全面地支持机床的调整、试切、加工过程仿真 (如三维铣削加工) 和碰撞检查仿真 (如夹具与刀具系统之间的碰撞检查仿真) 等。

3.2 扫描及数字化的编程方法

近10多年来, 随着CAD/CAM技术的发展, 出现了各种各样的实样数字化方法。数字化扫描技术已经成为汽车、航空、航天、轻工、医疗等工业的各类模具和零件制造的关键技术。数字化扫描系统是借助接触式或非接触式采样头, 快速实现复杂模具的扫描, 由获得的模型表面的线框模型和所采集的点坐标集, 生成零件加工的数控程序。一次扫描的结果可由CAM软件生成多种数控系统使用的工件加工程序。此外, 也可根据用户需要将结果送到CAD中进行局部修改。数字化的扫描及相关技术称为反向工程, 它是推行并行工程的重要基础和支撑技术。

一个完整的数字化扫描系统包括数据采集装置、计算机数据处理、机床及其控制等部分。反向工程的典型应用是数控仿形铣削, 其工作过程是:首先借助于采样头, 采集模型上每一点的几何坐标, 通过数据处理生成数控程序, 然后控制机床, 复制加工出零件。依同样原理, 也可以在三坐标测量机上进行数据采集。此外, 也可通过接口, 与CAD系统相联, 同样生成零件图样。

3.3 CAD/CAM (计算机辅助设计/计算机辅助制造) 一体化技术的研究

编程计算 篇10

目前, 蒸压加气混凝土砌块已成为我国夏热冬暖地区最主要的新型墙材之一。但加气混凝土砌块在使用中经常出现开裂、粉刷层脱落等工程质量问题, 严重影响其推广应用。多孔性是加气混凝土最主要的特征, 孔隙率和孔结构特征 (如大小、分布等) 是影响加气混凝土宏观性能 (如强度、抗碳化性、收缩性、导热性、吸水及抗渗性) 的主要因素。目前国内加气混凝土砌块生产厂家对发气孔的研究相对较少。工艺师通常要结合加气混凝土砌块发气孔情况来调节工艺过程, 目前主要是根据经验直接观察并判断, 无定量参数做参考易产生误判, 引起砌块质量波动。国外加气混凝土砌块的生产研究机构一向重视加气混凝土发气孔的研究, 主要手段为采用体视显微镜获得加气混凝土砌块发气孔的空间结构, 并通过计算机对发气孔进行分析评价[1]。这种方法对少数几个孔的分析是十分有效的, 但实际生产过程中分析个别孔是不够的。并且这种方法在我国从经济性角度也不容易被厂家所接受。

本文尝试采用一种基于MATLAB矩阵变换算法来处理加气混凝土宏观断面照片孔隙, 可以精细计量加气混凝土宏观孔孔隙率、孔径分布等参数, 可作为加气混凝土生产工艺量化控制方法和性能评价方法。

2 孔隙率及孔径分布分析方法

将加气混凝土砌块断面数码照片的图像信息储存于matlab矩阵中时, 因断面数码照片为RGB图像, 每个像素需要用3个字节来存储三基色, 需要存储数据量大, 图像分析难度大。但如果将图像信息以灰度形式存储, 则每个像素点的图像信息只需要一个字节即可储存, 同时人眼对灰度的识别能力为20~60级。因此采用灰度存储既符合计算机的存储习惯, 又保持了人眼的分辨能力, 同时提高了孔与孔壁的数值差异。由于本方法最终计算的数据都是孔与孔壁之间的相对关系, 所以常用的各种数码相机都可以用作为本试验的断面照片拍摄工具。

图1所示为加气混凝土砌块断面灰度照片, 图2所示为照片数字矩阵的截图, 矩阵中每一个值为该点图像灰度信息, 这些值是计算机把人眼对图像上每个像素的信息进行量化反馈。

基于气孔与孔壁交界处灰度的不连续性, 即气孔与孔壁在图像中的亮度与光密度体现的差异可以对孔与孔壁进行分析并将之分离分析。但是, 加气混凝土砌块表面特殊的光反射结构、以及拍照时可能出现表面光照差异的影响等原因, 会出现人眼和机器不易识别的气孔, 需要采用拉普拉斯算子进行实线性导数运算作为图像的锐化滤波, 使这类气孔边缘易于被人眼和机器识别[2]。

对于图像中需要处理的离散点f (i, j) , 其拉普拉斯的差分形式为[3]:

对其差分形式做x方向和y方向上的二阶差分, 可以得到目标拉普拉斯算子:

经过拉普拉斯实线性导数运算后的图像能够对气孔与孔壁的边沿进行各向同性的描述, 进而只需对处理后的孔壁作为平坦区域以均匀一致的灰度显示出来, 并且提高不同光度区域的对比度, 从而在更高程度的灰度数值上分离气孔与孔壁以进一步减少分析误差。为实现以上机理, 假设显示的每个亮点具有如下形式的高斯分布[4]:

式中, r是从亮点中心量起的径向距离。如果定义R为亮度等于最大值一半处的半径, 则可以将点分布曲线写为如下形式:

上式进一步简化为:

因此, 单个亮点的亮度分布可表示为:

也就是断面照片上只有在距离亮点中心大约2倍以上半径的距离时亮度才降至不足其峰值的1%。根据以上原理, 在断面照片处理程序中可控制中心点与两点中心位置的亮度差为12.5%, 而在d=2R时不会出现微观平坦区域。经过上述处理的图像矩阵能够很好的真实描绘气孔与孔壁的对比度。

具体算法中在注意区域平坦性的同时还需兼顾高频响应。本程序以点间距作为主要调整参数进行折中算法, 将原始图像较窄的灰度范围扩展到整个灰度范围, 从而拉伸了可操作区间, 并将求得的平坦区域作为关注点, 进行比度拉伸 (如图3所示) ;然而这样处理的结果还不能使平坦区域具有一致灰度, 还需与对原图进行均匀分布变换的图像进行比率变换方可实现, 图4即为比率变换处理后的图像。

将原图像的灰度级建立一个存储矩阵L, 统计出的各灰度级像素数目存入矩阵N。

进而可采用式5计算原图像各灰度级的频数:

其中j=0, 1, …, k, …, L-1;n为原图像素数, 并由此计算累计分布函数

则可采用式7求解映射后的图像灰度级:

也就是说本方法是通过fj和gi的映射关系调整原图像灰度服从均匀分布, 这样就可以通过比率变换操作求得区别区域, 再通过系数调整使得整个孔壁区域能够具有显著同等灰度。图5所示为比率变换处理后的图像, 可以在该处理图像上任意拉一条灰度分布线, 不仅可以直观的看出处理后的孔壁平坦面, 还可得出该线段所穿过的气孔的孔径。图6为在图5上任意选择的一条线段上的灰度分布图, 这个图的获得可用于研究发气方向或垂直于发气方向上孔径的变化。

该处理过程的作用在于精确地确定了表面平坦区域, 并将这些区域的灰度值统一。图6中波谷峰端是气孔深度的一种描述, 所有气孔在拍照时形成的光度在以上处理中都做了完好保存, 但由于数码照相和空间局限性, 其对孔的描述仅波谷峰端可视为严格有效的。若要近似模拟孔型结构, 则需求出灰度与孔深的比率, 做从波谷到波峰的三维平滑曲面回归。

经过以上处理的矩阵已经可以精确描述和区分气孔和孔壁, 为了更直观的观察分析出的数据结果, 进一步将矩阵进行二值化处理, 将处理后的矩阵再进行反向, 图7为处理后生成的图像。通过相关成分计算函数可以精确计量断面上孔的个数, 将矩阵信息导入到excel文件中, 并用背景色将孔的颜色标识出来, 则可很容易的统计出气孔面积, 从而精确求出孔隙率。

图8所示为该二值化反向矩阵部分区域截图, 该加气混凝土砌块断面照片上有气孔1178个, 气孔总面积13582Piexl, 宏观气孔孔隙率为27%, 平均气孔面积为11.5Piexl。

本文所编写的Matlab程序封装起来可以实现对加气混凝土断面数码照片的上述分析计算过程, 得到加气混凝土砌块相应断面的孔隙率、气孔总面积、平均气孔个数。后续程序开发可在此基础之上采用链码对孔区域进行形状表征, 对所得到的链码统计分析还可得到某个方向上具有统计意义的的孔型系数或者采用圆形度 (致密度C、边界能量E、圆形性、面积与平均距离平方的比值) [4,5]来表征孔结构。

3 实际应用

加气混凝土砌块在成型过程中由化学反应形成气孔, 砌体结构需要区分发气方向和垂直于发气方向, 研究垂直于发气方向不同断面的孔参数, 可以作为工艺师调节稠化与发气关系的量化依据。此外, 加气混凝土砌块的孔参数是影响加气混凝土砌块强度、压容比 (抗压强度与容重的比值) 、收缩性、热工性能的重要因素, 通过孔参数评价砌块性能, 可以从细观或微观层次来揭示其宏观性能产生变化的原因。

为了验证本方法, 以两组相同设计容重, 不同工艺的试块为例, 对比不同孔与砌块主要性能之间的关系。图9、图10分别为两种试块的断面照片。两组试块容重设计均为B07级, 通过调整不同的料浆稠化和发气速度使两组试块的孔结构呈现鲜明对比。采用本文中所用方法分别测算两组试块的孔隙率、平均孔面积, 用圆形度来表征孔结构, 并结合其他性能指标进行分析。表1为两组对比试块对应的各项气孔参数。表2为两组对比试块各项主要性能指标。

从表1中可以看出相比之下, 第二组试块的孔隙率较小、平均孔面积较大、孔的圆形度值较小。由于两组试块设计容重一样, 只是工艺调节过程有差别, 结合以上数据对比可以推断出, 第二组试块稠化时间和发气之间的调节不如第一组, 导致在设计容重一样的情况下孔隙率偏低, 由此推断第二组实际容重高于第一组。此外, 根据平均孔面积和圆形度的数据, 可以推测出第二组试块中连通孔和大气孔比第一组试块多, 由此推断第一组试块的强度、收缩、热工性能均优于第二组试块。

从表2中可以看出第二组试块的容重明显比第一组重, 强度、收缩率、导热系数等主要性能指标明显差于第一组试块。这些检测结果很好的印证了由表1中孔参数推断出的结论, 并且相互之间有很多明显的关联性。

4 结论

采用MATLAB编程计算蒸压加气混凝土发气孔参数, 可以很好地反映砌块的各项主要性能指标。对于蒸压加气混凝土砌块生产工艺调整、各项性能综合评定具有一定的参考价值。能够量化评定砌块孔结构、宏观发气孔孔隙率、串孔程度。可以帮助工艺师快速调整发气稠化工艺、改善砌块性能。

摘要:将加气混凝土砌块照片中的灰度信息存入矩阵中, 利用matlab对加气混凝土砌块断面照片的矩阵信息进行拉普拉斯实线性导数运算锐化孔壁边缘, 再采用比度拉伸增强孔壁与孔之间的灰度值差距, 进一步采用比率变换使平坦区域灰度一致。在此基础上获得任一断面上的灰度分布图, 可用于研究任意发气方向上孔径变化。将经过以上处理之后的矩阵进行二值化反向处理, 存入excel中可精确统计气孔总面积、孔隙率、平均气孔面积等参数。

关键词:MATLAB,加气混凝土,孔结构,空隙率,孔径分布

参考文献

[1]H.Weber, H.Hullmann, Porenbeton Handbuch, vol.5, Aufl.Bauverlag, Wiesbaden, 2002.

[2]尹建媛, 图像处理中边缘检测算法的研究[J].科技信息:科学教研, 2008 (04) .

[3]崔静洁, 何文, 廖世军, 夏熙.多孔材料的孔结构表征及其分析[J].材料导报, 2009 (13) .

[4]陆君安, 尚涛.偏微分方程的MATLAB解法[M].武汉:武汉大学出版社, 2001.

上一篇:进、排气门下一篇:戏剧文学教学