利用软件vb(visual basic)来简单实现自动编程设计说明书.doc

上传人:文库蛋蛋多 文档编号:2389388 上传时间:2023-02-17 格式:DOC 页数:41 大小:395KB
返回 下载 相关 举报
利用软件vb(visual basic)来简单实现自动编程设计说明书.doc_第1页
第1页 / 共41页
利用软件vb(visual basic)来简单实现自动编程设计说明书.doc_第2页
第2页 / 共41页
利用软件vb(visual basic)来简单实现自动编程设计说明书.doc_第3页
第3页 / 共41页
利用软件vb(visual basic)来简单实现自动编程设计说明书.doc_第4页
第4页 / 共41页
利用软件vb(visual basic)来简单实现自动编程设计说明书.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《利用软件vb(visual basic)来简单实现自动编程设计说明书.doc》由会员分享,可在线阅读,更多相关《利用软件vb(visual basic)来简单实现自动编程设计说明书.doc(41页珍藏版)》请在三一办公上搜索。

1、1 概 述1.1 课程设计的目的数控技术课程设计是机电专业教学活动的一个重要的实践性环节,是对学生所学数控技术课程和其它有关课程知识和技能的一次综合性练习,旨在使之巩固、充实、系统化,并得到进一步扩展。课程设计是培养学生理论联系实际、解决生产实际问题的机会。通过对数控铣床典型部件的结构设计和零件编程的具体问题的解决,使学生对数控技术的原理、设计方法以及用编程方法处理实际问题的一般步骤和具体技巧得到训练,提高运用所学专业知识分析问题和解决问题的能力。1.2设计要求 用计算机高级编程语言(如VB,VC+等)来实现:由任意的CAD软件(如AutoCAD,Pro/E、UG、Solid works等)所

2、生成的二维绘图DXF文件(限定DXF文件中的几何元素只有直线和圆弧)到CNC代码的自动生成(亦即仿真数控自动编程系统)。具体的要求如下:(1)从DFX文件中提取几何信息(只提取直线与圆弧的信息);(2)在屏幕上显示所提取得到的二维几何图形。(3)将提取得几何元素的进行排序(由程序来实现);(4)针对指定的走刀方向、起刀点,自动生成数控平面铣削(或数控线切割)的CNC代码。1.3课程设计的步骤课程设计的步骤大致包括:1)调查研究,收集资料,查阅文献;2)论证及确定设计方案,进行机械结构设计和软件设计,编写程序和编制设计说明书。 3)最后参加数控课程设计的答辩。 2 提出问题和意义2.1 提出问题

3、 数控加工是当今机械生产的主要设备,数控机床已经成为组成现代机械制造生产系统,实现计算机CAD/CAM与生产管理等全部生产过程自动化是现在数控研究的主要领域,以前数控编程主要是由工程图利用手工完成的。而手工编程工作量很大,容易出错,为了加快编程进度,提高加工精度,因此开发计算机自动编程系统,能够自动完成数控加工程序的自动加工,自动编程主要利用计算机完全程序编制工作,用零件源程序作为编程计算机的输入,用编程程序和后置处理程序来处理零件源程序,目前世界各国都对自动加工编程非常重视,纷纷加大对其的投入,先后开发出了许多各具特色自动编程系统。 这里提出通过DXF文件进行数控代码的自动编写,并把得到的代

4、码保存到指定文件中,然后传给数控系统,实现设计加工一体化。 DXF文件是一种与图形等价的通用ASCII码格式文件,包含着设计过程的所有图形非图形信息。这些信息被组织到成块,并通过成对的组码和与组码关联的组值按照特定的格式进行记录。而在数控系统中是通过读取NC代码控制刀锯进行零件的加工。NC代码是用特定格式的字符串来贸数加工的刀具路径。因此两者之间存在着很大的差异。 本系统基于解决这些差异进行CAD软件与数控系统的一体化连接,并且尽量提供友好的人机操作界面和更大范围的提供人机交互操作。系统由以下五大模块:文件的读取块,屏幕的操作模块,几何信息的预处理模块,NC代码生成模块,文件保存模块。 本次设

