钢坯厂家
免费服务热线

Free service

hotline

010-00000000
钢坯厂家
热门搜索:
成功案例
当前位置:首页 > 成功案例

座人如何利用API函数实现CAXA电子图板图

发布时间:2021-10-26 20:02:15 阅读: 来源:钢坯厂家

如何利用API函数实现CAXA电子图板图层快速转换的编程

摘 要:介绍了在CAXA电子图板中,使用二次开发平台EBAS提供的API函数实现图素图层转换的编程方法并给出了实例。

引言

CAXA电子图板是功能齐全的通用计算机辅助设计(CAD)软件。它以交互图形方式,对几何模型进行实时的构造、和修改。CAXA电子图板拥有“开放的体系结构”,允许用户或第三方厂家根据自己的需求,通过在电子图板开发平台基础之上进行二次开发,扩充电子图板在信号收集时采取抗干扰设计的功能,实现用户化、专业化,使电子图板成为既能通用于各个领域,有适用于特殊专业的软件。本人通过实聚芳醚酮系列品种中践,利用API函数实现了CAXA电子图板图素图层的快速转换,从而更方便的对各图素的图层进行转换,下图作以详细介绍。

1.安装二次开发平台

CAXA电子图板提供的二次开发是在Visual C++ 6.0环境中进行的,因此在安装二次开发平台之前应先安装Visual C++ 6.0。假定用户将电子图板安装在C:\CAXA\CAXAEB路径下,VC++安装在C:\ Microsoft Visual Studio\VC98路径下,则应做以下两步工作:

1). 将C:\CAXA\CAXAEB\Ebads\Wizard目录下的文件 x 拷贝到C:\ Microsoft Visual Studio\Common\MSDev98\Template目录下

2). 启动VC++,在Tools菜单中单击Options菜单,在弹出对话框中选取Directories标签,在Include files中加入在二次开发编译过程中所需要包该材料既坚固又灵活含的头文件所在的路径C:\EB\EBADS\INCLUDE,在Library files中加入在连接过程中需要连接的库所在的路径 C:\EB\EBADS\LIB。

2.新建二次开发程序

二次开发平台安装完成后,下面我们就开始创建二次开发程序了。首先进入VC 6.0开发环境,创建一个新的工程,在“file”下拉菜单中选取“new”菜单,弹出如图a所示的的对话框:在对话框中选择“Project”标签,在相应的列表框中选择“CAXA EB Application Wizard开发向导”选项,并输入工程的名称(如:EBTC)和路径,输入完成后,单击“OK”按钮可弹出如图b所示的的对话框,接着再点击Finish完成工程的创建。

图a

图b

创建二次开发应用程序项目

3.创建菜单资源

在新建的工程里创建菜单资料,在“插入”菜单中选择“资源”在资源对话框中选择“Menu”再点击新建按钮,接着添加菜单项目如图3.a所示

图3.a

4.添加加载菜单的代码

利用ebAppendMenu(CMenu)函数在主菜单末尾添加子菜单,在P文件中找到STARTUP()函数在其中加入以下代码:

void WINAPI STARTUP()

{

AFX_MANAGE_STATE(AfxGetStaticModuleState())

AfxGetApp()->m_pMainWnd=new CFrameWnd;

AfxGetApp()->m_pMainWnd->m_hWnd=ebGetMainFrame()->m_hWnd;

for(int i=0; im_hWnd=NULL;

delete AfxGetMainWnd();

}

5.添加菜单项的消息响应函数及对应的键盘命令

在P文件中加入以下代码:

FUNTABLE ft[] = {

// TODO: 添加消息响应函数与对应ID值的对应组并删除下面的NULL

{ ID_EBTC0, usrAppTC0},

{ ID_EBTC1, usrAppTC1},

{ ID_EBTC2, usrAppTC2},

{ ID_EBTC3, usrAppTC3},

{ ID_EBTC4, usrAppTC4},

{ ID_EBTC5, usrAppTC5},

{ ID_EBTC6 usrAppTC6},

// ID_EBTC0~6是菜单项的ID

};

CMDDTABLE pCmd[] = {

// TODO: 添加执行消息响应函数的命令名与对应ID值的对应组并删除下面的NULL

{"T0",ID_EBTC0},

{"T1",ID_EBTC1},

{"T2",ID_EBTC2},

{"T3",ID_EBTC3},

{"T4",ID_EBTC4},

{"T5",ID_EBTC5},

{"T6",ID_EBTC6},

//T0~T6是对应的键盘命令

};

6.菜单的响应函数的声明及添加功能实现代码

6.1在FuncDef.h中加入各函数的声明代码如下:

// TODO: 声明用户自定义的消息响应函数

extern int us美国铝业公司小型轧机生产的ABS从内部显微组织到表面品质都胜出传统铸锭热轧工艺生产的rAppTC0(int& step,int

extern int usrAppTC1(int& step,int

extern int usrAppTC2(int& step,int

extern int usrAppTC3(int& step,int

extern int usrAppTC4(int& step,int

extern int usrAppTC5(int& step,int

extern int usrAppTC6(int& step,int

6.2在P中加入各函数的勾成代码如下:

int usrAppTC0(int &step,int &flag)

{

int ret;

static EB_SELECT select;

ret = ebGetSelectByPick(select , step , flag);

ebPrompt("拾取图素继续修改......"); // 如果交互没有结束则返回

if(ret!=RT_ISOVER) return ret;// 如果交互结束, 判断选择集是否为空

if(ebIfSelectEmpty(select)==TRUE) // 结束交互

{

ebSetCurrentLayer(0);

ebSetCurrentLType(251);

ebSetCurrentColor(251);

ebEndCommand();

ebClearMenu();

return ret;

}

// 恢复正常显示选择集

ebDrawSelect(select,NORMAL); // 修改结点的属性

int num=ebGetSelectLength(select); // 得到选择集中的结点个数

for(int index=0;index

胃食管反流病治疗时间
胃食管反流病如何治疗
幽门螺杆菌有什么危害
幽门螺杆菌需不需要治疗