如何使用Python打开DWG文件扩展名?

14

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


你打算如何在网页上展示? - Gary Kerr
1
你的意思是将DWG转换为图像还是只是上传文件到网络? - Boris Gorelik
1
我是指像谷歌地图一样将其呈现在IFrame中。 - Ballon
4个回答

8

GNU LibreDWG (GitHub镜像)是2021年末的标准答案。这个项目最初来源于已经消失的LibDWG项目,有趣的是该项目文档是以世界语Esperanto撰写的,而现在却在LibreDWG中涵盖。

  • 可选择安装Python 3绑定库(默认启用)。
  • 可选择安装DWG→DXF转换器(默认启用)。
  • 使用GPL 3.0许可证(适用于web后端; 在其他地方不太合适)。
  • 支持几乎所有的R2010+版本。

说真的,它很棒。LibreDWG是唯一仍然重要的理智选择。让我们一起接受理智吧。


我之前看到过这个库,希望能够使用它来读取dwg内容,但是由于我缺乏经验,无法理解安装过程。你能否指点一下我可以参考的资源,让我开始着手处理呢? - Juan Carlos Asuncion

6
最佳的在线显示格式(在我看来)肯定是SVG。现代浏览器原生支持SVG渲染;旧浏览器(如IE6)可能需要SVG插件。因此,你最好使用命令行转换工具,如cad2svg(这是一个免费的Linux命令行工具),将DWG文件转换为SVG格式。你可以很容易地从Python程序中执行此操作(使用subprocess)。

3
截至2012年12月,我不再有资格提供免费软件下载。难过。 - varun

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

2
在Python中,我使用dxfgrabber来处理.dxf文件。 - Kardos

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接