天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 58|回复: 0

ObjectARX打开文件的几种方式

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
一 ObjectARX打开文件的几种方式
目前,发现在ARX打开文件的三种方式:

Acad::ErrorStatus acedSyncFileOpen(const ACHAR * pszFileToOpen, const wchar_t* wszPassword = NULL);
这个函数要求CAD为单文档模式、不要求命令处于应用程序上下文。SDI为CAD中指示是否为单文档模式的系统变量。
        int iSys;
        resbuf rb;
        acedGetVar(_T("SDI"), &rb);
        if (rb.restype == RTSHORT)
                iSys = rb.resval.rint;

        if (iSys)
        {
                acedSyncFileOpen(psz);
        }

virtual Acad::ErrorStatus appContextOpenDocument(const ACHAR * pszDrawingName) = 0;
该函数必须在程序上下文、多文档模式下打开文件。
if (acDocManager->isApplicationContext()){
        acDocManager->appContextOpenDocument((const char *)pData);
}

acDocManager->openDocument();
使用“选择文件”对话框选择所要打开的文件,单文档或者多文档模式均可,不要求命令处于应用程序上下文中。
二 R18平台打开文件的特殊处理
AutoCAD 2010中的bug比较多,一不小心就踩坑。在R18平台打开文件时要特别注意一个问题:如果在刚刚打开CAD后,会生成一个默认的drawing1文档,此时如果在程序中用appContextOpenDocument接口打开别的文档,这个默认的文档会被替换成新的文档;但是(重点来了),原来的drawing1从CAD的菜单栏的窗口中还是可以看到,如果此时你从下拉菜单中点击它,再点击保存,程序可能会崩溃。
解决办法:在程序将要打开文档之前,在当前文档数据库中插入一个实体再删除,这样,默认的drawing1会保留下来,再打开别的文档也不会被替换,此时再点击保存也不会崩溃。
[code] :https://blog.csdn.net/mary288267/article/details/123281550[/code]

 

 

 

 

ObjectARX打开文件的几种方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 11:36 , Processed in 0.162199 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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