Google VR ViewでCADデータを取り扱う準備です。
WebベースでDXFファイルを扱うのは結構面倒です。
DXFはテキストファイルなのでパーサーを作るのはそんなに難しくはないと思うのですが….面倒です。
R12のままなら問題ないですが、AutoCADのDXFは誕生以来アップデートを重ねて、現状は複雑怪奇です。バージョンを考慮するとなると…..パーサーの自作はやめた方がいいです。
ネット上では、そもそもDXFのパーサー自体そんなに多くはないです。
Node.js系はあるにはあるのですが、レンタルサーバーで使うのには躊躇してしまいます。
PHPのライブラリはほとんど無いですね。
探してみるとPythonはさすがに充実しています。
さくらはPythonをデフォルトで使えますし。
使えそうなのが、dxfgrabberとezdxf(作者は両方とも同じ人物ですが)。
開発はezdxfの方に比重が移ったようです。
ezdxfではAutoCADのR12から2018までのデータを扱えるようです。
ezdxfって何?
単純にPythonでDXFを読むためのものです。
introductionによれば、
DXFや他のCAD用データフォーマットのコンバーターでもなければ、これで描画できるわけでもなく、ましてやCADシステムのカーネルでもありません….だそうです。
データのハンドリングはできるので、これを使ってcanvasに描画できるようにしてみます。
準備
さくらのPython インタプリタのバージョンは 2.7 です(2018/04/09現在)。
Python は 2.6 から、モジュールの検索順にユーザー・サイトのディレクトリというものが追加されているそうです。
その場所は次のようにして確認します。
さくらインターネットへはSSHでログインしておきます。
% python
Python 2.7.6 (default, May 21 2014, 16:52:04)
[GCC 4.2.1 20070831 patched [FreeBSD]] on freebsd9
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import site
>>> site.USER_SITE
‘/home/****/.local/lib/python2.7/site-packages’
このディレクトリが存在していると、Python インタプリタはそのパスを sys.path に自動的に追加します
(ディレクトリが実際に存在していないと追加されません)。
スタンダードプラン以上であれば、SSH でログインして以下のようにユーザー・サイトのディレクトリを用意します。
% mkdir -p ~/.local/lib/python2.7/site-packages
ezdxfは事前にpyparsingを要求します。
pyparsingを導入します。
1 2 3 4 5 6 7 8 9 10 |
% wget https://sourceforge.net/projects/pyparsing/files/pyparsing/pyparsing-2.2.0/pyparsing-2.2.0.tar.gz % tar zxvf pyparsing-2.2.0.tar.gz % cd pyparsing-2.2.0 % python setup.py install --user |
ezdxfのインストール
Githubからクローンします。
1 2 3 4 5 6 7 |
% git clone https://github.com/mozman/ezdxf.git % cd ezdxf % python setup.py install --user |
描画用コード
準備中
Leave a Reply