CREO二次开发-打开同名工程图

一、实现功能

在组件下打开零部件的同名工程图,如无同名工程图则新建工程图。如选择的文件为组件则插入材料明细表。

二、新建命令

1、命令图标可不添加。

2、图标存放位置:D:\Program Files\PTC\Creo 7.0.7.0\Common Files\text\resource(根据CREO安装位置下修改)。

extern "C" int user_initialize()
{
    ProError     status;
    uiCmdCmdId   cmd_drw;
    ProFileName MsgFile;
    ProStringToWstring(MsgFile, "Message.txt");

    status = ProCmdActionAdd("cmd_create_drw", (uiCmdCmdActFn)Draw, uiCmdPrioDefault, AccessDefault, PRO_B_TRUE, PRO_B_TRUE, &cmd_drw);
    status = ProCmdIconSet(cmd_drw, "auto_drawing_large.png");//命令图标,32*32或16*16像素
    status = ProCmdDesignate(cmd_drw, "createdrw", "open or creat drw", "open or creat drw", MsgFile);
    return status;
}

三、程序主体

1、选择零部件

可使用ProSelect或ProSelbufferSelectionsGet获取选择的零部件。

ProError status;
ProSelection* sels;
int nb_sel;

status = ProSelect("prt_or_asm", 10, NULL, NULL, NULL, NULL, &sels, &nb_sel);
if (status != PRO_TK_NO_ERROR)
{
	return(status);
}

2、尝试打开工程图

ProMdlFiletypeLoad仅将工程图读取到内存中,并不打开窗口。可通过ProObjectwindowMdlnameCreate创建窗口。


status = ProSelectionModelitemGet(sels[i], &asmcomp);

ProMdl Model = asmcomp.owner;
ProMdl Drw_model;
ProMdldata mdldata;

ProMdlDataGet(Model, &mdldata);

ProMdlDirectoryPathGet(Model, path);//获取零部件路径
ProWstringConcatenate(mdldata.name, path, PRO_VALUE_UNUSED);
ProWstringConcatenate(_T(".drw"), path, PRO_VALUE_UNUSED);
status = ProMdlFiletypeLoad(path, PRO_MDLFILE_UNUSED, PRO_B_FALSE, &Drw_model);//读取工程图

3、新建工程图

ProMdlFiletypeLoad返回错误是就需新建工程图。ProDrawingFromTmpltCreate可根据模板创建新的工程图。

ProError status;
ProModel Model;
ProPath template_path = _T("...");//模板文件位置

ProMdlMdlnameGet(asmcomp.owner, Model.name);
ProMdlExtensionGet(asmcomp.owner, Model.type);

ProDrawing draw;
ProDwgcreateErrs err;

status = ProDrawingFromTmpltCreate(Model.name, template_path, &Model, PRODWGCREATE_DISPLAY_DRAWING, &draw, &err);//根据模板建立工程图
if (status != PRO_TK_NO_ERROR)
{
	AfxMessageBox(_T("图纸生成失败!"));
	return(status);
}

4、插入材料明细表

当选择的为组件是则需插入材料明细表。

if (asmcomp.type == PRO_ASSEMBLY)
{
	ProDwgtable table;
	ProPoint3d point = { 559.52,213.54,0 };//插入坐标位置

	status = ProDwgtableByOriginRetrieve(draw, _T("表名称"), _T("表存放位置"), 0, point, (ProSolid)asmcomp.owner, NULL, &table);//插入材料明细表,
	if (status != PRO_TK_NO_ERROR)
	{
		AfxMessageBox(_T("表格插入失败!"));
		return(status);
	}
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
本套ProE映射键布局针对情况为:主要用零件、组装,少量钣金、工程图,常用基本建模、拔模、测量、剖面,由此出发,参阅多份前人的映射键布局设置,经若干次修改而成。文件包括一份布局表格,一份代码(两百余映射键,三千行代码) 布局上特点及考虑要点为: 1. 考虑方便使用,按键主要功能分布在键盘左区,少量常用键为单键,大多为双键,少量为多键。 2. 相近功能布置在相同键或相近区域,如A-装配,S-实体特征、D-剪裁特征、F-曲面特征,W-钣金,E-编辑,Q-快速操作,X-剖面,数字-视图,等等。 3. 特征操作与草绘分别在键盘左区与右区,分别进行优化布局。 4. 结合代码,实现一键通用或多用,减少冗余按键,增强了草绘、新建特征、编辑特征、剖面建立与查看、视图查看等功能的方便性。 5. 考虑方便记忆,按键尽量取自其英文版词汇,同时兼顾操作方便、避免布局冲突、减少误操作,以及尽量包容不同软件版本。 6. 全套二百余键,不求全记,而求在需要用时能方便。专门制作Excel布局表格,按键分类着色,将常用和重点突出,以彩色打印,可方便查阅,快速上手。 功能上的特点(通过代码实现,简单介绍部分): 1. 兼容PROE2.0/3.0/4.0,因为自己安的是2.0和4.0,公司的是2.0和3.0,所以兼顾考虑,但有某些细微差异。 2. 通过映射键的组合与嵌套,实现一键通用或多用。如: SE-实体拉伸,直接进入参照选择界面,在选择两平面或选择一平面后在空白处点击左键后,会直接进入草绘界面。 ED-编辑定义,可以用于特征、组件中零件、层、工程图视图和尺寸的编辑; EF-编辑参照平面,能直接进入拉伸、旋转、扫描、筋、填充等特征的参照选择界面; ES-编辑草绘,则能直接进上述特征的草绘状态; ET-编辑轨迹,则能用于扫描的轨迹编辑; RF-在特征出错时,执行重定义,而ED、EF、ES、ET也能直接进入对应编辑状态进行修复。 QE-快速退出,能退出大多编辑状态,不保存; QA(TY)-快速接受,无错时能一路打勾; SA(Y)-单步接受,一步一步地确定; II-镜像,在特征与草绘、工程图均能使用。 3. 通过映射键控制配置选项的开关,实现某些特殊功能。如: KN-Sketch Refit-NO 关闭草绘自动缩放,解决困扰很多人许久的草绘更改尺寸后自动缩放的问题。KY恢复默认状态。 S3或S4,能使PROE在新建或修改草绘时不会自动定向,速度快了,像感觉其它3D软件一样。S1或S2恢复。 4. 实现快速新建一个或多个剖面功能、快速查看功能。如: XF,查看Front剖面,并定向Front; XCA到XCZ,分别以字母A到Z命名的剖面; XGF,自动进入Front草绘,划线后,建立偏移类型剖面; XS,能快速进入剖面的草绘编辑状态; NXAF,NXBF,分别在组件或零件中以Front面为基准,陈列10个平面并建立对应剖面,完成后可编辑修改; NXAX,NXBX,分别在组件或零件中以一面和一轴为参考,旋转陈列18个平面并建立对应剖面,相当于每10°都有一截面。 5. 增加某些特殊功能键,如AA,在3D中选中某个元件或特征后,运行AA可自动找到它在模型树中的位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值