——兼谈关于二次开发接口的错误认识
开目CAPP是一功能强大的CAPP工具系统,一集工程绘图、表格填写、信息查询等功能于一体的CAPP通用框架平台。在开发的过程中,采用的先进的软件开发工具和软件开发思想。除了提供通用的功能以外,还提供了功能丰富的二次开发接口,利用这些接口,用户无须了解开目CAPP数据结构的细节,就可以很方便地获得所需的工艺信息,而且不受软件升级的影响。利用开目CAPP所提供的接口,用户可以实现以下的功能:
1、提取零部件的工艺属性信息。如某零件的材料牌号、名称、毛坯种类、毛坯规格、零件重量等工艺卡片上表头的信息;
2、提取零部件的工艺路线信息。例如获取零件的工序数目,零件的某一工序的工序名称、设备、工时等详细的信息;
3、提取零部件的工序内容信息。例如获取零件的工序的工艺装备、工序内容、车间、工步工时等工艺卡片上的信息;
4、轻松在其它计算机应用系统内浏览开目CAPP的工艺文件。放大、缩小、移动、翻页等,无须了解工艺数据细节,简单地将控件插入到应用系统里即可。
这些接口现在广泛地应用在开目CAPP的各个模块中,不仅我们可以用,用户也可以根据需要选用。我们开发接口的目的不仅仅是提高CAPP程序开发的复用性、标准化,提高开发的效率和质量,也可以为用户的深化应用提供更深层次的开发帮助。由于完全自主版权,我们可以为用户开发一些专用的接口,并可以协助用户做一些专业的开发。
接口的形式有DLL、OCX等。支持Windows平台下的各种开发工具,包括Visual C++,Visual Basic,PowerBuild,Delphi等。开目CAPP的很多增值模块就是通过这些接口实现的,这可以最大限度的减少重复开发工作,将数据访问与数据结构细节分离,使应用系统开发者着重于功能的构造和实现,无须关心数据细节,而且开发出来的功能可以不受开目CAPP软件升级的影响,体现了组件对象模型的软件设计思想。
这里需要指出的是,有的人往往将数据库和开发接口混为一谈,认为数据库就是标准的开发接口或标准的数据访问接口,这是错误的认识。
数据库是一结构化的数据存储格式,可以将各种信息分门别类存储到相关的数据表内,由于不同的应用需求,每种数据库的数据表结构均不同,而且由于系统功能的升级和改进,数据表结构可能会变化。例如,在存储工艺信息数据库时,工序简图的信息可能放在工序数据表内,后来需要单独存储工艺简图信息,则需要增加一工艺简图数据表。由于数据表结构的变化,相关的访问工艺简图信息的程序就要改变,从原先的工序表内提取信息改为从工艺简图数据表内提取。尽管访问数据库本身已经有标准的接口和驱动程序,但是数据库信息的提取和组合还是需要自己开发和完善,需要根据不同的数据表结构和含义来编写程序。那种认为存为数据库了就是标准的认识是非常片面的。
接口是标准的数据访问函数集,它脱离于具体的数据结构和数据细节,使用者无须关心具体的存储形式。如上例,可以提供一访问工艺简图的标准接口,在应用程序里利用该接口就可以获取所要的某一工序的简图信息。今后工艺简图存储变了,只需升级接口,用户无须更改应用程序本身,明显地提高了系统开发效率和系统的可维护性。
因此数据库只是一种数据的存储形式,但并非数据访问的标准接口。接口适用的范围很广,每个应用系统可以开发、开放其接口,接口可以适用于文本文件、数据库文件、应用系统本身。它是真正的各个应用系统之间进行信息交换的标准通行证。用户二次开发应该注重所选的应用系统是否提供了标准的数据访问接口,而不是一味地注重具体的数据存放形式。
即使存成数据库形式,今后系统升级了,数据库结构变了,根据原先数据库结构开发的功能肯定还需要重新修改程序。这种开发方式不符合程序开发的模块化、复用性的原则。 nextpage
附
开目CAPP主要开发接口
《 一 》开目CAPP浏览器控件:kmgyk.ocx
一、支持的格式:.gxk , .kmt
二、提供的方法:
1、初始化工艺控件:InitKmgyk(LPCTSTR sFileName),sFileName指工艺文件名
2、满屏显示: SetZoomFull();
3、翻到指定页:ExchangeonPage(short page)
4、翻到下一页:ExchangeonNextPage()
5、翻到前一页:ExchangeonPriPage()
6、获得当前页:GetCurrentPageNO()
7、以当前光标为中心缩小显示:onZoomOut()
8、翻到首页:ExchangeonFirstPage()
9、翻到末页:ExchangeonLastPage()
10、在过程卡和工序卡间切换:ExchangeGxkAndGchk()
11、设置鼠标单击的操作:SetClickState(LPCTSTR state)
char ch; SetClickState(&ch); 其中:
ch=’a’; //单击放大
ch=’w’; //窗口放大
ch=’n’; //一般状态,按鼠标左键移动图形
《二》、获取工艺文件的表头、表中信息接口
所有的接口可以通过动态链接库kmcappdll.dll获得。提供以下接口:
1、extern "C" void * InitKmcappDoc(char *FileName);
初始化工艺文件,获得一指向文档内容的指针。该指针是后续获取工艺信息的重要入口。
2、extern "C" int GetOperationNumber(void *);
获得当前工艺的工序数。入口参数为接口1获得的指针;
3、extern "C" void GetOperationInformation(void *p,int OperationNumber,char *ParameterName,CString& ParameterValue);
获取指定工序的指定参数信息。
*P:接口1获得的指针
OperationNumber:第几个工序;
ParameterName:要获取的工序参数名称:
ParameterValue:返回值,表示获取的工序参数内容:
例如:
GetOperationInformation(p,5,“工序名称”,ParameterValue);
表示获取第5道工序的工序名称,获取的内容存放至ParameterValue;
4、extern "C" void GetGxkHeadInformation(void *p,char*ParameterName,CString& ParameterValue);
获取表头信息。
*P:接口1获得的指针
ParameterName:要获取的表头参数名称:
ParameterValue:要获取的表头参数内容:
例如:
ParameterName(p,“零件图号”,ParameterValue);
表示获取工艺文件的零件图号,获取的内容存放至ParameterValue;
5、extern "C" void SetGxkHeadInformation(void *p,char *ParameterName,char *ParameterValue)
更改表头信息。
*P:接口1获得的指针
ParameterName:要更改的表头参数名称:
ParameterValue:要更改的表头参数内容:
例如:
SetGxkHeadInformation(p,“零件图号”,“123”);
表示更改工艺文件的零件图号为123。
6、extern "C" void SaveCappContent(void *p,char *name)
将更改以后的工艺存储下来。
*P:接口1获得的指针
name:存储的文件名。