highflybir 发表于 2010-8-22 16:33:00

OpenDWG和其他CAD的开发

<p><font face="Verdana">关于离线CAD的完成,在这里介绍一个 OpenDWG,其开发库读者可以到这里下载:<br/>http://www.opendesign.com/download/<br/>OpenDWG 是一个国际联盟组织,主要由一些从事 CAD 软件研发的公司和个人组成,致力于 DWG 文件格式研究与开发。为了促使 DWG<br/>图形格式成为公开的 CAD 标准,该组织在多年研究基础上,提供了一套直接访问 DWG文件的函数库(简称 ODT),软件开发人员可以借以开发应用程序,使得系统能够独立于 AutoCAD 平台之外访问 DWG文件。</font></p>
<p><font face="Verdana">另外除了OpenDWG外,市面上还有很多软件,也可以借助 objectarx来开发,譬如下面是我要举例的BrisCAD,它也提供了一套SDK,<br/>由于它高度兼容AutoCAD,所以你的arx工程只是做很少的改动或者不需要改动,就能在Briscad下运行。<br/>譬如:我用visual studio 2008 新建一个 arx工程,在工程的属性栏里面修改:<br/>C++的include 目录为: .. \brx\inc;<br/>Link的Library 目录为: ..\brx\lib;<br/>然后你就可以利用 objectarx的向导条创建一个命令,例如test<br/>在test里面添加如下代码:<br/></font></p>
<div style="WIDTH: 100%; HEIGHT: 100%; OVERFLOW: auto; CURSOR: text" id="codeDiv" class="codeDiv"><pre class="code">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;
}
}</pre></div>
<p></p>
<p><font face="Verdana">和一些需要定义的函数:</font><div style="width: 100%; height: 100%; overflow: auto; cursor: text" id="codeDiv" class="codeDiv"><pre class="code">//创建实体
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;
}</pre></div>

</p>
<p><font face="Verdana">编译通过后,你就可以在Briscad下运行了。<br/>下面是截图。<br/></font></p>
<p><font face="Verdana"><br/>另外听说中望好像也支持用objectarx开发,但没用过。</font></p>

雪山飞狐_lzh 发表于 2010-8-22 17:11:00

<p>虽然和本版的内容有点冲突,但介绍的确实是大家需要知道的,呵呵</p>
<p>opendesign在上面的网址应该有.Net的版本,有兴趣的朋友可以去下载</p>

highflybird 发表于 2010-8-23 09:39:00

<p class="error">Sorry, the file you requested can not be found.</p>
<p><br/>不知道你们下载了吗?可见老外藏得很严严实实的。如没下载的只能下载老版本了。呵呵。</p>
<p>&nbsp;</p>
<p>里面肯定有.net.vb,vc之类的。</p>

cfu18 发表于 2011-11-21 09:34:54

为什么什么都看不见啊

onlyxxwq 发表于 2012-10-16 00:02:01

请问.net版本在哪下载啊,麻烦版主提供个地址
页: [1]
查看完整版本: OpenDWG和其他CAD的开发