找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 770|回复: 2

[求助]:怎么得到新建DWG文档的数据库指针????

[复制链接]
发表于 2005-10-25 20:57:48 | 显示全部楼层 |阅读模式

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

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

×
怎么得到新建DWG文档的数据库指针????请高手大家帮帮忙!!
我用的是ARX2002,VC6.0
#include "StdAfx.h"
#include "StdArx.h"
#include "acdocman.h"
#include "dbsymtb.h "
#include "dbents.h "
//-----------------------------------------------------------------------------
// This is command 'NEWDOC, by  [2005-5-17], ,
void ACADnewdoc()
{
#ifdef OARXWIZDEBUG
        acutPrintf ("\nOARXWIZDEBUG - ACADnewdoc() called.");
#endif // OARXWIZDEBUG

        // TODO: Implement the command
        static char pData[] ="acad.dwt";
        acDocManager->executeInApplicationContext(CreateDoc, (void *)pData);
        AcApDocument* pDoc = acDocManager->curDocument();
        AcDbDatabase *pDb=new AcDbDatabase(false);
        pDb=pDoc->database();

        AcDbBlockTable *pBtbl;
    pDb->getSymbolTable(pBtbl, AcDb::kForRead);

    AcDbBlockTableRecord *pBtblRcd;
    pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd,
        AcDb::kForWrite);
    pBtbl->close();
        acedAlert("ÎÒÊÇÌì²Å!");
        AcDbLine *pline = new AcDbLine(AcGePoint3d(1,1,0),AcGePoint3d(100,100,0));
    AcDbCircle *pCir1 = new AcDbCircle(AcGePoint3d(1,1,1),
                                       AcGeVector3d(0,0,1),
                                       1.0),
               *pCir2 = new AcDbCircle(AcGePoint3d(4,4,4),
                                       AcGeVector3d(0,0,1),
                                       2.0);
    pBtblRcd->appendAcDbEntity(pCir1);
    pCir1->close();
       
        pBtblRcd->appendAcDbEntity(pline);
        pline->close();
   
    pBtblRcd->appendAcDbEntity(pCir2);
    pCir2->close();
    pBtblRcd->close();

    // AcDbDatabase::saveAs() does not automatically
    // append a DWG file extension, so it
    // must be specified.
    //
    pDb->saveAs("test1.dwg");
    delete pDb;

}

void CreateDoc( void *pData)
{
        AcApDocument* pDoc = acDocManager->curDocument();
        AcDbDatabase *pdb=new AcDbDatabase(false);
        if(acDocManager->isApplicationContext())
        {
                acDocManager->appContextNewDocument((const char *)pData);
        }
        else
                acutPrintf("\nERROR To Create Doc!\n");

}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-10-26 00:22:33 | 显示全部楼层
你在
acDocManager->executeInApplicationContext(CreateDoc, (void *)pData);
AcApDocument* pDoc = acDocManager->curDocument();
AcDbDatabase *pDb=new AcDbDatabase(false);
pDb=pDoc->database();
中写到
pDb=pDoc->database();
就是结果

要注意的地方
AcDbDatabase *pDb=new AcDbDatabase(false);[/COLOR] pDb=pDoc->database();[/COLOR]

pDb->saveAs("test1.dwg");
delete pDb;[/COLOR]

AcApDocument* pDoc = acDocManager->curDocument();
AcDbDatabase *pdb=new AcDbDatabase(false);[/COLOR]

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

使用道具 举报

 楼主| 发表于 2005-10-26 20:34:37 | 显示全部楼层

怎么改呢?

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 09:16 , Processed in 0.409947 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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