iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 26243|回复: 4
打印 上一主题 下一主题

哪位高手帮忙解释一下下面这段proe二次开发代码的含义。谢谢!

[复制链接]
跳转到指定楼层
楼主
发表于 2008-10-24 00:42:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
下面这段代码摘自一个二次开发的例子,在下有很多不明白的地方,希望哪位高手帮忙解释一下,越详细越好。先谢谢了!

// NewMdlDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "Ch2_Dlg2.h"
#include "NewMdlDlg.h"
#include <roToolkit.h>
#include <roUtil.h>
#include <roSolid.h>
#include <roMdl.h>
#include <roDrawing.h>
#include <roWindows.h>
// CNewMdlDlg 对话框
IMPLEMENT_DYNAMIC(CNewMdlDlg, CDialog)
CNewMdlDlg::CNewMdlDlg(CWnd* pParent)
: CDialog(CNewMdlDlg::IDD, pParent)
, m_nRadioBtn(0)
, m_csMdlName(_T(""))
{
}
CNewMdlDlg::~CNewMdlDlg()
{
}
void CNewMdlDlg:oDataExchange(CDataExchange* pDX)
{
CDialog:oDataExchange(pDX);
DDX_Radio(pDX, IDC_RADIO_PART, m_nRadioBtn);
DDX_Text(pDX, IDC_EDIT1, m_csMdlName);
}

BEGIN_MESSAGE_MAP(CNewMdlDlg, CDialog)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()

// CNewMdlDlg 消息处理程序
/************************************************************************/
/* 【确定】的事务处理程序                                               */
/************************************************************************/
void CNewMdlDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
if (!m_csMdlName.IsEmpty()) {
  AfxMessageBox("请输入名称!");
  return;
}
switch(m_nRadioBtn) {
case 0:
  if (!NewPartMdl(m_csMdlName)) {
   return;
  }
  break;
case 1:
  if (!NewAsmMdl(m_csMdlName)) {
   return;
  }
  break;
case 2:
  if (!NewDrawingMdl(m_csMdlName)) {
   return;
  }
  break;
default:
  break;
}
OnOK();
}
/************************************************************************/
/*函数:NewPartMdl    新建零件模型                                      */
/************************************************************************/
bool CNewMdlDlg::NewPartMdl(CString csName)
{
ProError status;
ProLine  buff;
ProMdl   model;
int      w_id;
ProStringToWstring(buff,csName.GetBuffer());
status = ProSolidCreate(buff, PRO_PART, (ProSolid *)&model);
if (status!=PRO_TK_NO_ERROR)
{
  AfxMessageBox("文件已存在或文件名不合法!");
  return false;
}
if (status==PRO_TK_NO_ERROR) {
  ProMdlDisplay(model);
  ProMdlWindowGet(model,&w_id);
  ProWindowActivate(w_id);
}
return true;
}
/************************************************************************/
/*函数:NewAsmMdl    新建组件模型                                       */
/************************************************************************/
bool CNewMdlDlg::NewAsmMdl(CString csName)
{
ProError status;
ProLine buff;
ProMdl  model;
int     w_id;

ProStringToWstring(buff,csName.GetBuffer());
status = ProSolidCreate(buff,PRO_ASSEMBLY,(ProSolid *)&model);
if (status!=PRO_TK_NO_ERROR)
{
  AfxMessageBox("文件已存在或文件名不合法!");
  return false;
}
if (status==PRO_TK_NO_ERROR) {
  ProMdlDisplay(model);
  ProMdlWindowGet(model,&w_id);
  ProWindowActivate(w_id);
}
}
/************************************************************************/
/*函数:NewAsmMdl    新建工程图模型                                     */
/************************************************************************/
bool CNewMdlDlg::NewDrawingMdl(CString csName)
{
ProMdl solid_mdl;
ProMdldata  data;
ProModel    model;
ProName     dwg_template;
ProName     name;
ProDrawing  drawing;
ProError    status;
ProDwgcreateOptions option=PRODWGCREATE_DISPLAY_DRAWING|PRODWGCRTERR_TEMPLATE_USED ;
ProDwgcreateErrs  errors;
char strtmp[PRO_PATH_SIZE];
status=ProMdlCurrentGet(&solid_mdl);
if (status!=PRO_TK_NO_ERROR) {
  AfxMessageBox("当前没有三维模型,不能生成二维模型!");
  return false;
}
status=ProMdlDataGet(solid_mdl,&data);
ProWstringToString(strtmp,data.name);
ProStringToWstring(model.name,strtmp);
ProWstringToString(strtmp,data.type);
ProStringToWstring(model.type,strtmp);
//设置绘图模版名
ProStringToWstring(dwg_template,"c_drawing");
ProStringToWstring(name,csName.GetBuffer());
ProDrawingFromTmpltCreate(name,dwg_template,&model,option,&drawing,&errors);
return true;
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
沙发
发表于 2008-10-27 17:02:55 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
发表于 2008-11-25 22:52:27 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
地板
发表于 2008-11-25 22:55:51 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5
发表于 2008-11-27 20:56:12 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-11-24 06:41 , Processed in 0.014772 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表