Extra python modules/jp

From FreeCAD Documentation
Jump to: navigation, search

あなたのシステムのPythonインストール設定に新しいモジュールを追加することでFreeCAD内部のPythonモジュールを簡単に拡張することができます。これらのモジュールはFreeCADによって自動的に検知され使用されます。

Pythonモジュールは全てFreeCADの内部から使用できますが中でも以下で紹介するいくつかのものは特に重要です。なぜならこれらを使うとPythonプログラムからFreeCADの中核機能に対して完全なアクセスを行うことが可能だからです。これらのモジュールの使用例はコードスニペットページにあります。

注意::

  • 以下のモジュールの内、Pivyは既にFreeCADインストールパッケージに完全に統合されています。またWindows用インストールパッケージではPyQt4も統合されています。
  • PyQt4はバージョン0.13以降、次第にサポートされなくなっていく予定です。これは完全に同じ機能持つものの、よりFreeCADと互換性の高いライセンス(LGPL)を持つPySideに移行するためです。

PyQt4

ホームページ: http://www.riverbankcomputing.co.uk/pyqt

PyQt(バージョン4)はプログラムがQtインターフェイスに対してアクセスしたり、それらを作成、変更できるようにするためのPythonバインディングライブラリです。FreeCADのインターフェイスはQtで作られているので、あなたのシステムにPyQt4をインストールすることでFreeCAD内部のPythonプログラムからインターフェイス全てにアクセスしたり、パーツの変更や新しいウィジットの作成、インターフェイスのパーツから情報を集めるなどの処理を行えるようになります。

PyQtはQtで使われているものと同じマルチライセンスシステムの下でリリースされています。つまり商用ライセンス版とフリーなGPL版がアルのです。もし商用の(クローズドなソースの)プログラムで使用したいと思ったら商用ライセンスを購入する必要があります。一方、GPL版では自由にインストールして使用することだけができます。

インストール

言うまでもないでしょうがPyQt4をインストールする前にインストール済みの正常動作するPython環境が必要です。

Linux

最も簡単なPyQt4のインストール方法はあなたの使っているディストリビューションのパッケージマネージャーを使用する方法です。Debian/Ubuntuシステムではパッケージ名は一般的にはpython-qt4です。またRPMベースのシステムではpyqt4となっています。必要な依存関係(QtとSIP)は自動的に解決されます。

Windows

プログラムをここからダウンロードできます。pyqt4をインストールする前にQtライブラリとSIPライブラリをインストールしておく必要があります(要ドキュメント化)。

使用方法

インストールが終わったらFreeCADにPythonコンソールで以下のコマンドを入力して全て動作しているかどうかチェックします:

import PyQt4

FreeCADインターフェイスにアクセスするには以下のように入力します:

from PyQt4 import QtCore,QtGui
app = QtGui.qApp
FreeCADWindow = app.activeWindow()

以上を行うとdir()コマンドを使ってインターフェイスを探索できるようになります。自作のウィジットなど新しい要素を追加するには以下の様なコマンドを使います:

FreeCADWindow.addDockWidget(QtCore.Qt.RghtDockWidgetArea,my_custom_widget)

ドキュメント

以下に(QtDesigneやPythonを使ったインターフェイスの作成方法を含む)もっと詳しいpyQt4のチュートリアルがあります:

http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/classes.html - 公式PyQt4 APIリファレンス

http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/ - 簡単なイントロダクション

http://www.zetcode.com/tutorials/pyqt4/ - 非常に詳細なチュートリアル

Pivy

ホームページ: http://pivy.coin3d.org/

PivyはPython用のCoinバインディングライブラリで、Coinプロジェクトによって公式にサポートされています。Coin自体はOpenGLで3Dアプリケーションを作成するためのツールキットです。FreeCADはこのツールキットを使って画面上に3Dシーンを描画しています。あなたのシステムにPivyをインストールするとPythonプログラムからFreeCADのシーングラフにアクセスして画面上に新しいオブジェクトを描画したり、描画操作用の幅広いCoinツールを利用できるようになります。Coinはシーン記述言語であるOpenInventorに基づいています。PivyはFreeCADの2D製図モジュール(また全てのモジュール)で使用されているのでそれらのモジュールのツールを使いたい場合には必ず必要になります。

FreeCADではオブジェクトを画面上に表現するためにしかCoinを使っておらず、それらはオブジェクトの定義とは分離しているということは知っておくべき重要な点でしょう。つまりPivyを使って既存のオブジェクトを変更したり、正常なFreeCADオブジェクトを作成することはできないのです。ただし一時的なものであれば、座標軸、グリッド、マニピュレータ、補助ジオメトリーなどあらゆるものを画面に描画することができます。