5、计主要是介绍利用软件VB(Visual Basic)来简单实现自动编程,并且能在界面上完成提取坐标、描述图形等相关的一系列工作。 2.2 意义在当今社会上,数字化、自动化、智能化应用程度是一个国家发展水平的重要特征之一,而应用CAD/CAM(计算机辅助设计/计算机辅助制造)的能力和水平又是一个国家自动化程度的标志之一,所以在当今社会对这些高技术追求和竞争都是非常激烈的,各国、各研究机构和跨国公司都不惜代价的对相关课题进行研究,机床作为一种在机械制造行业非常重要的生产设备,因此对机床也相应的提出了高效率、高精度和高自动化的要求。本设计我们可以简单的模拟一个由CAD/CAM图形(仅限于直线和圆弧)

6、经过软件程序描述出原先的图形形状,并且可以直接生成数控代码,熟练了对软件的利用和加深了对数控自动编程的理解。3 关键问题3.1 DXF格式文件信息的提取 利用CAD/CAM做出的平面工程图可以保存为DXF格式,在DXF格式里面主要保存了零件工程图中的曲线段的相关信息,比如直线的开始坐标和终点坐标、圆弧的圆心坐标、半径、开始角度和终点角度等等。本设计所用的软件是VB,因此可以利用相关程序把工程图中的这些有关信息直接提取,并且保存在VB软件里面,以方便后处理。3.2 排序 用VB软件从CAD/CAM的工程图的DXF格式中提取的有关曲线信息都是混乱排列的,而在后处理中描述出原先图形和生成CNC代码都

7、是需要按照一定规律排列的信息,因此要把这些杂乱的信息排好序列,以使得在后处理中实现更多的相关功能。而要把那么多不相关的混乱的信息排列成过规律的循序都是需要用VB软件的相关程序来完全的。3.3 轨迹和CNC代码生成把排序好的曲线有关点信息利用VB软件的程序直接描述出轨迹,并且能在软件应用界面上可以输入有关加工信息,比如走刀方向、主轴转速、进给速度等信息,直接生成CNC代码,其中要保证描述的图形形状和CNC代码的正确性。 4、DXF文件的结构特点4.1、DXF文件结构 DXF文件有两种格式:ASC码文本格式和二进制格式。前者可以用记事本打开,简单易读,后者存储效率高2。DXF文件最小组成是组(GR

8、OUP),一个DXF文件由多个组组成。每个组在DXF文件中占两行。第一行是组码(GROUP CODE),它是一个整数;第二行是组值(GROUP VALUE),它的数据类型取决于组码的数值。例如X坐标的组码为10,Y坐标的组码为20,Z坐标的组码为30。一个DXF文件分为多个节(SECTION),每个节均由多个组(GROUP)组成。每个节均由一个组值为字符串“SECTION”的0组开始,后跟组值为表示段名的字符串的2组,其后为组成该节的各个组,最后以组值为字符串“ENDSEC”的0组表示该节结束。所有节都结束后,在DXF文件的最后是组值为字符串EOF(END OF FILE)的0组作为文件的结束

9、标志。一个完整的DXF文件由以下七个节(SECTION)组成:A 标题(HEADER)节:包括与图形相关联的变量的设置,例如图形节最大、最小X坐标和最大、最小Y坐标($LIMMIN,$LIMMAX),点显示模式($PDMODE),点尺寸($PDSIZE)等。其中的每一个变量都通过组码 9 给出变量名,并由其后的组码提供变量值。B 类(CLASSES)节:类节保存由应用程序定义的类,而该类的实例则出现在块节(BLOCKS)、实体节(ENTITIES)和对象节(OBJECTS)中。C 表(TABLE)节:包含命名项的定义,存放一系列表。包括线型(LTYPE)表、层(LAYER)表、文本字样(STY

10、LE)表、视(VIEW)表、用户坐标系统(USC)表、视窗配制(VPORT)表、尺寸标注式样(DIMSTYLE)表、应用标识(APPID)表。D 块(BLOCK)节:存放块定义的实体。对图形中每个块引用,在块节中都必需有一个条目与之对应。E 实体(ENTITIES)节:存放图形实体,其中包括块插入实体。DXF图形文件中的所有图元(包括点、线、面、插入块,注记文字等实体)都将在ENTITIES节定义。F 实体(OBJECTS)节:存储非图形对象。G 预览图像(THUMBNAILIMAGE)节:只有当预览图像被保存在DXF文件中时该节才存在。4.2. DXF文件的读取 (1)描述直线段的信息为:A

