10

我有一个扩展名为 .dwg (AutoCAD) 的文件,我想从 Python 控制台调用该文件并将其呈现在网络上。是否有 .dwg 扩展模块或其他解决方案?

4

4 回答 4

5

在线显示这些的最佳格式(imo)肯定是 SVG。最近的浏览器原生支持 SVG 渲染;较旧的(想想 IE6)可能需要 SVG 插件

因此,您最好的选择可能是使用命令行转换工具,如cad2svg(这是一个免费的 linux 命令行工具),将 DWG 文件转换为 SVG。您可以从您的 Python 程序 ( using subprocess ) 轻松地做到这一点。

于 2010-04-14T12:15:37.717 回答
2

仅从 .dwg 文件中获取数据并不容易,但从 .dxf 文件中获取数据要容易得多。所以我选择将 .dwg 文件转换为 .dxf 文件,然后只处理 .dxf 文件。这并不快,但它也是一种替代方法,因为没有其他简单的方法来处理 .dwg 文件。

该转换器位于https://www.opendesign.com/guestfiles/TeighaFileConverter

我的操作系统是 CentOS 6.5 (GCC 4.4.7),所以我选择Teigha File Converter for Linux 64-bit (RPM)

#Install some qt5 lib
yum install -y qt5*

# If your libstdc++.so.6 has GLIBCXX>=15, you can pass the following three steps (using strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX to find)
mv libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6.0.20
mv /usr/lib64/libstdc.so.6 /usr/lib64/libstdc.so.6.bk
ln /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc.so.6

# Install TeighaFileConverter
rpm -i --nodeps TeighaFileConverter_QT5_lnxX64_4.7dll.rpm

如果你想使用图形界面,你需要安装 Qt 5,或者你可以在终端中使用它或者在你的程序中使用它作为 shell 命令。

TeighaFileConverter 'input_folder' 'output_folder' "output_version" "output_type" "recurse_folder" "audit" -platform offscreen
# 'input_folder' can't be same with output_folder
# For example, convert dwg to dxf
TeighaFileConverter ./ ./dxf "ACAD10" "DXF" "0" "0" -platform offscreen
于 2016-10-12T02:23:51.580 回答
0

也许你可以从这个 Summer Of Code 项目中使用一些东西

http://groups.fsf.org/wiki/LibreDWG/SummerOfCode

http://groups.fsf.org/wiki/LibreDWG

于 2010-04-14T12:20:12.933 回答
0

GNU LibreDWG (GitHub 镜像)是 2021 年末的规范答案。有趣的是从现在已解散的 LibDWG 项目中分叉出来的……等待它世界语, LibreDWG

  • 可选择安装Python 3 绑定默认启用)。
  • 可选安装DWG→DXF 转换器默认启用)。
  • 不出所料,在GPL 3.0下获得许可(适用于 Web 后端;其他地方不太好)。
  • 支持几乎整个R2010+

说真的,很热。LibreDWG是唯一仍然重要的明智选择。让我们拥抱理智,每个人。

于 2021-09-04T07:15:10.457 回答