レイヤー関連

レイヤーに関するまとめです。

ドキュメントルート

SVGファイルの頂点です。

    svg = self.document.getroot()

ドキュメントサイズを調べたり、捜し物をする時などに使います。

エクステンション起動時に選択されているレイヤー

エクステンション起動時に選択されているレイヤーはself.current_layerです。

    parent = self.current_layer

オブジェクトがなくても実行できるエクステンションの場合、rootが選択されることがままあるようなので場合によっては注意が必要です。

オブジェクトの親レイヤーを取得する

処理によっては親レイヤーの取得が必要になるかもしれません。

    parent_layer = object.getparent()

新しいレイヤーを作る

参考

import inkex
...
    new_layer = inkex.etree.SubElement(svg, 'g')
    new_layer.set(inkex.addNS('label', 'inkscape'), 'NewLayerName')
    new_layer.set(inkex.addNS('groupmode', 'inkscape'), 'layer')

レイヤーのlabelは自由に命名できます。

新しいグループを作る

import inkex
...
    new_group = inkex.etree.SubElement(svg, 'g')

レイヤーは特殊な条件をもったグループで、特殊な条件を外してしまうとただのグループになります。