找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2008|回复: 5

[求助]:应用acedCommand执行open操作?

[复制链接]
发表于 2006-1-12 17:39:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
想通过编程实现自动打开已经存在的dwg文档,代码如下:

acedCommand(RTSTR, "FILEDIA", RTSTR, "0", RTNONE);//系统变量FILEDIA设为0,执行open命令不显示对话框
acedCommand(RTSTR, "OPEN", RTSTR, "c:\a.dwg", RTNONE);//执行Open

acedCommand(RTSTR, "FILEDIA", RTSTR, "1", RTNONE);//系统变量FILEDIA设为1,执行open命令显示对话框

但AutoCAD似乎不接受OPEN后面的变量值"c:\a.dwg",而认为"c:\a.dwg"是一个系统命令,请问这个该如何解决?

另外有没有更好的方法在多文档模式下实现自动打开指定路径的文件呢?

用appContextOpenDocument也不行,求教高手!谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-1-12 17:47:34 | 显示全部楼层
AcApDocManager::sendStringToExecute Function virtual Acad::ErrorStatus

sendStringToExecute(

AcApDocument* pAcTargetDocument,

const char * pszExecute,

bool bActivate = true,

bool bWrapUpInactiveDoc = false,

bool bEchoString = true) = 0;

pAcTargetDocument Document to send input to
pszExecute String to use as input
bActivate Boolean indicating whether to activate the target document
bWrapUpInactiveDoc Boolean indicating whether to queue current active document to complete in next OnIdle() when switching active documents.
bEchoString Boolean indicating whether the sent string is echoed on the command line

This function sends a string to the command line to be executed in the provided target document.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-13 10:01:36 | 显示全部楼层
to xysyr:
按sendStringToExecute执行命令和acedCommand的结果一样,仍然是执行到open的时候停下来了
        AcApDocument *pDoc = acDocManager->curDocument();
        rc = acDocManager->sendStringToExecute(pDoc,"FILEDIA\n");
        rc = acDocManager->sendStringToExecute(pDoc,"0\n");
        rc = acDocManager->sendStringToExecute(pDoc,"open\n");
        //rc = acDocManager->sendStringToExecute(pDoc,"C:\\AutoCAD\\打印图.dwg\n");
        rc = acDocManager->sendStringToExecute(pDoc,"FILEDIA\n");
        rc = acDocManager->sendStringToExecute(pDoc,"1\n");
截张图上来可以看到,没有执行参数"C:\\AutoCAD\\打印图.dwg\n"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-13 10:03:31 | 显示全部楼层
按esc取消,可看到open命令后面似乎不接受参数,和filedia命令不同,郁闷,不知道该如何让open 命令能够直接接收指定路径的文件名
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-13 16:48:54 | 显示全部楼层
acDocManager->appContextOpenDocument("c:\\a.dwg");
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-16 12:40:06 | 显示全部楼层
调用这个函数,好像只能在非模态对话框中使用;其它的模态对
话框中或者是不使用mfc调用,总是没法调用成功,返回值是eNotApplicable,是不是acDocManager->appContextOpenDocument("c:\\a.dwg");只适用于非模态对话框?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 18:05 , Processed in 0.398603 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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