找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 18441|回复: 3
打印 上一主题 下一主题

[求助] debug assert failed 是怎么回事?代码如下:

[复制链接]
跳转到指定楼层
1
发表于 2011-10-28 10:51:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
void BearingDlg::OnScaleDrawing()
{
   
        // TODO: Add your control notification handler code here
        //打开SW文档时API需要的选项变量
        int Options = 0;
        //打开SW文档时API需要的错误变量
        long Errors;
        //打开SW文档时API需要的警告变量
        long Warnings;
        //SW模型接口变量
        CComPtr<IModelDoc2> m_ModeDoc;
        //SW模型草图接口变量
        CComPtr<ISketch> m_Sketch;
        //SW模型扩展接口变量
        CComPtr<IModelDocExtension> swDocExt;
        //SW模型特征接口变量
        CComPtr<IFeatureManager> swFeatMgr;
        //SW模型草图线段接口
        CComPtr<ISketchSegment> swSketchSegment;
        //SW模型选择器接口
        CComPtr<ISelectionMgr> swSelectionMgr;
        //SW模型尺寸接口
        CComPtr<IDimension> swDIM;
        //文件名变量
        CComBSTR FileName;
        //BOOL型返回值变量
        VARIANT_BOOL bRetval;
        //草图线段长度变量
        double SegmentLength;
        //
        LPDISPATCH disp;
        //API执行结果变量
        HRESULT lRetVal;
        //尺寸显示变量
        CString cstrDisp;
        char strDisp[80];

        //打开文件
        //FileName=_L("E:\\BearingCAD\\DOC\\零件1.SLDPRT");
        FileName=_T("E:\\深沟球轴承建模(修改)00\\0_00FCG\\0_00FCG.SLDASM");
        m_iSldWorks->OpenDoc6(FileName,swDocASSEMBLY,Options,NULL,&Errors,&Warnings,&m_ModeDoc);
        //获得模型文档扩展接口
        m_ModeDoc->get_Extension(&swDocExt);
        //获得模型文档特征接口
        m_ModeDoc->get_FeatureManager(&swFeatMgr);
        //获得D1的尺寸
        lRetVal=m_ModeDoc->IParameter(L"D1@草图1",&swDIM);
        //容错处理
        ASSERT(lRetVal==S_OK && swDIM!=NULL);

        //获得D1更改之前的尺寸
        swDIM->get_Value(&SegmentLength);
        strcpy(strDisp,"未更改之前的尺寸为:");
        cstrDisp.Format("%f",SegmentLength);
        strcat(strDisp,cstrDisp);
        MessageBox(strDisp,"轴承CAD",MB_OK);

    //从控件m_rsmin中获取D1尺寸
    CString rs;
    GetDlgItem(IDC_EDIT4)->GetWindowText(rs);
    double rmin=strtod(rs,NULL);



        //设置D1尺寸
        lRetVal=swDIM->put_Value(rmin);

    //设置B的尺寸
  
   //获得模型文档扩展接口
        m_ModeDoc->get_Extension(&swDocExt);
        //获得模型文档特征接口
        m_ModeDoc->get_FeatureManager(&swFeatMgr);
        lRetVal=m_ModeDoc->IParameter(L"D2@草图1",&swDIM);
    lRetVal=swDIM->put_Value(20);

        //容错处理
        ASSERT(S_OK==NULL);
        //更新模型
        lRetVal=m_ModeDoc->EditRebuild3(&bRetval);
        //容错处理
        ASSERT(lRetVal==S_OK);
        swDIM=NULL;


        //获得激活的草图
        m_ModeDoc->IGetActiveSketch2(&m_Sketch);
        //如果当前没有激活的草图对象
        if (m_Sketch == NULL)
        {
                //选择草图平面
                swDocExt->SelectByID2(L"前视基准面", L"PLANE", 0.0, 0.0, 0.0, VARIANT_FALSE, 0, NULL, swSelectOptionDefault, &bRetval);///选择前视基准面
        }
        //选择草图1
        swDocExt->SelectByID2(L"草图1", L"SKETCH", 0.0, 0.0, 0.0, VARIANT_FALSE, 0, NULL, swSelectOptionDefault, &bRetval);
        //编辑草图1
        m_ModeDoc->EditSketch();
        }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2011-10-28 12:19:03 | 只看该作者
我也很想学习2次开发,只是一直找不到好的教程,楼主有木?
3
发表于 2011-10-28 20:04:02 | 只看该作者
exup 发表于 2011-10-28 12:19
我也很想学习2次开发,只是一直找不到好的教程,楼主有木?

网上下载,清华大学出版的
4
发表于 2011-10-30 11:16:45 | 只看该作者
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-20 00:58 , Processed in 0.028497 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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