拡張子が.dwg(AutoCAD)のファイルがあり、Pythonコンソールからそのファイルを呼び出して、Webに表示したいと思います。.dwg拡張子またはその他のソリューション用のモジュールはありますか?
4 に答える
これらをオンラインで表示するための最良のフォーマットは(imo)間違いなくSVGでしょう。最近のブラウザはSVGレンダリングをネイティブにサポートしています。古いもの(IE6を考えてください)はSVGプラグインを必要とするかもしれません
したがって、最善の策は、おそらくcad2svg(これは無料のLinuxコマンドラインツールです)のようなコマンドライン変換ツールを使用して、DWGファイルをSVGに変換することです。これは、Pythonプログラムから(を使用して )簡単に行うことができますsubprocess
。
.dwgファイルからデータを取得するのは簡単ではありませんが、.dxfファイルから取得する方がはるかに簡単です。そこで、.dwgファイルを.dxfファイルに変換し、.dxfファイルを処理することにしました。これは高速ではありませんが、.dwgファイルを処理する他の簡単な方法がないため、代替手段でもあります。
コンバーターはhttps://www.opendesign.com/guestfiles/TeighaFileConverterにあります。
私のOSはCentOS6.5(GCC 4.4.7)なので、Linux 64ビット(RPM)用のTeighaFileConverterを選択します。
#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をインストールする必要があります。または、ターミナルで使用するか、プログラムのシェルコマンドとして使用することができます。
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
たぶん、このSummerOfCodeプロジェクトから使用できるものがあるでしょう
GNU LibreDWG (GitHubミラー)は、2021年後半の標準的な答えです。...で文書化された現在は機能していないLibDWGプロジェクトから陽気に分岐しましたエスペラント、 LibreDWG:
- オプションで、 Python 3バインディングをインストールします(デフォルトで有効になっています)。
- オプションで、 DWG→DXFコンバータをインストールします(デフォルトで有効)。
- 当然のことながら、 GPL 3.0の下でライセンスされています(Webバックエンドには問題ありませんが、他の場所では問題ありません)。
- R2010+のほぼ全体をサポートします。
真剣に、それは暑いです。LibreDWGは、依然として重要な唯一の正しい選択です。皆さん、正気を受け入れましょう。