- UID
- 764067
- 积分
- 120
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2016-9-29
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我在 AcApDocManagerReactor 反应器中添加了 documentLockModeChanged 方法,本意是在打印前做一些判断。
整个过程在objectARX2010上都可以顺利运行,不过现在换了objectARX2016版本,运行到 acedSSGet 函数的时候就出问题了,AutoCAD中会提示:文档正在执行命令,如下图:
我把 acedSSGet 函数放到 acrxEntryPoint.cpp 的命令里,在cad中输入命令,这个函数可以正常运行。代码如下:
 - // ACED_ARXCOMMAND_ENTRY_AUTO(CClient_2016App, LiYuClient_2016, _test, test, ACRX_CMD_MODAL,NULL)
- static void LiYuClient_2016_test () {
- ads_point poiOne = {132505.0, 148743.0, 0.0};
- ads_point poiTwo = {132569.426, 148743.0, 0.0};
- ads_point poiThr = {132569.426, 149007.0, 0.0};
- ads_point poiFou = {132505.0, 149007.0, 0.0};
- ads_name ssname;
- struct resbuf *pointlist;
- pointlist=acutBuildList(RTPOINT,poiOne, RTPOINT,poiTwo, RTPOINT,poiThr, RTPOINT,poiFou,0);
- acedSSGet(_T("WP"),pointlist,NULL,NULL,ssname);
- long lngCountInArea = 0;
- acedSSLength(ssname,&lngCountInArea);
- acedSSFree(ssname);
- acutPrintf(_T("检测到区域内有:%d 个实体。\n"),lngCountInArea);
- }
请问这个是怎么回事?该如何解决?谢谢。
下面是我 documentLockModeChanged 的大体代码:
 - void DocumentReactor::documentLockModeChanged(AcApDocument * param2, AcAp::DocLockMode myPreviousMode, AcAp::DocLockMode myCurrentMode, AcAp::DocLockMode currentMode, const ACHAR * pGlobalCmdName)
- {
- Acad::ErrorStatus es;
- if (wcscmp(pGlobalCmdName,_T("PLOT")) == 0 || wcscmp(pGlobalCmdName,_T("_PLOT")) == 0)
- {
- ads_point poiOne = {132505.0, 148743.0, 0.0};
- ads_point poiTwo = {132569.426, 148743.0, 0.0};
- ads_point poiThr = {132569.426, 149007.0, 0.0};
- ads_point poiFou = {132505.0, 149007.0, 0.0};
- ads_name ssname;
- struct resbuf *pointlist;
- pointlist=acutBuildList(RTPOINT,poiOne, RTPOINT,poiTwo, RTPOINT,poiThr, RTPOINT,poiFou,0);
- acedSSGet(_T("WP"),pointlist,NULL,NULL,ssname);
- long lngCountInArea = 0;
- acedSSLength(ssname,&lngCountInArea);
- acedSSFree(ssname);
- acutPrintf(_T("检测到区域内有:%d 个实体。\n"),lngCountInArea);
- }
- }
是不是objectarx2016的 documentLockModeChanged 中不允许使用acedSSGet函数了?那我该如何实现在打印前判断一个区域内的实体?
谢谢!
|
|