2010-04-14 8 views
4

J'ai un fichier avec l'extension .dwg (AutoCAD), et je veux appeler ce fichier à partir d'une console Python et le présenter sur le web. Existe-t-il un module pour l'extension .dwg ou une autre solution?Comment ouvrir une extension de fichier DWG avec Python?

+0

Comment proposez-vous de présenter sur le web? –

+0

voulez-vous dire convertir dwg en une image ou simplement télécharger le fichier sur le web? –

+1

Je veux dire présent dans IFrame comme un google maps. – Gogoo

Répondre

4

Le meilleur format pour afficher ces en ligne serait (imo) définitivement SVG. Les navigateurs récents prennent en charge le rendu SVG en mode natif; Donc, votre meilleur pari est probablement d'utiliser un outil de conversion de ligne de commande comme cad2svg (c'est un outil de ligne de commande gratuit linux) qui convertit les fichiers DWG en SVG. Vous pouvez facilement faire cela à partir de votre programme Python (usingsubprocess).

0

Il est difficile d'obtenir des données seulement du fichier .dwg, mais beaucoup plus facile d'un Fichier .dxf. J'ai donc choisi de convertir un fichier .dwg en fichier .dxf, et de gérer simplement le fichier .dxf. Ce n'est pas rapide, mais c'est aussi une alternative, car il n'y a pas d'autre moyen facile de gérer les fichiers .dwg.

Le convertisseur est à https://www.opendesign.com/guestfiles/TeighaFileConverter. Mon OS est CentOS 6.5 (GCC 4.4.7), donc je choisis Teigha File Converter pour Linux 64 bits (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 

Si vous souhaitez utiliser l'interface graphique, vous devez installer Qt 5, ou vous pouvez simplement l'utiliser dans le terminal ou l'utiliser comme commandes shell dans votre programme.

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 
+0

et en python, j'utilise dxfgrabber pour gérer le fichier .dxf, – Kardos

Questions connexes