11、cDbLine10 11直线段起点的X值 直线段终点的X值20 12直线段起点的Y值 直线段终点的Y值30 13直线段起点的Z值 直线段终点的Z值(2)描述圆的信息为AcDbCircle10 30圆心的X值 圆心的Z值20 40圆心的Y值 圆的半径R值(3)描述圆弧的信息为AcDbCircle10 40圆心的X值 圆的半径R值20 50圆心的Y值 圆弧的起始角30 60圆心的Z值 圆弧的终止角5 算法实现5.1 算法原理5.1.1 DXF格式文件信息的提取对于已经把工程图保存为DXF格式的文件,在VB软件中可以用Action属性来显示“打开”对话框,具体程序为:CommonDialog1.Fi

12、lter = dxf文件(*.dxf)|*.dxf|文本文件(*.txt)|*.txt|全部文件(*.*)|*.* CommonDialog1.DialogTitle = 打开文件CommonDialog1.ShowOpen 在“打开”对话框中就可以直接输入DXF文件,然后在用变量把所有的DXF文件的相关信息都保存进去。具体流程图如图3.1所示 3.1 DXF信息提取流程图5.1.2 排序这是本设计的重点和难点,在前面的程序中已经把DXF文件的相关信息都保存到了有关的变量中,但是是按照工程图的坐标画图循序来保存的,而画图的时候相关坐标点是随机的,因此要把这些杂乱无章的坐标点按照一定的规律排序,

13、这样才能自动生成CNC代码。在这设计过程中对坐标排序的方法是判断交换法,如图3.2排序原理图所示:图3.2 排序原理图 由图中可知,设本图形共由K+1段线段(仅限于直线和圆弧)组成,先确定其中一段线段,假设此段为第N段,其始段坐标为(Xn , Yn)终点坐标为(Xn , Yn)然后把剩下的K段线段分别与此段线段的终点比较,设第N+i段的始点坐标为(Xn+i,Yn+i )终点坐标为(Xn+i ,Yn+i),若两段的距离d=0.0001或者d=0.0001则认为这两点是相连的,要相连则要循序的排列,故只要把第N+i段跟第N+1段互换就可以实现了线段的循序排列,这些判断和互换都在VB软件中应用相关的

14、程序就可以实现,把这些排序好的线段坐标点按照循序排列保存在变量中就可以了。排序好的图形有关信息就已经把坐标点按照一定循序排好了,由这些有循序的坐标点可以直接生成CNC代码,先判断线段是曲线还是直线,如果是曲线在判断走刀方向看在加工中是顺圆还是逆圆,由此确定CNC加工代码用GO1,G02或G03,在界面中可以直接输入与加工有关的信息,例如主轴转速S,进给速度F等,直接把这些有规律的点按照循序输出为CNC即可。有关的流程图可以表示为图3.2 排序流程图所示图3.2 排序流程图所示5.1.3 轨迹和CNC代码生成轨迹生成主要利用VB软件的画图功能,先判断所要生成的那段轨迹是直线还是圆弧,然后分别画出

