一种用于复杂刀具多参数设计的CAD方法
<P><STRONG><FONT face="Times New Roman">1</FONT>.引言</STRONG></P><P> 在刀具设计,尤其是复杂刀具的设计中,为了减少设计工作量,缩短设计周期,提高设计精度,采用<FONT face="Times New Roman">CAD</FONT>技术已是当务之急。本文在普通刀具<FONT face="Times New Roman">CAD</FONT>技术的基础上,提出一种适用于复杂刀具多参数设计的<FONT face="Times New Roman">CAD</FONT>方法,并开发了相应的<FONT face="Times New Roman">CAD</FONT>软件。对于同一类型不同结构尺寸的复杂刀具,只要输入已知参数,不必重新编程计算,即可自动按用户要求进行刀具结构尺寸运算,并绘制出刀具设计结构图。该软件的最大优点是具有一定通用性,与交互式绘图软件相比,可大大缩短设计周期,提高设计精度,减小同类产品之间的设计误差。现以蜗轮滚刀参数设计为例,对软件的总体结构、功能设计和数据通讯作一介绍。</P>
<P><STRONG><FONT face="Times New Roman">2</FONT>.蜗轮滚刀参数设计软件的总体结构</STRONG></P>
<P> 本软件采用结构化设计方法,首先利用<FONT face="Times New Roman">Foxbase</FONT>+数据库进行窗口设计和数据查询、检索;然后采用<FONT face="Times New Roman">VC</FONT>++语言进行参数运算;最后调用智能型参数绘图语言<FONT face="Times New Roman">Autolisp</FONT>编制的绘图程序进行滚刀工作图绘制。软件执行框图见下图。</P>
<P align=center><IMG height=546 src="http://news.mechnet.com.cn/upload/0904081601385669.bmp" width=308></P>
<P align=center><STRONG>软件执行框图</STRONG></P>
<P><STRONG><FONT face="Times New Roman">3</FONT>.窗口设计和数据检索</STRONG></P>
<P> 本软件的菜单设计和数表查询均采用<FONT face="Times New Roman">Foxbase</FONT>+语言,<FONT face="Times New Roman">Foxbase</FONT>+可实现建立数据库和数据查询等操作,并可通过程序实现数据文件中的数据操作。因此,设计蜗轮滚刀时的许多查表工作均由<FONT face="Times New Roman">Foxbase</FONT>+完成。此外,<FONT face="Times New Roman">Foxbase</FONT>+还具有简明的菜单设计功能。本软件采用@<FONT face="Times New Roman">X</FONT>,<FONT face="Times New Roman">Y</FONT> <FONT face="Times New Roman">SAY</FONT>“……”语句进行菜单设计,其优点在于:用@……<FONT face="Times New Roman">SAY</FONT>定位显示语句可以在屏幕任意位置设置任意大小的菜单,不必在没有显示信息的地方频繁添补空格符,因此具有一定灵活性。而且这种语句可充分利用硬件环境提供的彩色功能,使菜单美观醒目。程序语句举例如下<BR> @<FONT face="Times New Roman">5</FONT>,<FONT face="Times New Roman">12</FONT> <FONT face="Times New Roman">say</FONT>“……蜗轮滚刀菜单选择……”<BR> @<FONT face="Times New Roman">7</FONT>,<FONT face="Times New Roman">12</FONT> <FONT face="Times New Roman">prompt</FONT>“<FONT face="Times New Roman">1</FONT>.阿基米德蜗轮滚刀”<BR> @<FONT face="Times New Roman">9</FONT>,<FONT face="Times New Roman">12</FONT> <FONT face="Times New Roman">prompt</FONT>“<FONT face="Times New Roman">2</FONT>.齿槽法向直廓蜗轮滚刀”<BR> @<FONT face="Times New Roman">11</FONT>,<FONT face="Times New Roman">12</FONT> <FONT face="Times New Roman">prompt</FONT>“<FONT face="Times New Roman">3</FONT>.<FONT face="Times New Roman">ZC1</FONT>圆弧圆柱蜗轮滚刀”<BR> @<FONT face="Times New Roman">12</FONT>,<FONT face="Times New Roman">13</FONT> <FONT face="Times New Roman">prompt</FONT>“<FONT face="Times New Roman">4</FONT>.退出”</P>
<P><STRONG><FONT face="Times New Roman">4</FONT>.<FONT face="Times New Roman">Foxbase</FONT>+与<FONT face="Times New Roman">VC</FONT>++间的数据通讯</STRONG></P>
<P> 本软件中有关滚刀结构参数的计算采用<FONT face="Times New Roman">VC</FONT>++语言,而<FONT face="Times New Roman">Foxbase</FONT>+与高级语言之间的数据通讯是借助数据文件来实现的。<BR> <FONT face="Times New Roman">Foxbase</FONT>+的<FONT face="Times New Roman">COPY</FONT> <FONT face="Times New Roman">TO</FONT>命令可将数据库文件转换为高级语言程序能够接受的数据文件(以*.<FONT face="Times New Roman">TXT</FONT>为扩展名的文本文件),而<FONT face="Times New Roman">APPEND</FONT> <FONT face="Times New Roman">FROM</FONT>命令则可将高级语言数据文件的数据转移到数据库文件中,从而完成<FONT face="Times New Roman">Foxbase</FONT>+与高级语言之间的数据通讯。</P>
<P><STRONG><FONT face="Times New Roman">5</FONT>.<FONT face="Times New Roman">Foxbase</FONT>+与<FONT face="Times New Roman">Autolisp</FONT>间的数据通讯</STRONG></P>
<P> 在计算机辅助设计中,数据信息与图形信息紧密相关,在利用<FONT face="Times New Roman">Foxbase</FONT>+菜单设计数表查询、调用<FONT face="Times New Roman">VC</FONT>++程序计算出滚刀设计结构参数以后,则需要将这些数据信息传输给<FONT face="Times New Roman">Autolisp</FONT>程序进行参数绘图。<BR> <FONT face="Times New Roman">Autolisp</FONT>语言是一种嵌入<FONT face="Times New Roman">AutoCAD</FONT>内容的智能设计语言,是对<FONT face="Times New Roman">AutoCAD</FONT>进行二次开发的有力工具,该语言在<FONT face="Times New Roman">AutoCAD</FONT>环境下运行,可直接调用<FONT face="Times New Roman">AutoCAD</FONT>绘图命令。<BR> 在本软件设计中,采用<FONT face="Times New Roman">Autolisp</FONT>的输入输出(<FONT face="Times New Roman">I</FONT>/<FONT face="Times New Roman">O</FONT>)功能来实现与<FONT face="Times New Roman">Foxbase</FONT>+的数据通讯。在<FONT face="Times New Roman">Autolisp</FONT>的<FONT face="Times New Roman">I</FONT>/<FONT face="Times New Roman">O</FONT>函数中,<FONT face="Times New Roman">Read-line</FONT>能够从<FONT face="Times New Roman">ASCII</FONT>码文本文件中读取数据,每次读取一行,每一行作为一个处理单元。利用<FONT face="Times New Roman">Foxbase</FONT>+语言将滚刀设计结构参数的最终计算结果存入一个文本文件(*.<FONT face="Times New Roman">TXT</FONT>)中,然后再由<FONT face="Times New Roman">Autolisp</FONT>接口程序调用,读取文本文件(*.<FONT face="Times New Roman">TXT</FONT>)中的数据,进行参数绘图。<BR> 例如:读取直线两端点坐标<FONT face="Times New Roman">Pt<SUB>1</SUB></FONT>,<FONT face="Times New Roman">Pt<SUB>2</SUB></FONT>绘制直线<FONT face="Times New Roman">Pt<SUB>1</SUB>Pt<SUB>2</SUB></FONT>,其程序如下:<BR> (<FONT face="Times New Roman">setq</FONT> <FONT face="Times New Roman">f</FONT>(<FONT face="Times New Roman">open</FONT> “<FONT face="Times New Roman">name1</FONT>.<FONT face="Times New Roman">txt</FONT>” “<FONT face="Times New Roman">r</FONT>”))<BR> (<FONT face="Times New Roman">setq</FONT> <FONT face="Times New Roman">kk</FONT>(<FONT face="Times New Roman">read</FONT> <FONT face="Times New Roman">line</FONT> <FONT face="Times New Roman">f</FONT>))<BR> (<FONT face="Times New Roman">setq</FONT> <FONT face="Times New Roman">b</FONT>“(”<FONT face="Times New Roman">c</FONT>“)”)<BR> (<FONT face="Times New Roman">setq</FONT> <FONT face="Times New Roman">mm</FONT>(<FONT face="Times New Roman">strcat</FONT> <FONT face="Times New Roman">b</FONT> <FONT face="Times New Roman">kk</FONT> <FONT face="Times New Roman">c</FONT>))<BR> (<FONT face="Times New Roman">setq</FONT> <FONT face="Times New Roman">nn</FONT>(<FONT face="Times New Roman">read</FONT> <FONT face="Times New Roman">mm</FONT>))<BR> (<FONT face="Times New Roman">setq</FONT> <FONT face="Times New Roman">pp</FONT>(<FONT face="Times New Roman">car</FONT> <FONT face="Times New Roman">nn</FONT>))<BR> (<FONT face="Times New Roman">if</FONT>(=<FONT face="Times New Roman">pp</FONT> <FONT face="Times New Roman">1</FONT>)(<FONT face="Times New Roman">setq</FONT> <FONT face="Times New Roman">ptl</FONT>(<FONT face="Times New Roman">list</FONT> (<FONT face="Times New Roman">nth</FONT> <FONT face="Times New Roman">1nn</FONT>)(<FONT face="Times New Roman">nth</FONT> <FONT face="Times New Roman">2nn</FONT>))))<BR> (<FONT face="Times New Roman">setq</FONT> <FONT face="Times New Roman">pt2</FONT>(<FONT face="Times New Roman">list</FONT>(<FONT face="Times New Roman">nth</FONT> <FONT face="Times New Roman">3</FONT> <FONT face="Times New Roman">nn</FONT>)(<FONT face="Times New Roman">nth</FONT> <FONT face="Times New Roman">4</FONT> <FONT face="Times New Roman">nn</FONT>)))<BR> (<FONT face="Times New Roman">command</FONT>“<FONT face="Times New Roman">line</FONT>”<FONT face="Times New Roman">pt1</FONT> <FONT face="Times New Roman">pt2</FONT>)<BR> (<FONT face="Times New Roman">command</FONT> <FONT face="Times New Roman">nil</FONT>)</P>
<P><STRONG><FONT face="Times New Roman">6</FONT>.结语</STRONG></P>
<P> 本软件利用<FONT face="Times New Roman">Foxbase</FONT>+生成屏幕菜单,直观简洁。<FONT face="Times New Roman">Foxbase</FONT>+的数据库管理功能便于刀具设计所需表项的存储,并可定位查找。为克服<FONT face="Times New Roman">Foxbase</FONT>+计算能力差的弱点,利用<FONT face="Times New Roman">VC</FONT>++进行刀具结构参数的计算,并利用接口程序实现两种语言之间的数据通讯。<BR> 刀具结构参数确定以后,通过调用预先编制的<FONT face="Times New Roman">Autolisp</FONT>参数绘图程序,可方便、迅速地绘出蜗轮滚刀工作图,省去了交互式绘图的繁琐程序。<BR> 本软件的编程方法同样适合于其它类型刀具的<FONT face="Times New Roman">CAD</FONT>。</P>
页:
[1]