乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 188|回复: 11

如何自动新建一个DWG并置为当前!

[复制链接]

11

主题

34

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2005-5-12 15:12:00 | 显示全部楼层 |阅读模式
我想让程序自动新建一个DWG文件并置为当前,然后我好以当前的acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable, AcDb::kForRead);来用程序画图!在这个过程中不需要人机交互!!请问需要用哪些ARX函数啊?请各路神仙帮助!!!我找到了一个acapdocument类和acapdocmanager类,里面的几个函数都需要人机交互!!!有谁能给我一个例子吗????多谢了!!我的邮箱:bai_cai101@163.com
回复

使用道具 举报

10

主题

131

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
171
发表于 2019-11-25 23:25:00 | 显示全部楼层
问题解决了没有,已经有人给出了答案。
回复

使用道具 举报

11

主题

34

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2018-8-25 18:54:00 | 显示全部楼层
放弃了十三年后的今天,又碰到了这个问题。。。
回复

使用道具 举报

11

主题

34

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2005-5-17 22:09:00 | 显示全部楼层
哪位高手!!高抬贵手,帮帮我了!!!
回复

使用道具 举报

124

主题

837

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1333
发表于 2005-5-18 07:52:00 | 显示全部楼层
试试这个:AcApDocManager::newDocument (),
我没有试,具体查帮助,或sdk中的例子.
回复

使用道具 举报

11

主题

34

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2005-5-18 22:07:00 | 显示全部楼层
谢谢大侠的注意,我查看过了的,那个newdocument函数会出再对话框的!我在网上找到了张帆老师发表的贴子!用于新建一个文件并置为当前,并且不需要出现对话框交互,但是现在又出了一个问题,就是我不知道怎么样得到新建的当前的文件数据为库据据指针!我用        AcDbDatabase *pdb =acdbHostApplicationServices()->workingDatabase();没有出错,但结果这个pdb是以前文件的指针!请高手指点!!我的程序如下:
回复

使用道具 举报

11

主题

34

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2005-5-18 22:09:00 | 显示全部楼层
//
// ObjectARX defined commands, created by         [2005-5-17], ,
#include "StdAfx.h"
#include "StdArx.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);
        AcDbDatabase *pdb =acdbHostApplicationServices()->workingDatabase();
        AcDbBlockTable *pBtbl;
                         pdb->getSymbolTable(pBtbl, AcDb::kForRead);
                         AcDbBlockTableRecord *pBtblRcd;
                         pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd,
                                                         AcDb::kForWrite);
                         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();
}
void CreateDoc( void *pData)
{
        AcApDocument* pDoc = acDocManager->curDocument();
        if(acDocManager->isApplicationContext())
        {
                acDocManager->appContextNewDocument((const char *)pData);
        }
        else
                acutPrintf("\nERROR To Create Doc!\n");
}
回复

使用道具 举报

11

主题

34

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2005-5-18 22:11:00 | 显示全部楼层
我用程序上传怎么传不上去啊!!一点击上传浏览按钮后发表按钮就会变成灰色,无法上传!!!!请问怎么上传文件啊???
回复

使用道具 举报

11

主题

34

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2005-5-24 08:25:00 | 显示全部楼层
哪位高手,帮下忙啊!!!!
回复

使用道具 举报

3

主题

97

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2005-5-25 17:25:00 | 显示全部楼层
...用filedia = 0把对话框关掉, 用newDocument建立新文件, 打开之后直接用AcApDocument的联系数据库功能就可以拿到和文件相应的数据库指针了. 数据库不是只有用workingDatabase才取得到的.
仔细看一下ARX Help里面关于AcApDocument的部分吧.
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 05:09 , Processed in 0.172509 second(s), 72 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表