明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1222|回复: 3

dwg的合并问题

[复制链接]
发表于 2019-11-18 11:00:34 | 显示全部楼层 |阅读模式
2明经币
如何使用objectarx来调用AutoCAD中的插入--块命令,也就是说objectarx有没有一个函数能够调用这个命令的?

在objectarx编程中,我输入两个dwg的文件地址,然后我想调用autoca的自带的命令将这两个dwg合并,我能否这么做来实现操作?若不行,能否提供一个好的解决方案(我想通过编程的方式实现,而并不是复制粘贴)。

 楼主| 发表于 2019-11-18 11:47:50 | 显示全部楼层
请帮助我
回复

使用道具 举报

 楼主| 发表于 2019-11-19 20:12:19 | 显示全部楼层
我自己网上找了一些资料 发现acedCommand可以使用来干这个
我感觉只要指定两个地址就行了 像这样尝试
void fun() {

      TCHAR fname_a[128] = L"C:\\Users\\Sun\\Desktop\\A.dwg";
      TCHAR fname_b[128] = L"C:\\Users\\Sun\\Desktop\\B.dwg";

      AcDbDatabase *pDb = new AcDbDatabase(Adesk::kFalse);
       if (Acad::eOk != pDb->readDwgFile(fname_a)) return;
      acedCommand( RTSTR, TEXT("INSERT"), RTSTR, fname_b, RT3DPOINT, TEXT("1000,1000,0"), RTSHORT, TEXT("1"), RTSHORT, TEXT("1"), RTREAL, TEXT("0.0"), RTNONE );

}
但很显然 他并没有工作
谁能告诉我 怎样将这个命令传递给autocad那个dwg,让它进行修改呢
回复

使用道具 举报

发表于 2019-11-26 17:26:34 | 显示全部楼层
把最后一行改为:
AcDbDatabase* pCurDb;
pCurDb = acdbHostApplicationServices()->workingDatabase();
  if(pCurDb->insert(AcGeMatrix3d::kIdentity,pDb) != Acad::eOk)
        {
                delete pCurDb;
        }       
pDb = new AcDbDatabase(Adesk::kFalse);
if (Acad::eOk != pDb->readDwgFile(fname_b)) return;
if(pCurDb->insert(AcGeMatrix3d::kIdentity,pDb) != Acad::eOk)
        {
                delete pCurDb;
        }       
delete pDb;  
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 05:34 , Processed in 0.160897 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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