找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 535|回复: 0

[求助] [已解决]反应器为什么无法进行写操作呢

[复制链接]

已领礼包: 28个

财富等级: 恭喜发财

发表于 2018-9-13 03:23:07 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 1121443108qaz 于 2018-9-19 23:40 编辑

昨天的帖子我没法直接让cad在加载arx文件时,自动对每一个打开或新建的dwg加反应器,后来直接用命令的方法发现反应器是生效的,可是仅限读的操作。每次我手动输入test命令加反应器,之后画线结果显示upgrade操作是eok,setcolorindex也是eok,可是颜色就是没变,我试了re,保存后再进,用lisp看那个物体的颜色,总之都没变,是默认的颜色。代码如下,哪里出了问题。ps:最后发现画多段线,圆,弧,样条曲线都会变红,是正确的效果,只在对直线时失效,不知为何。
  1. #pragma once
  2. #include "C:\objectarx\inc\dbmain.h"
  3. class CDbReatorUtil :
  4.         public AcDbDatabaseReactor
  5. {
  6. public:
  7.         CDbReatorUtil();
  8.         virtual ~CDbReatorUtil();
  9.         virtual void objectAppended(const AcDbDatabase* dwg, const AcDbObject* dbObj);
  10.         //virtual void objectErased(const AcDbDatabase* dwg, const AcDbObject* dbObj, Adesk::Boolean bErased);
  11. };

  1. CDbReatorUtil::CDbReatorUtil()
  2. {
  3. }
  4. CDbReatorUtil::~CDbReatorUtil()
  5. {
  6. }
  7. void CDbReatorUtil::objectAppended(const AcDbDatabase* dwg, const AcDbObject* dbObj)
  8. {
  9.         ErrorStatus es;
  10.         if (dbObj->isKindOf(AcDbLine::desc()))
  11.         {
  12.                 AcDbLine* pLine = AcDbLine::cast(dbObj);
  13.                 es=pLine->upgradeOpen();
  14.                 acutPrintf(L"\n es in upgrade is %s", acadErrorStatusText(es));
  15.                 es=pLine->setColorIndex(1);
  16.                 acutPrintf(L"\n es in setcolorindex is %s", acadErrorStatusText(es));
  17.                 acutPrintf(L"\n 这是一条直线");
  18.         }
  19. }


        
  1. CDbReatorUtil *pDbreator = NULL;
  2. static void xxxMyGrouptest()
  3.         {
  4.                 if (pDbreator==NULL)
  5.                 {
  6.                         pDbreator = new CDbReatorUtil();
  7.                         Acad::ErrorStatus es=acdbHostApplicationServices()->workingDatabase()->addReactor(pDbreator);
  8.                         if (es!=Acad::eOk)
  9.                         {
  10.                                 acutPrintf(L"\nes is %s", acadErrorStatusText(es));
  11.                         }
  12.                 }
  13.                 else
  14.                 {
  15.                         acutPrintf(L"\npDbreator不为NULL");
  16.                 }
  17.         }


捕获.PNG
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-22 10:33 , Processed in 0.180659 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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