明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7289|回复: 4

[资源] OpenDWG和其他CAD的开发

[复制链接]
发表于 2010-8-22 16:33 | 显示全部楼层 |阅读模式

关于离线CAD的完成,在这里介绍一个 OpenDWG,其开发库读者可以到这里下载:
http://www.opendesign.com/download/
OpenDWG 是一个国际联盟组织,主要由一些从事 CAD 软件研发的公司和个人组成,致力于 DWG 文件格式研究与开发。为了促使 DWG
图形格式成为公开的 CAD 标准,该组织在多年研究基础上,提供了一套直接访问 DWG文件的函数库(简称 ODT),软件开发人员可以借以开发应用程序,使得系统能够独立于 AutoCAD 平台之外访问 DWG文件。

另外除了OpenDWG外,市面上还有很多软件,也可以借助 objectarx来开发,譬如下面是我要举例的BrisCAD,它也提供了一套SDK,
由于它高度兼容AutoCAD,所以你的arx工程只是做很少的改动或者不需要改动,就能在Briscad下运行。
譬如:我用visual studio 2008 新建一个 arx工程,在工程的属性栏里面修改:
C++的include 目录为: .. \brx\inc;
Link的Library 目录为: ..\brx\lib;
然后你就可以利用 objectarx的向导条创建一个命令,例如test
在test里面添加如下代码:

static void TestForBric_Test(void)
{
 // Add your code for command TestForBric._Test here
 acutPrintf(_T("\nHahah"));
 ads_point p1,p2;
 int ret = acedGetPoint(NULL,_T("\nPlease enter a point:"),p1);
 if (ret != RTNORM)
 {
  return;
 }
 ret = acedGetPoint(p1,_T("\nEnter another point:"),p2);
 if (ret != RTNORM)
 {
  return;
 }

 AcGePoint3d pt1 = asPnt3d(p1);
 AcGePoint3d pt2 = asPnt3d(p2);

 AcDbLine *pLine  = new AcDbLine (pt1,pt2);
 Acad::ErrorStatus es;
 es = CreateEntity(pLine);
 if (es!= Acad::eOk)
 {
  delete pLine;
  pLine = NULL;
  return;
 }
}

和一些需要定义的函数:

//创建实体
Acad::ErrorStatus CreateEntity(AcDbEntity * pEnt,Adesk::UInt16 color)
{
if (pEnt == NULL)
{
  return Acad::eNullEntityPointer;
}
Acad::ErrorStatus es;
AcDbDatabase *pDb = acdbHostApplicationServices()->workingDatabase(); 
AcDbBlockTableRecord *pRec = NULL;
es = acdbOpenAcDbObject((AcDbObject *&)pRec,pDb->currentSpaceId(),AcDb::kForWrite);
if(es!=Acad::eOk)
  return es;
es = pRec->appendAcDbEntity(pEnt); 
if(es!=Acad::eOk)
  return es;
pEnt->setColorIndex(color);
pRec->close();
pEnt->close();
return es;
}

编译通过后,你就可以在Briscad下运行了。
下面是截图。


另外听说中望好像也支持用objectarx开发,但没用过。

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 金钱 +10 贡献 +10 激情 +10 收起 理由
雪山飞狐_lzh + 1 + 10 + 10 + 10 【好评】好文章

查看全部评分

发表于 2010-8-22 17:11 | 显示全部楼层

虽然和本版的内容有点冲突,但介绍的确实是大家需要知道的,呵呵

opendesign在上面的网址应该有.Net的版本,有兴趣的朋友可以去下载

发表于 2010-8-23 09:39 | 显示全部楼层

Sorry, the file you requested can not be found.


不知道你们下载了吗?可见老外藏得很严严实实的。如没下载的只能下载老版本了。呵呵。

 

里面肯定有.net.vb,vc之类的。

发表于 2011-11-21 09:34 | 显示全部楼层
为什么什么都看不见啊
发表于 2012-10-16 00:02 | 显示全部楼层
请问.net版本在哪下载啊,麻烦版主提供个地址
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-24 15:04 , Processed in 0.352620 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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