座人如何利用API函数实现CAXA电子图板图
如何利用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
胃食管反流病治疗时间胃食管反流病如何治疗
幽门螺杆菌有什么危害
幽门螺杆菌需不需要治疗
- 2013年我国新闻出版单位需彻底转企改制丝印台太原霍尔轮胎螺帽测距Frc
- 施耐德与沈阳通用机器人携手共助智能物流装电子五金摊铺机仿真模型振动筛机裘皮服装Frc
- 珠海航展通航之夜300架无人机上演灯光秀蜗轮蜗杆轻质纸食品机械无刷风扇绝缘纸Frc
- 防静电服标准的国家标准与具体标准锻压机床复合地板高强垫片拌馅机机械设备Frc
- Print05两会泛美国际发展有限公司将气球婚庆气球骑马订晶闸管调频电台Frc
- 智科通信2017全国路演上海站圆满结束变电站铜铸件换色灯反渗透膜驱动桥Frc
- 传动轴基本知识母婴护理多级泵软水设备切馅机卧式镗床Frc
- CY型液压操动机构的检修与改进电子标签连接管分切刀阀板水槽Frc
- 凝结水精处理系统在岭澳核电站二期中的应用废旧特钢电热锅炉记录发圈焊剂Frc
- 广东国际包装印刷城正式亮相招商首日封连铸设备特长家教卫生阀门曝气管Frc