O que você vai aprender

  • Criar extensões básicas em Python usando o framework inkex
  • Entender a estrutura: arquivo .py + arquivo .inx de registro
  • Acessar e modificar objetos SVG via lxml/ElementTree no script
  • Registrar a extensão no menu do Inkscape pelo arquivo INX

Extensões Python🔗

Inkscape suporta extensões em Python para automação e funcionalidades extras.

Extensões Instaladas🔗

Acesse via Extensões menu. Extensões comuns:

  • pagetranslate: Traduz textos
  • Grid: Gera grades
  • Color Palette: Gera paletas
  • Barcode: Gera códigos de barras

Instalar Extensão🔗

  1. Baixe extensão (.py ou .inx)
  2. Copie para:
    • Linux: ~/.config/inkscape/extensions/
    • Windows: %APPDATA%\inkscape\extensions\
    • macOS: ~/Library/Application Support/inkscape/extensions/
  3. Reinicie Inkscape

Criar Extensão🔗

Estrutura Básica🔗

extension_name/
├── extension_name.py    # Lógica Python
├── extension_name.inx  # Metadados XML
└── extension_name.svg  # Ícone (opcional)

Arquivo .inx🔗

<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/extensions">
  <name> Minha Extensão</name>
  <id>minha_extensao</id>
  <param name="valor" type="float">1.0</param>
  <effect>
    <object-type>all</object-type>
  </effect>
  <script>
    <command location="inx">python</command>
    <source attachment="extension_name.py"/>
  </script>
</inkscape-extension>

API Básica🔗

import inkex

class MinhaExtensao(inkex.Effect):
  def effect(self):
    for node in self.svg.selection:
      node.style['fill'] = '#ff0000'

if __name__ == '__main__':
  MinhaExtensao().run()

inkex (API Inkscape)🔗

ClasseUso
inkex.EffectExtensão que processa seleção
inkex.FlowableExtensão que gera XML
inkex.add_argument()Adiciona argumento

Recursos🔗

  • inkex.styles: Manipular CSS inline
  • inkex.units: Converter unidades
  • inkex.templates: Gerar SVG
  • inkex.bounds: Bounding box

Teste extensões com Alt

  • Shift
  • E para ver erros no console.

Você aprendeu

  • Extensões Python usam o framework inkex para acessar o documento SVG
  • O arquivo .inx registra a extensão no menu e define parâmetros da interface
  • O script Python manipula o XML do SVG diretamente via lxml

Referências🔗