几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(C++)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2005-10-23, 10:34 PM   #1
huangyhg
超级版主
 
huangyhg的头像
 
注册日期: 04-03
帖子: 18592
精华: 36
现金: 249466 标准币
资产: 1080358888 标准币
huangyhg 向着好的方向发展
默认 加入的实体不在新建的文件中!而是在旧文件中

白 菜 22:23:57
你去过明经通道没!有一个bai_cai101的贴子,关于ARX新建文件,置为当前并得到新文件的数据库指针的的问题!你会吗?
白 菜 22:24:04
可否指点一二???
白 菜 22:26:02
我用的是ARX2002,VC6.0
白 菜 22:26:05
#include "StdAfx.h"
#include "StdArx.h"
#include "dbsymtb.h"
#include "dbents.h"
//-----------------------------------------------------------------------------
// This is command 'NEWDOC, by [2005-10-16], ,
void ACADkaifanewdoc()
{
#ifdef OARXWIZDEBUG
acutPrintf ("\nOARXWIZDEBUG - ACADkaifanewdoc() called.");
#endif // OARXWIZDEBUG

// TODO: Implement the command
static char pData[] ="acad.dwt";
acDocManager->executeInApplicationContext(CreateDoc, (void *)pData);

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

acDocManager->lockDocument(pDoc);


AcDbBlockTable *pBtbl;
Acad::ErrorStatus es = pdb->getSymbolTable(pBtbl, AcDb::kForRead);
acutPrintf("es=%d\n",es);
if (es != Acad::eOk)
{
return;
}

AcDbBlockTableRecord *pBtblRcd;
es = pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd,
AcDb::kForWrite);
acutPrintf("es=%d\n",es);
if (es != Acad::eOk)
{
pBtbl->close();
return;
}
pBtbl->close();

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(pCir2);
pCir2->close();

pBtblRcd->close();

acDocManager->unlockDocument(pDoc);

}

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

}
我这样修改了一下!现在运行不错!但问题还是那样!加入的实体不在新建的文件中!而是在旧文件中!!!!
huangyhg离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
旧 2005-10-23, 10:35 PM   #2
huangyhg
超级版主
 
huangyhg的头像
 
注册日期: 04-03
帖子: 18592
精华: 36
现金: 249466 标准币
资产: 1080358888 标准币
huangyhg 向着好的方向发展
默认 回复: 加入的实体不在新建的文件中!而是在旧文件中

白 菜 22:35:26
其实只有我刚才在qq上发的那点程序,你把它拷到vc6.0里就行了
huangyhg离线中   回复时引用此帖
旧 2005-10-23, 10:41 PM   #3
huangyhg
超级版主
 
huangyhg的头像
 
注册日期: 04-03
帖子: 18592
精华: 36
现金: 249466 标准币
资产: 1080358888 标准币
huangyhg 向着好的方向发展
默认 回复: 加入的实体不在新建的文件中!而是在旧文件中

白 菜 22:39:33
我的邮箱:bai_cai_101@163.com
huangyhg离线中   回复时引用此帖
旧 2005-10-23, 10:57 PM   #4
hongxian
游客
 
帖子: n/a
精华:
现金: 标准币
资产: 0 标准币
默认 回复: 加入的实体不在新建的文件中!而是在旧文件中

Thank you for contacting Suppert Center.

I have taken a look at your code and get that you forgot to set the document to current document by calling call acDocManager->setCurDocument(pDoc, AcAp::kWrite) in which you should input the document pointer which is just created.

You can refer to the development documentation for the detailed information.

I hope it helps you. if you have the fure question about this issue, please feel free to let me know.
  回复时引用此帖
旧 2005-10-26, 11:06 PM   #5
hongxian
游客
 
帖子: n/a
精华:
现金: 标准币
资产: 0 标准币
默认 回复: 加入的实体不在新建的文件中!而是在旧文件中

在你创建完一个新的数据库的时候要调用acDocManager->setCurDocument(pDoc, AcAp::kWrite) 函数将创建的数据库设置为当前数据库。
  回复时引用此帖
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 10:46 PM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多