找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 981|回复: 6

[求助]:如何修改实体属性

[复制链接]
发表于 2006-4-14 08:53:25 | 显示全部楼层 |阅读模式

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

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

×
我想修改实体圆的半径

AcDbEntity* pSubEnt;
AcDbCircle *pcircle;
if(pSubEnt->isA()== AcDbCircle::desc())
{                                               
  pcircle = (AcDbCircle *)pSubEnt;
  center = pcircle -> center();
  pcircle -> setRadius(100);
/////////////执行到这Cad提示我notopenobjectforwrite[/COLOR]
  pSubEnt->close();
  pcircle->close();
}
应该怎么解决?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-14 13:45:15 | 显示全部楼层
你的 pCircle 要用 acdbOpenAcDbObject 打开吧,你前面好象也没有打开的吧
        ads_name en;
        ads_point pt;
        if(acedEntSel("\nSpecify a circle: ",en,pt)!=RTNORM)
                return;
        AcDbObjectId eId;
        if(acdbGetObjectId(eId,en)!=Acad::eOk)
                return;
        AcDbObject *pEnt;
        if(acdbOpenAcDbObject(pEnt,eId,AcDb::kForWrite)!=Acad::eOk)
                return;
        if(pEnt->isKindOf(AcDbCircle::desc())){
                AcDbCircle *pCir=AcDbCircle::cast(pEnt);
                if(pCir!=NULL){
                        pCir->setRadius(10);
                        pCir->close();
                }
        }
        else{
                acutPrintf("\n not a circle.");
                pEnt->close();
        }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-14 14:52:50 | 显示全部楼层
添加1行就可以了:
        AcDbEntity *pSubEnt = NULL;
                if(pSubEnt->isA()== AcDbCircle::desc())
                {
                        AcDbCircle *pcircle = NULL;
                        pcircle = AcDbCircle::cast(pSubEnt);
                        if (pcircle !=NULL)
                        {
                                center = pcircle -> center();
                                //添加1行代碼
                                pcircle->upgradeOpen();
                                pcircle ->setRadius(100);
                        }
                        pSubEnt->close();
                }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-14 18:59:52 | 显示全部楼层
没有实体怎么能写呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-15 08:29:41 | 显示全部楼层
谢谢三楼的朋友~~还有个问题为什么你的程序执行时,图形没有变化,只有移动了才会改变属性~/?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-15 11:20:09 | 显示全部楼层
好像是要进行刷新,刷新这个函数我忘记了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-31 09:39:31 | 显示全部楼层
int

acedRedraw(

const ads_name ent,

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 02:16 , Processed in 0.480194 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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