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

发布于 2024-08-29 08:11:32 字数 90 浏览 9 评论 0 原文

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

I have a file with extension .dwg (AutoCAD), and I want to call that file from a Python console and present it on the web. Is there a module for the .dwg extension or some other solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

谁的年少不轻狂 2024-09-05 08:11:32

GNU LibreDWG (GitHub 镜像) 是 2021 年底的规范答案。从 中记录的现已不复存在的 LibDWG 项目中搞笑地分叉出来...等等< /em> 世界语,LibreDWG

  • 可选择安装Python 3 绑定默认启用)。
  • 可以选择安装DWG→DXF 转换器默认启用)。
  • 毫不奇怪,它是根据GPL 3.0获得许可的(对于网络后端来说很好;在其他地方不太好)。
  • 支持几乎整个R2010+

说真的,天气很热。 LibreDWG 是唯一仍然重要的明智选择。大家,让我们拥抱理智吧。

GNU LibreDWG (GitHub mirror) is the canonical answer in late 2021. Hilariously forked from the now defunct LibDWG project documented in ...wait for it Esperanto, LibreDWG:

  • Optionally installs Python 3 bindings (enabled by default).
  • Optionally installs DWG→DXF converters (enabled by default).
  • Is unsurprisingly licensed under the GPL 3.0 (fine for web backends; less fine everywhere else).
  • Supports almost the entirety of R2010+.

Seriously, it's hot. LibreDWG is the only sane choice that still matters. Let's embrace sanity, everybody.

往日情怀 2024-09-05 08:11:32

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

所以您最好的选择可能是使用命令行转换工具,例如 cad2svg (这是一个免费的 Linux 命令行工具),它将 DWG 文件转换为 SVG。您可以轻松地从 Python 程序中执行此操作(使用 subprocess)。

The best format for displaying these online would (imo) definitely be SVG.
Recent browsers support SVG rendering natively; older ones (think IE6) may require an SVG plugin

So your best bet is probably using a command line convert tool like cad2svg (this is a free linux command line tool) which converts the DWG files to SVG. You can easily do this that from your Python program (using subprocess).

孤檠 2024-09-05 08:11:32

仅从 .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

It's not easy to get data just from .dwg file, but much more easier from a .dxf file. So I choose to convert a .dwg file to a .dxf file, and just handle the .dxf file. This is not fast, but it is also an alternative, since there is no other easy way to handle .dwg files.

The converter is at https://www.opendesign.com/guestfiles/TeighaFileConverter.

My OS is CentOS 6.5 (GCC 4.4.7), so I choose 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

If you want to use the graphical interface, you need to install Qt 5, or you can just use it in terminal or use it as shell commands in your program.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文