PivyはCoinと同様、GPLライセンスの下でリリースされています。

インストール

必要条件

Pivyをコンパイルする前にはCoinとSoQtをインストールしておいた方がいいと思います。

Mac上でのビルドではCoin3バイナリパッケージをインストールするだけで十分でした。ただしMacPortsからCoinをインストールしようとすると問題となるかもしれません。大量のXWindowパッケージの追加を行わなければならず、スクリプトのエラーによる完全なクラッシュもありました。

FedoraではRPMにCoin3がありました。

SoQtのソースからのコンパイルはMacでもLinuxでも問題ありませんでした。

Debian & Ubuntu

DebianSqueezeとUbuntuLucidを使って始める場合は公式レポジトリからPivyを直接利用することができるのでたいして面倒ではないでしょう。他にもダウンロードページから利用できる私たちが(DebianとUbuntuKarmic用に)作成したパッケージをダウンロードするか、あるいは自分自身でビルドするという方法をとることもできます。

最も簡単なPivyのコンパイル方法はPivyのDebianソースパッケージから取ってきてdebuildを使ってパッケージを作成するやり方です。これはPivyの公式サイトのものと同じソースコードですがDebianの人たちによっていくつかのバグ修正が追加されています。UbuntuKarmic上でも正常にコンパイルできます: http://packages.debian.org/squeeze/python-pivy から.orig.gzファイルと.diff.gzファイルをダウンロードして両方を展開したら.diff をソースに適用します。展開したPivyのソースフォルダに移動し、以下のようにして.diffパッチを適用します:

patch -p1 < ../pivy_0.5.0~svn765-2.diff

その後で次のコマンドをを実行するとPivyが公式なインストールパッケージに適切にビルドされます。

debuild

それが終わったらgdebiを使ってそのパッケージをインストールすれば終わりです。

そのほかのLinuxディストリビューション

まず以下のコマンドを使って最新のソースをプロジェクトのリポジトリ:から入手します。

hg clone http://hg.sim.no/Pivy/default Pivy

2012年3月現在、最新のバージョンはPivy-0.5です。

次にPythonバインディング用のC++コードを生成するためのSWIGというツールが必要になります。Pivy-0.5はSWIG 1.3.31、1.3.33、1.3.35、1.3.40でのみテスト済みであると説明されています。従ってそれら古いバージョンのどれかのソースのtarballをhttp://www.swig.orgからダウンロードします。ダウンロードしたら展開して(root権限で)次のコマンドを実行します:

./configure
make
make install (checkinstallを使っている場合はそれでも構いません)

ビルドは数秒で終わります。

あるいはもっと新しいSWIGを使ってビルドを試みてもいいでしょう。2012年3月現在、標準のリポジトリバージョンは2.0.4です。PivyはMac OSでのSWIG 2.0.4を使ったコンパイルでちょっとした問題がありますが(下記を参照)、Fedora Core 15では正常にビルドできるようです。

ビルドが終わったらPivyソースの位置に移動し、次のコマンドを実行します:

python setup.py build 

これによってソースファイルが作成されます。ビルドでは大量の警告が出る場合がありますが恐らくエラーはでないでしょう。

恐らく今は修正されていますが 'char*'を'const char*'に変換できない、というコンパイルエラーが起きる場合があります。これを修正するためには該当する行に'const'を書き込む必要があります。修正ヶ所は6行あります。

それが終わったら次のコマンドを(root権限で)実行してインストールを行います:

python setup.py install (またはcheckinstall python setup.py install)

これで終わりです。Pivyがインストールされました。

Mac OS

以下の手順説明は完全ではないかもしれません。2012年3月現在、OS10.7でほぼ動作しました。レポジトリはMacPortsのものを使用しましたが他のものでもうまくいくはずです。

Linuxと同様に最新のソースコードを以下のコマンドで入手します:

hg clone http://hg.sim.no/Pivy/default Pivy 

もしあなたの環境にhgがなければ以下のコマンドを実行することでMacPortsから入手できます:

port install mercurial

その後は上記と同様、SWIGが必要になります。以下のコマンドで入手できるはずです:

port install swig

私の環境では以下のコマンドも必要でした:

port install swig-python

2012年3月現在、MacPortsのSWIGはバージョン2.0.4です。上記のLinuxの項目で書いたように可能であればもっと古いバージョンをダウンロードした方が良いでしょう。SWIG2.0.4にはPivyのビルドが止まるバグがあるようです。以下の要約の最初のメッセージを参照して下さい: https://sourceforge.net/mailarchive/message.php?msg_id=28114815

これはソース内の二ヶ所を編集してarg4、arg5の代わりに修飾参照*arg4、*arg5を追加することで修正できます。これで以下のコマンドを使ってPivyをビルドできるはずです:

