inkscapeのエクステンションを自作してみた

inkscapeのエクステンションを自作したいと思っている人は僕以外にもいるはずだ。

とくに、折り図を描くなどのある程度決まりきった操作を繰り返し行うような人にとっては、エクステンションが自作できれば、大幅な時間の節約になるはずだ。

しかし、実際に自作しようとしてみると、エクステンションの作り方の解説はほとんどなく、あったとしても英語の記事ばかりでなかなかハードルが高かった。

今回自作したエクステンションは

「座標(100,100)に縦横100pxの正方形を追加する」

という簡単なものだ。

とりあえず実行してみると以下のようになる。

まずは、オブジェクトを追加するという最も単純なものを作ってみたというわけだ。


エクステンションを追加するには2つのファイルを作らなければならない。

今後のことを考えて、ファイル名には自分の名前を頭につけて

saku_addRect.inx

saku_addRect.py

とした。


まずは「saku_addRect.inx」の方を見ていきたい。

始めの2行は次の図のようになっている。

この2行は必ず書かなければいけないお約束なようなものだと思う。

他のinxファイルを見ても必ず同じことが書いてあるから、とりあえず真似しておいた。


次の2行はこれ。

これは名前とidだ。

メニュー上でどのように表示されるかを記述する。

ここでは「addRect」とした。

idはなんだかよくわからなかったが、idを記述しないとinkscapeが起動しなくなるので、とりあえず他と被らないように何か書いておけば良いと思う。


次の2行はこれ。

ここでは、読み込むべきファイルを記述する。

とりあえずは、これから作るsaku_addRect.pyと、inkex.pyを読み込ませておけば良いと思う。

typeとかlocationとかは良くわからないけど、他のinxファイルもこんな感じだったので、これで良いと思う。


んで、次がこれ

object-typeについてはよくわからないけれども、submenuは大事。

submenuを定義するとメニュー上で次の図のように階層構造にできる。


はい、次。

なぜかもう一度参照先のpyファイルを記述。他のinxファイルがそうなっているのだから真似するしかない。


最後

開いた括弧を閉じておしまい。


次回はsaku_addRect.pyについて説明できたらいいなぁ。

この記事が気に入ったらサポートをしてみませんか?