找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 695|回复: 9

[ARX程序]:菜鸟请教一个弱弱的问题

[复制链接]
发表于 2003-4-23 23:35:09 | 显示全部楼层 |阅读模式

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

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

×
下面这段代码执行后为什么没有在模型空间显现出图形

void createDwg()
{
AcDbDatabase*pDb=new AcDbDatabase();
AcDbBlockTable*pBtbl;
pDb->getSymbolTable(pBtbl,AcDb::kForRead);
AcDbBlockTableRecord*pBtblRcd;
pBtbl->getAt(ACDB_MODEL_SPACE,pBtblRcd,AcDb::kForWrite);
pBtbl->close();
AcDbCircle*pCir1=new AcDbCircle(AcGePoint3d(200,200,0),
                           AcGeVector3d(0,0,1),50.0);
AcDbCircle*pCir2=new AcDbCircle(AcGePoint3d(400,200,0),
                           AcGeVector3d(0,0,1),50.0);
AcDbLine*pLine=new AcDbLine(AcGePoint3d(300,230,0),
                           AcGePoint3d(300,50,0));
pLine->setColorIndex(1);
AcDbPolyline*pPolyline=new AcDbPolyline(4);
AcGePoint2d pt;
pt.x=220;
pt.y=60;
pPolyline->addVertexAt(0,pt,0.0,-1.0,-1.0);
pt.x=250;
pt.y=30;
pPolyline->addVertexAt(1,pt,0.0,-1.0,-1.0);
pt.x=350;
pt.y=30;
pPolyline->addVertexAt(2,pt,0.0,-1.0,-1.0);
pt.x=380;
pt.y=60;
pPolyline->addVertexAt(3,pt,0.0,-1.0,-1.0);
pPolyline->setThickness(100);
pPolyline->setColorIndex(4);

pBtblRcd->appendAcDbEntity(pCir1);
pCir1->close();
pBtblRcd->appendAcDbEntity(pCir2);
    pCir2->close();
pBtblRcd->appendAcDbEntity(pLine);
pLine->close();
pBtblRcd->appendAcDbEntity(pPolyline);
pPolyline->close();//以上分别创建了两个园,一条线,一条多义线
           //下面想把它们存盘

    pDb->saveAs("face.dwg“);
delete pDb;
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-4-24 10:54:43 | 显示全部楼层
你少了这样的语句:
pBtblRcd->close();

pDb->saveAs("face.dwg“);
delete pDb;

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2003-4-24 15:49:40 | 显示全部楼层
我已经加了pBtblRcd->close();存盘没有问题但是就是在屏幕上看不见图形
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-27 13:16:28 | 显示全部楼层
void createDwg()
{
AcDbDatabase*pDb=new AcDbDatabase();
AcDbBlockTable*pBtbl;
pDb->getSymbolTable(pBtbl,AcDb::kForRead);
AcDbBlockTableRecord*pBtblRcd;
pBtbl->getAt(ACDB_MODEL_SPACE,pBtblRcd,AcDb::kForWrite);
pBtbl->close();
AcDbCircle*pCir1=new AcDbCircle(AcGePoint3d(200,200,0),
AcGeVector3d(0,0,1),50.0);
AcDbCircle*pCir2=new AcDbCircle(AcGePoint3d(400,200,0),
AcGeVector3d(0,0,1),50.0);
AcDbLine*pLine=new AcDbLine(AcGePoint3d(300,230,0),
AcGePoint3d(300,50,0));
pLine->setColorIndex(1);
AcDbPolyline*pPolyline=new AcDbPolyline(4);
AcGePoint2d pt;
pt.x=220;
pt.y=60;
pPolyline->addVertexAt(0,pt,0.0,-1.0,-1.0);
pt.x=250;
pt.y=30;
pPolyline->addVertexAt(1,pt,0.0,-1.0,-1.0);
pt.x=350;
pt.y=30;
pPolyline->addVertexAt(2,pt,0.0,-1.0,-1.0);
pt.x=380;
pt.y=60;
pPolyline->addVertexAt(3,pt,0.0,-1.0,-1.0);
pPolyline->setThickness(100);
pPolyline->setColorIndex(4);

pBtblRcd->appendAcDbEntity(pCir1);
pCir1->close();
pBtblRcd->appendAcDbEntity(pCir2);
pCir2->close();
pBtblRcd->appendAcDbEntity(pLine);
pLine->close();
pBtblRcd->appendAcDbEntity(pPolyline);
pPolyline->close();//以上分别创建了两个园,一条线,一条多义线
//下面想把它们存盘
pBtblRcd->close();

pDb->saveAs("face.dwg");
delete pDb;
}

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

使用道具 举报

已领礼包: 192个

财富等级: 日进斗金

发表于 2003-4-27 13:50:25 | 显示全部楼层
打开这个face.dwg就看到了,你创建的实体不在当前的数据库中
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-4-30 11:09:42 | 显示全部楼层
要使创建的实体能够显示出来,必须首先得到当前数据库的指针,通过这个指针得到块表指针,再将实体一块表记录AcDbTableRecord的形式加入块表。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-10-13 01:59:05 | 显示全部楼层
想要立马看到就不要AcDbDatabase*pDb=new AcDbDatabase();
指针指向当前数据库即可,不过,最后来一个Redraw重画。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 02:48 , Processed in 0.223625 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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