python setup.py build
sudo python setup.py install

Windows

VisualStudio2005以降を使用するものとします。ツールメニューの'Visual Studio 2005 Command prompt'を使ってコマンドプロンプトを開きます。 もしPythonインタプリタをまだシステムパスに登録していない場合は以下のようにしてください:

set PATH=path_to_python_2.5;%PATH%

Pivyを動作させるためにはプロジェクトのリポジトリから最新のソースを入手します:

svn co https://svn.coin3d.org/repos/Pivy/trunk Pivy 

次にPythonバインディング用のC++コードを生成するためのSWIGというツールが必要になります。最新バージョンではなくSWIGのバージョン1.3.25を使うことをお勧めします。今のところPivyは1.3.25を使った場合にしか正しく動作しないためです。http://www.swig.orgから1.3.25のバイナリをダウンロードしてください。ダウンロードしたら展開して以下のようにしてコマンドラインからシステムパスに追加します:

set PATH=path_to_swig_1.3.25;%PATH%

またCOINDIRを適切なパスに設定します:

set COINDIR=path_to_coin

Windows上ではPivyの設定ファイルはデフォルトのSoQtではなくSoWinとなっているはずです。SoQtを使ってビルドする適切な方法を見つけられなかったので私はsetup.pyを直接変更しました。 200行目の 'sowin'の部分を取り除くだけです:('gui._sowin', 'sowin-config', 'pivy.gui.') (丸括弧閉じは削除しないように)

それが終わったらソースの位置に移動して以下のコマンドを実行します:

python setup.py build 

これによってソースファイルが作成されます。いくつかのヘッダファイルが見つからないというコンパイルエラーが起きるかもしれません。その場合にはINCLUDE変数を以下のように調整してください:

set INCLUDE=%INCLUDE%;path_to_coin_include_dir

もしSoQtのヘッダがCoinのヘッダと同じ場所にない場合は以下も行います:

set INCLUDE=%INCLUDE%;path_to_soqt_include_dir

最後にQtのヘッダを追加します:

set INCLUDE=%INCLUDE%;path_to_qt4\include\Qt

あなたがVisualStudioのExpressエディションを使っている場合、Pythonのkeyerror例外が起きるかもしれます。 その場合はPythonインストール位置にあるmsvccompiler.pyに若干の変更を加える必要があります。

122行目に移動し以下の行を

vsbase = r"Software\Microsoft\VisualStudio\%0.1f" % version

次の行で置き換えます。

vsbase = r"Software\Microsoft\VCExpress\%0.1f" % version

それが終わったらもう一度試してみてください。 次に示すようなエラーが再度起きた場合は

error: Python was built with Visual Studio 2003;...

128行目の以下の行を

self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1")

次の行で置き換えます。

self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv2.0")

再度、試します。また次に示す様なエラーが起きる場合は

error: Python was built with Visual Studio version 8.0, and extensions need to be built with the same version of the compiler, but it isn't installed.

以下のコマンドで環境変数のDISTUTILS_USE_SDKとMSSDKを調べてみてください。

echo %DISTUTILS_USE_SDK%
echo %MSSDK%

もしまだ設定されていないようであれば以下のコマンドの様にして1などを設定してください。

set DISTUTILS_USE_SDK=1
set MSSDK=1

また'char*'を'const char*'に変換できない、というコンパイルエラーが起きる場合があります。これを修正するためには該当する行に'const'を書き込む必要があります。修正ヶ所は6行あります。 ビルドが終わったら生成されたPivyディレクトリをFreeCADのPythonインタプリタが見つけられる場所にコピーしてください。

使用方法

PivyでFreeCADのシーングラフにアクセスするには次のようにします:

from pivy import coin
App.newDocument() # ドキュメントとビューを開きます
view = Gui.ActiveDocument.ActiveView 
FCSceneGraph = view.getSceneGraph() # Coinシーングラフのメイン"コンテナ"であるSoSeparatorを保持したPivyのPythonオブジェクトを返します
FCSceneGraph.addChild(coin.SoCube()) # シーンにボックスを追加します

これでdir()コマンドを使ってFCSceneGraphを調べることができるようになります。

ドキュメント

残念なことにPivyについて書かれたものはネット上にはまだほとんどありません。ただしCoinドキュメントが利用できることにあなたは気がついたかもしれません。PivyはConiの関数、ノード、メソッドを純粋にPythonに移植したものだからです。名前とプロパティは全て同じままで、気をつける必要があるのはCとPythonの文法の違いだけです。

http://doc.coin3d.org/Coin/classes.html - Coin3DのAPIリファレンス

http://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/index.html - The Inventor Mentor - Inventorのシーン記述言語の"バイブル"です