15、图形,最后把它们一起连接起来就可以了,所用的程序为:If lorc(i) = True Then Picture1.Line (Linekx(i) * Val(Text4.Text), Lineky(i) * Val(Text4.Text)-(Linezx(i) * Val(Text4.Text), Linezy(i) * Val(Text4.Text), RGB(255, 0, 0) Else Picture1.Circle (yhuox(i) * Val(Text4.Text), yhuoy(i) * Val(Text4.Text), yhur(i) * Val(Text4.Text),

16、RGB(255, 0, 255), yhus(i), yhue(i) End If用流程图表示为图3.3所示 图3.3 轨迹生成流程图5.2 算法总流程图全部算法都是相互连接的,各个部分都是相互影响,所有的算法都应该由VB软件程序来完成,其算法总流程图如图 3.3所示。 图3.3 算法总流程图6 软件开发6.1系统界面系统界面如图4-1所示 图4-1 系统界面6.2 功能设置1. 单击,可弹出输入对话框,在对话框中选择要模拟自动生成的DXF文件,确定后可直接在Text1.text中看到导入的DXF文件的原始数据信息。图4.2 导入文件功能2. 单击,先在Text1.text中删除原先的DXF文

17、件的原始信息,然后同样在Text1.text中显示提取后的DXF文件的坐标值,同时还能自动统计直线段和圆弧段数,如图4.3所示。图4.3 显示坐标功能3. 单击,在Text1.text中就能显示出经过排列后的坐标信息。最后输出的信息如图4.4所示。图4.4 坐标排列功能4. 单击“在pricter1中就能模拟出转换成DXF文件前的工程图,在“图形比例”中可以输入不同的值,从而改变图形的大小,点击前、后、左、右移动可移动图形的水平和垂直距离。显示图形如图4.5所示。 图4.5 画图功能5、 参数选择:选择主轴转速,对刀点进给速度,加工方式等,参数选择界面如图4.6所示: 4.6、参数选择6. 单

18、击可以直接生成图形的CNC代码,其加工参数中有两个可以选择输入,分别是主轴转速和进给速度,其中主轴转速的默认值是1000r/min,进给速度的默认值是100mm/min,生成CNC代码功能如图4.6所示。图4.7 生成CNC代码功能7. 单击,可弹出一个保存对话框,在其中选择保存路径后可保存又软件所生成的CNC代码。如下图所示 图4.8 保存对话框8. 单击,会把所排列得到的坐标数据,所画的图形和生成的CNC代码都清除掉,可以重新在输入其他的DXF文件图形。9. 单击或者,会弹出是否保存提示,如下图所示: 图4.9 提示对话框6.3 运行程序运行后可得到的图形如下4-2所示:图4-2 系统运行

19、后界面6.4 结果分析 本设计程序基本上能解决本课题有关的问题,界面运行起来感觉良好,功能比较齐全,其基本功能都比较稳定,排列坐标、显示图形、生成CNC代码等都可以直接顺利完成,不过仍然有些问题没能很好的解决:(1) 本设计的DXF文件的输入中只是局限于直线和圆弧,对于非圆曲线还不能利用本设计程序。(2) 在生成CNC代码的时候,可以用的相关参数非常有限,还有很多参数都被忽略了。(3) 还有其他一些小细节的功能没能设计好,界面简单。总之,本设计程序能完成相关的功能要求,但很多功能只是还有很大的局限性,离真正商业应用尚有一段距离。7 设计总结通过本次数控的课程设计,使我更加加深了对数控技术的有关

20、知识的了解,特别是对软件VB的应用,在设计过程中遇到了很多的问题,但通过查找书本和请教别人,基本上都解决了。很多小细节问题还很容易就忽略,但往往是那些小问题搞得设计进行得异常困难,对VB软件的应用还有很多不熟练,在编程过程中一直都要对照着教科书的有关内容才行,通过这次课程设计,不仅让我对数控的加工有了深一步的认识,还使我对VB有新的了解,提高自己的编程水平。课程设计是一种实践,一种考验。它既让我有机会实践一下,让自己有机会可以把所学到的理论知识应用到实践中,又考验自己对理论知识的掌握程度。数控技术是一门综合性学科,它的综合性比较强,它建立在以往的学科上,课程设计更是一项考验综合能力的实践,课程

21、设计能考验自己的综合能力。随着制造技术的日益发展,零件也越来越复杂,对加工机床的要求也越来越高,数控机床能满足现代零件的加工要求,其地位也日益重要,通过课程设计,将所学到的知识综合起来应用于实践,对了解数控机床的加工原理也很重要。 致谢本设计系统运行起来良好,有关重点难点问题基本上都能解决,在编程的过程中,除了参考教科书之外,周围同学还给了我很大的帮助,常常大家一起讨论,得到比较满意的结果,在此特意向对给予我关心和帮助的同学表示衷心感谢。同时也非常感谢高健老师对我的指导和帮助。参考文献:1、数控技术,廖效果 主编 湖北科学技术出版社2、机床计算机数控技术第二版 北京理工大学出版社3、数学年谱

22、常州科谱之窗:常州市科学技术协会4、Visual Basic6.0中文版入门与提高 清华大学出版社5、Visual Basic 程序设计教程,江志文 主编 中山大学出版社6、Visual Basic6.0中文版实用教程,刘萌 主编 中国铁道出版社7、Visual Basic6.0控件应用编程实里例教程 北京希望电子出版社 附 录Option Explicit 全局变量,强制显式声明变量语句Const k = 1000 设置曲线段的保存总段数(常数)Const pi = 3.14159265358979 设置 pi 的值(常数)Dim Linekx(k) As Double 直线段开始坐标Dim

23、 Lineky(k) As DoubleDim Linezx(k) As Double 直线段终点坐标Dim Linezy(k) As DoubleDim yhuox(k) As Double 圆弧圆心坐标Dim yhuoy(k) As DoubleDim yhur(k) As Double 圆弧半径坐标Dim yhus(k) As Double 圆弧起止角度Dim yhue(k) As DoubleDim lorc(k) As Boolean 直线与圆弧判断Dim arcdir(k) As Boolean 顺圆与逆圆判断Dim i As Integer 排序时的中间变量Dim j As In

24、tegerDim temp As StringDim atr As StringDim zb As String 定义坐标变量Dim cn As String CNC生成时的变量Dim a As Integer 计算直线与圆弧段数Dim b As IntegerDim c As Integer 绘图时确定坐标原点Dim d As IntegerDim m As Variant 保存曲线段的变量Function fileopen() As Boolean 对DXF文件的输入Dim file1 As Long 定义中间变量Dim file2 As LongDim file As LongDim s

25、trend As LongDim art As LongCommonDialog1.Filter = dxf文件(*.dxf)|*.dxf|文本文件(*.txt)|*.txt|全部文件(*.*)|*.* 打开dxf文件,并只显示dxf文件CommonDialog1.DialogTitle = 打开文件CommonDialog1.ShowOpen 显示打开对话框 If CommonDialog1.FileName Then Open CommonDialog1.FileName For Input As #1 atr = Do While Not EOF(1) Line Input #1, te

26、mp 打开并读取 DXF 文件 atr = atr + temp + vbCrLf Loop Close #1 End If temp = file1 = InStr(1, atr, AcDbLine & vbCrLf) 判断所提取的信息是直线还是圆弧 file2 = InStr(1, atr, AcDbCircle & vbCrLf) 返回字符串中最先出现的位置,值为长整形 If file1 file2 And file2 0 Then 如果直线的返回值大于圆弧的返回值,则首先返回的是圆弧起点的信息 file = file2 Else If file1 0 Then 否则为直线起点的信息 f

27、ile = file1 Else 如果file1为0,则返回圆弧起点的信息 file = file2 End If End If strend = InStr(file, atr, ENDSEC & vbCrLf) 判断结束条件 temp = Mid(atr, file, strend - file) atr根据file和strend - file设定从中返回字符(返回字符串中指定数量的字符) m = Split(temp, vbCrLf) temp中的值遇到回车便赋值到m数组中End FunctionFunction howmany() As Integer 计算直线和圆弧段数For i =

28、 0 To UBound(m) If m(i) = AcDbLine Then a = a + 1 直线总段数 ElseIf m(i) = AcDbCircle Then b = b + 1 圆弧总段数 End If Next i End FunctionFunction zuobiao() 坐标计算 For i = 1 To a + b If lorc(i) = True Then 直线段时,line表示格式 zb = zb + Line + ( + Str(Format(Linekx(i), 000.0) + , + Str(Format(Lineky(i), 000.0) + ) zb为

29、坐标变量,即计算直线或者圆弧的坐标 zb = zb + ( + Str(Format(Linezx(i), 000.0) + , + Str(Format(Linezy(i), 000.0) + ) + vbCrLf 计算直线或者圆弧的横坐标和纵坐标 Else 圆弧时 zb = zb + Circle + ( + Str(Format(Linekx(i), 000.0) + , + Str(Format(Lineky(i), 000.0) + ) zb = zb + ( + Str(Format(Linezx(i), 000.0) + , + Str(Format(Linezy(i), 000

30、.0) + ) + R= + Str(Format(yhur(i), 000.0) + vbCrLf End If Next iEnd FunctionFunction rad(t As Double) rad = t * pi / 180 角度转为弧度End FunctionFunction sp() 直线与圆弧的信息处理 i = 1 For j = 0 To UBound(m) j从0到m数组中可用的最大下标 If m(j) = AcDbCircle Then 圆弧的信息处理 yhuox(i) = Val(m(j + 2) 圆弧圆心横坐标的值 ( 跟dxf所含的信息有关) yhuoy(i)

31、 = Val(m(j + 4) 圆弧圆心纵坐标的值 yhur(i) = Val(m(j + 8) 圆弧半径的坐标值 yhus(i) = rad(Val(m(j + 12) 圆弧起始角的坐标值 yhue(i) = rad(Val(m(j + 14) 圆弧终点角的坐标值 Linezx(i) = yhur(i) * Cos(yhus(i) + yhuox(i) Linezy(i) = yhur(i) * Sin(yhus(i) + yhuoy(i) 直线起点与终点的坐标(圆弧) Linekx(i) = yhur(i) * Cos(yhue(i) + yhuox(i) Lineky(i) = yhur

32、(i) * Sin(yhue(i) + yhuoy(i) lorc(i) = False If yhus(i) yhue(i) Then arcdir(i) = False Else arcdir(i) = True End If i = i + 1 ElseIf m(j) = AcDbLine Then 直线的信息处理 Linekx(i) = Val(m(j + 2) Lineky(i) = Val(m(j + 4) Linezx(i) = Val(m(j + 8) (与dxf中的信息有关) Linezy(i) = Val(m(j + 10) lorc(i) = True i = i + 1

33、 End If Next j End FunctionFunction draw() 绘图Picture1.Line (2500, 0)-(-2500, 0) 定义坐标系 Picture1.Line (0, 2500)-(0, -2500) 画出 直线 ,圆弧 For i = 1 To a + b (a+b为直线和圆弧的总段数) If lorc(i) = True Then Picture1.Line (Linekx(i) * Val(Text4.Text), Lineky(i) * Val(Text4.Text)-(Linezx(i) * Val(Text4.Text), Linezy(i)

34、 * Val(Text4.Text), RGB(255, 0, 0) RGB为指定颜色的函数 255 0 0为红色 Else Picture1.Circle (yhuox(i) * Val(Text4.Text), yhuoy(i) * Val(Text4.Text), yhur(i) * Val(Text4.Text), RGB(255, 0, 255), yhus(i), yhue(i) RGB为指定颜色的函数 255 0 255为红色洋红色 End If Next iEnd FunctionFunction order() 排序Dim tarcdir As Boolean 设定交换的中间

35、变量Dim tempsx As DoubleDim tempsy As DoubleDim tempex As DoubleDim tempey As DoubleDim tempr As DoubleDim tempox As DoubleDim tempoy As DoubleDim t1 As DoubleDim t2 As DoubleDim tyhus As DoubleDim tyhue As DoubleDim tlorc As Double For i = 1 To a + b For j = i + 1 To a + b a+b为直线与圆弧的总段数 If (Linekx(j)

36、 - Linezx(i) 2 + (Lineky(j) - Linezy(i) 2 0.0001 Then 判断排序曲线段 tarcdir = arcdir(i + 1) 顺圆或逆圆换回 arcdir(i + 1) = arcdir(j) arcdir(j) = tarcdir tlorc = lorc(i + 1) 直线或圆弧调回 lorc(i + 1) = lorc(j) lorc(j) = tlorc tempsx = Linekx(i + 1) 坐标换,调入中间变量 tempsy = Lineky(i + 1) tempex = Linezx(i + 1) tempey = Linez

37、y(i + 1) tempr = yhur(i + 1) 半径换 tempox = yhuox(i + 1) 圆心坐标换 tempoy = yhuoy(i + 1) tyhus = yhus(i + 1) 起止角度换 tyhue = yhue(i + 1) Linekx(i + 1) = Linekx(j) 信息互换 各坐标值交换 Lineky(i + 1) = Lineky(j) Linezx(i + 1) = Linezx(j) Linezy(i + 1) = Linezy(j) yhur(i + 1) = yhur(j) yhuox(i + 1) = yhuox(j) yhuoy(i +

38、 1) = yhuoy(j) yhus(i + 1) = yhus(j) yhue(i + 1) = yhue(j) Linekx(j) = tempsx Lineky(j) = tempsy Linezx(j) = tempex Linezy(j) = tempey yhur(j) = tempr yhuox(j) = tempox yhuoy(j) = tempoy yhus(j) = tyhus yhue(j) = tyhue Exit For ElseIf (Linezx(j) - Linezx(i) 2 + (Linezy(j) - Linezy(i) 2 0.0001 Then arcdir(j) = Not arcdir(j) t1 = Linezx(j) 直线信息互换 t2 = Linezy(j) Linezx(j) = Linekx(j) Linezy(j) = Lineky(j) Linekx(j) = t1 Lineky(j) = t2 tempsx = Li

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号