我有一个扩展名为 .dwg (AutoCAD) 的文件,我想从 Python 控制台调用该文件并将其呈现在网络上。是否有 .dwg 扩展模块或其他解决方案?
问问题
26223 次
4 回答
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 项目中使用一些东西
于 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 回答