またFreeCADのMod/DraftフォルダにあるDraft.pyファイルを参照してもいいでしょう。これはPivyを豊富に使っているからです。

pyCollada

pyColladaはプログラムでCollada (*.DAE)ファイルの読み書きを行うことができるようにするためのPythonライブラリです。pyColladaがあなたのシステムにインストールされている場合にはFreeCAD(introduced in version 0.13)はそれを検出してColladaファイル形式のインポートとエクスポートを行うハンドルの追加を行います。

インストール

pyColladaは今のところLinuxディストリビューションのレポジトリでは利用できないことが多いですが、Pythonファイルだけで作成されていてコンパイルを必要としないのでインストールは簡単です。やり方は二通りあります。pyColladaの公式Gitレポジトリから直接インストールするか、easy_installツールを使うかのどちらかです。

Linux

どちらの場合でも以下のパッケージがあなたのシステムにインストールされている必要があります:

python-lxml 
python-numpy
python-dateutil
Gitレポジトリからのインストール
git clone git://github.com/pycollada/pycollada.git pycollada
cd pycollada
sudo python setup.py install
easy_installを使ったインストール

Pythonは既に完全にインストールされているものとし、その場合、easy_installユーティリティが既に存在しているはずです。

easy_install pycollada

pyColladaが正しくインストールされたかどうか確認するためにはPythonコンソールで以下のコマンドを入力します:

import collada

何も返らなければ(エラーメッセージがでなければ)全てOKです。

Windows

ドキュメント作成予定

IfcOpenShell

IFCOpenShellは現在開発中のライブラリでIndustry foundation Classes (*.IFC)のインポート(いずれはエクスポートも)を行えるようにするもので。IFCはSTEP形式の拡張でBIMワークフローでの標準形式になる予定です。あなたのシステムにIFCOpenShellが正しくインストールされている場合にはFreeCADの建築モジュール がそれを検出してIFCファイルのインポートに使用します。IFCOpenShellはFreeCAD同様、OpenCasCadeを基盤にしていてインポートの精度が非常に高く、高品質なソリッドジオメトリを生成します。

ホームページ: http://www.ifcopenshell.org

インストール

IFCOpenShellは非常に新しいものなので恐らく自分でコンパイルする必要があります。

Linux

IFCOpenShellをコンパイルするためにはシステムにいくつかの開発用パッケージをインストールする必要があります:

liboce-*-dev
python-dev
swig

ただしこれらは全てFreeCADでも必要な物なので、もしあなたがFreeCADをコンパイルできる状態なら他にIfcOpenShellをコンパイルするのに必要な物はありません。

以下から最新のソースコードを入手してください:

svn co https://ifcopenshell.svn.sourceforge.net/svnroot/ifcopenshell ifcopenshell

ビルド処理は非常に簡単です:

mkdir ifcopenshell-build
cd ifcopenshell-build
cmake ../ifcopenshell/cmake

あるいは、あなたがOpenCasCadeの代わりにoceを使っている場合は以下の様になります:

cmake -DOCC_INCLUDE_DIR=/usr/include/oce ../ifcopenshell/cmake 

IfcOpenShellは元々はBlender用に作成されたのでデフォルトではpython3を使用します。FreeCAD内部で使用する場合にはFreeCADで使用されているものと同じバージョンのPythonに対してコンパイルを行う必要があります。従って以下のようにして追加のCMakeパラメータでPythonのバージョンを指定する必要があるでしょう(Pythonのバージョンを調整するのです)。

cmake -DOCC_INCLUDE_DIR=/usr/include/oce -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7.so ../ifcopenshell/cmake

その後で以下を実行します:

make
sudo make install

IfcOpenShellが正しくインストールされたかどうか確認するためにはPythonコンソールで以下のコマンドを入力します:

import IfcImport

何も返らなければ(エラーメッセージがでなければ)全てOKです。

Windows

IfcOpenShellのREADMEファイルからの転載です

win/ folderにあるVisual Studioの.slnファイルを使用することをお勧めします。Windowsユーザー用ビルド済みバージョンのOpenCASCADEはウェブサイト http://opencascade.org から利用可能です。このバージョンをダウンロードしてインストールした後でOpenCASCADEのヘッダとライブラリのパスをMS Visual Studio C++に設定してください。

IfcPythonラッパーをビルドするためにはSWIGが必要になります。 http://www.swig.org/download.html から最新版のswigwinをダウンロードしてください。.zipファイルを展開したら、その展開したフォルダをPATH環境変数に追加してください。またPythonがインストールされている必要があります。そのインクルードとライブラリパスをVisualStudioに設定してください。

ご利用可能な言語: Flag-en.jpg Flag-es.jpg Flag-fr.jpg Flag-it.jpg Flag-ru.jpg