C# 中的开源 cad 绘图(dwg)库 [关闭]

Posted

技术标签:

【中文标题】C# 中的开源 cad 绘图(dwg)库 [关闭]【英文标题】:Open source cad drawing (dwg) library in C# [closed] 【发布时间】:2010-09-15 05:24:57 【问题描述】:

有人知道 C# 中的开源 DWG(autocad 绘图)库吗?

【问题讨论】:

【参考方案1】:

DWG 格式的主要障碍是二进制格式每 3 年更改一次 - 它将在 2009 年 3 月再次更改。它是加密的,并且其规范未公开。这是一个非常复杂的图书馆,有许多甚至 AutoDesk 都不知道的黑暗小巷(他们在几年前收购了它)。

不是开源的,而是Open Design Alliance ...(来自他们的网站)...

是一个非营利的会员制 软件公司联盟, 开发人员和用户致力于 推动CAD开放交流 现在和未来的数据。在 除了为 CAD 设定标准 数据格式,官方发展援助还侧重于 发展的实际问题 卓越的软件库 使 ODA 成员能够 开发应用程序能够 读写流行的 DWG 和 DGN CAD 文件格式。

成本取决于您使用这些库的目的,但开发人员的基本成本为每年 100 美元,加入费为 250 美元。与AutoDesk's RealDWG 相比,每年 2500 美元和第一年 5000 美元,那么它很划算。顺便说一下,R​​ealDWG 许可证是针对每个产品的。 ODA 许可证更合理一些,还允许您在同一个许可证上制作超过 1 个产品。你可以为源代码付费,但它要花很多钱——虽然比自己开发要少

如果您只有 1 个产品,那么 RealDWG 可能会适合您,但它仅适用于 Windows - 奖励,它有一个 .NET API ODA 仍在处理 ... ODA 的 .NET API (有 2 个)已经确立。 ODA 产品针对多种操作系统进行编译,包括 Windows(32 位)、SGI、Solaris、Windows(64 位)、Macintosh、HP、Windows CE、Linux、IBM AIX。

无论如何,这是一个需要重新发明的巨大***,所以绝对值得为已经转动的***付费。

存在一些特定 API 功能有限的 3rd 方库,如果您的需求非常具体,可以尝试搜索这些库。

还值得注意的是,AutoDesk 多年来一直在或多或少地与 ODA 进行诉讼。如果您决定与他们竞争,那么这是您必须期待的另一个复杂性。

更新:

那些日子已经过去了。

我还在开发一种与 DWG 文件对话的产品。我要走商业路线,因为所涉及的时间、费用和麻烦对我来说完全不经济。

更新:

我做到了。 tvCAD.tv 基于 RealDwg 构建

2018 年 7 月更新

虽然我将 RealDwg 用于 tvCAD,但如果我今天开始该项目,我可能会使用 ODA 库。 Building the RealDwg installer was a nightmare。此外,RealDwg 安装大小约为 ODA 安装大小的 10 倍。是的,认真的。

Autodesk 在 AutoCAD 市场的主导地位正在减弱,它不再是“IBM”的选择。我可能会在未来的某个时候将 tvCAD 转换为 ODA 库——将我推入其中并不需要更多的痛苦。许可成本相当。

除了AutoCAD tag wiki 中提到的论坛上对所有平台都非常普遍的积极和出色的同行支持之外,我一直发现 ODA 的支持比 Autodesk 环境中的支持要好。来自 RealDwg 的 .NET 代码几乎可以与 ODA 库一起使用。同样适用于 AutoCAD / BricsCAD 等的 .NET 插件。

【讨论】:

ODA 正在慢慢引入 .NET 版本的 DWGdirect。在不久的将来,你会成为一个大括号(wo)人在生产中使用它 大括号 = 勇敢。 ODA 的 .NET 版本运行良好,并且正在生产中。 ODA 的 .NET API 是活跃的。我发现他们比“官方”替代方案更能响应错误报告等 是的,它支持几乎所有的 AutoCAD 功能集。唯一缺少的是最新版本 afaik 中真正精美的功能。它一直拥有我想要的一切。 不确定 Teigha 和 ObjectARX。您最好查看他们的网站以获取该信息【参考方案2】:

我知道的唯一开源的是 LibreDwg,我认为它还没有完成。它从未真正走得很远。

我知道一个实际上是免费的,它叫做 Ivan CAD Library 2012,它位于 www.ivancad.com。

它可能很好地满足您的需求。

【讨论】:

【参考方案3】:

最简单的方法是将dwg转为dxf ascii,查询ascii dxf相当简单。

【讨论】:

【参考方案4】:

如果您选择 dxf 路线,我建议您使用 netDXF 。它是开源的,可以很好地满足我的有限要求,尽管它缺少多行文本支持,而且作者说还有一些其他的东西他不会支持,因为它们是 Autodesk 专有的。

【讨论】:

我已经测试了大约一年。有两个很大的限制:无法打开 2010 格式之前的旧文件(看起来像 Zmorzinski 分支解决了)和可能无法破坏块(读取它们的内容)。也许第二个问题也被排序了,我看到了一些关于它的讨论,但还没有测试。否则,它很容易实现到 .NET 并且速度很快。【参考方案5】:

没有开源解决方案,有一些商业解决方案,其中一个名为 CadLib 的 .NET 组件由 Wout Ware 提供:http://www.woutware.com/cadlib.html

【讨论】:

【参考方案6】:

有人尝试过 cadsofttools CAD Import 吗?

http://www.cadsofttools.com http://www.cadsofttools.com/en/products/cad_import_.net.html

【讨论】:

【参考方案7】:

曾经有人努力将 Art Haas 的 .dwg 解析器(来自 pythoncad 项目)移植到 c#。我似乎找不到链接 ATM,但那是几年前的事了。创建一个开源跨平台 .dwg 库是我对VectorSection 的首选,所以让我知道你发现了什么!

【讨论】:

以上是关于C# 中的开源 cad 绘图(dwg)库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

怎么用C#或VS2010读取CAD的dwg格式文件的图层信息

CAD二次开发控件,dwg控件,网页DWG控件,手机浏览编辑DWG控件

proe画的三维模型可以转化成autocad中的三维模型吗?

轻松高效完成CAD绘图的编辑器—迅捷CAD编辑器

winform不打开CAD读取dwg 显示编辑

CAD编辑器中PDF怎么转DWG