• 利用AnyCAD在MFC中对话框中增加三维显示


    利用AnyCAD在MFC中对话框中增加三维显示

    主要包含以下几步:

    1.第一步:配置AnyCAD

      配置方法:AnyCAD配置(MFC版)

    2.第二步:添加控件

      添加一个Picture Control控件,ID为IDC_STATIC_3D,并且把Notify属性设置为True

    3.第三步:添加关联变量

      使用向导将IDC_STATIC_3D添加一个CStatic类型的关联变量m_window3D

    4.第四步:修改关联变量类型

      将.h文件中关联变量m_window3D的类型修改为AuWindow3d

    5.第五步:显示

      如下面为生成一个球的按键响应程序

    auto shape = GlobalInstance::brepTools.MakeSphere(Vector3::ZERO, 100);
    auto node = m_Window3D.ShowGeometry(shape, ElementId(1));
    m_Window3D.GetView().RequestDraw(1);
    

    6.补充:读取IGES文件并显示

      在相应按键响应程序中添加如下代码

    CFileDialog igesDlg(TRUE);
    igesDlg.m_ofn.lpstrTitle = _T("读取IGES文件");
    igesDlg.m_ofn.lpstrFilter = _T("IGES(*.iges*.iges;*.igsAll Files*.*)");
    if (!igesDlg.DoModal())
    {
    	AfxMessageBox(_T("模型导入失败!"));
    	return;
    }
    #ifdef UNICODE
        USES_CONVERSION;
        string path = T2A(igesDlg.GetPathName());
    #else
        string path = igesDlg.GetPathName().GetBuffer(0);
    #endif
    
    TopoDataExchangeIges iges;
    TopoShape igesShape = iges.Read(path);
    auto node = m_Window3D.ShowGeometry(igesShape, ElementId(2));
  • 相关阅读:
    Activator.CreateInstance 反射实例化对象
    MVC Form提交
    Redis 下载
    List<T> 序列化与反序列化
    快速反射DataTable
    数据库特性
    javascript判断文件大小
    MD5
    HttpHelper
    cacheHelper
  • 原文地址:https://www.cnblogs.com/silentteen/p/9069850.html
Copyright © 2020-2023  润新知