O que você vai aprender

  • Entender o formato INX para registro de extensões no Inkscape
  • Criar arquivos INX para expor scripts Python no menu de Extensões
  • Definir parâmetros de entrada (GUI) para extensões personalizadas
  • Configurar dependências e compatibilidade de versão no INX

Automação com INX Modifiers🔗

Estrutura de Extensão INX🔗

Arquivos INX definem a interface de parâmetros para extensões Python.

<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/ns/inkscape/extension">
  <name> Minha Extensão</name>
  <id>minha_extensao</id>
  <param name="nome" type="string">valor_padrão</param>
  <param name="numero" type="int" min="1" max="100">50</param>
  <param name="ativo" type="boolean">true</param>
  <effect>
    <object-type>all</object-type>
  </effect>
  <script>
    <command location="inx">python</command>
    <source attachment="minha_extensao.py"/>
  </script>
</inkscape-extension>

Tipos de Parâmetros🔗

TipoDescrição
stringTexto
intNúmero inteiro
floatNúmero decimal
booleanCheckbox
enumLista suspensa
colorCor
pathCaminho de arquivo

Exemplo: Parâmetros Completos🔗

<param name="texto" type="string" gui-text="Nome">João</param>
<param name="quantidade" type="int" min="1" max="100" gui-text="Quantidade">10</param>
<param name="escala" type="float" precision="2" min="0.1" max="10" gui-text="Escala">1.0</param>
<param name="ativo" type="boolean" gui-text="Ativar efeito">true</param>
<param name="cor" type="color" gui-text="Cor de preenchimento">#FF0000</param>

Acesso no Python🔗

import inkex

class MinhaExtensao(inkex.Effect):
  def effect(self):
    # Acessar parâmetros
    nome = self.options.nome
    quantidade = self.options.quantidade
    escala = self.options.escala
    ativo = self.options.ativo
    cor = self.options.cor

    # Aplicar lógica
    for i in range(quantidade):
      # criar objetos...
      pass

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

Boas Práticas🔗

  • Sempre valide inputs
  • Forneça valores padrão sensatos
  • Documente o que cada parâmetro faz
  • Teste com valores extremos

Use inkex.utils para funções auxiliares como bool() e float() com validação.

Você aprendeu

  • O arquivo INX é XML que registra extensões no menu e define parâmetros de interface
  • Parâmetros no INX geram automaticamente a GUI de configuração da extensão
  • INX suporta validação de dependências e restrição por versão do Inkscape

Referências🔗