Laserengraver dev : Différence entre versions

De fablabo
Aller à : navigation, rechercher
(Page créée avec « == installation de l'extention == Ubuntu 12.04 Télécharger l'archive http://www.slackersdelight.com/instructables/laserengraver.zip Placer les fichiers du répertoire... »)
 
Ligne 12 : Ligne 12 :
  
 
== modification de l'extension ==
 
== modification de l'extension ==
 +
 +
= copier et renommer l'extension =
 +
 +
On souhaite faire une copie de l'extension pour pouvoir garder la version originale accessible.
  
 
Le fichier python (.py) contient le code principal. Le fichier .inx contient les infos pour intégrer l'extension à inkscape
 
Le fichier python (.py) contient le code principal. Le fichier .inx contient les infos pour intégrer l'extension à inkscape
J'ai choisi de renommer l'extention modifiée en ajoutant des suffixe "lo".
+
J'ai choisi de renommer l'extention modifiée en ajoutant des suffixes "lo".
  
 
  cd .config/inkscape/extensions
 
  cd .config/inkscape/extensions
Ligne 21 : Ligne 25 :
  
 
dans le fichier .inx, il faut modifier le champ "id" et le champ "_name" (remplacé "laser" par "lazer_lo") et remplacer toutes les occurrences de laserengraver.py par laserengraver_lo.py
 
dans le fichier .inx, il faut modifier le champ "id" et le champ "_name" (remplacé "laser" par "lazer_lo") et remplacer toutes les occurrences de laserengraver.py par laserengraver_lo.py
 +
 +
Au démarrage d'Inkscape, il y a désormais deux extensions dans le menu "Extensions > Laserengraver"
 +
 +
= bidouillage python pour avoir accès aux données de manière interactive =
 +
 +
Pour avoir accès à une partie des données produites par l'extension (notamment trouver à quel moment on peut faire intervenir la couleur) on peut ajouter les librairies python de Inkscape à l'environnement python. Pour cela, il suffit d'ajouter /usr/include/inkscape/extensions à la variable d'environnement $PYTHONPATH
 +
 +
export PYTHONPATH=$PYTHONPATH:/usr/include/inkscape/extensions
 +
 +
 +
= principe =
 +
 +
D'après de que j'ai compris, une extension inkscape est une classe python qui hérite de la classe "inkex.Effect". Son constructeur (i.e. def __init__(self)) permet d'avoir accès aux paramètres définis dans le menu de l'interface graphique par l'intermédiaire du fichier .inx
 +
 +
= ajout de paramètre dans le menu de laserengraver =
 +
 +
Il suffit d'ajouter une entrée "param" dans le fichier "laserengraver_laser.inx" et la ligne correspondante dans les options de OptionParser.

Version du 30 novembre 2013 à 16:36

installation de l'extention

Ubuntu 12.04

Télécharger l'archive http://www.slackersdelight.com/instructables/laserengraver.zip

Placer les fichiers du répertoire lazerengraver dans le dossier /home/$USER/.config/inkscape/extensions

wget http://www.slackersdelight.com/instructables/laserengraver.zip
unzip laserengraver.zip -d .config/inkscape/extensions
rm laseringraver.zip

modification de l'extension

copier et renommer l'extension

On souhaite faire une copie de l'extension pour pouvoir garder la version originale accessible.

Le fichier python (.py) contient le code principal. Le fichier .inx contient les infos pour intégrer l'extension à inkscape J'ai choisi de renommer l'extention modifiée en ajoutant des suffixes "lo".

cd .config/inkscape/extensions
cp laserengraver_laser.inx laserengraver_laser_lo.inx
cp laserengraver.py laserengraver_lo.py

dans le fichier .inx, il faut modifier le champ "id" et le champ "_name" (remplacé "laser" par "lazer_lo") et remplacer toutes les occurrences de laserengraver.py par laserengraver_lo.py

Au démarrage d'Inkscape, il y a désormais deux extensions dans le menu "Extensions > Laserengraver"

bidouillage python pour avoir accès aux données de manière interactive

Pour avoir accès à une partie des données produites par l'extension (notamment trouver à quel moment on peut faire intervenir la couleur) on peut ajouter les librairies python de Inkscape à l'environnement python. Pour cela, il suffit d'ajouter /usr/include/inkscape/extensions à la variable d'environnement $PYTHONPATH

export PYTHONPATH=$PYTHONPATH:/usr/include/inkscape/extensions


principe

D'après de que j'ai compris, une extension inkscape est une classe python qui hérite de la classe "inkex.Effect". Son constructeur (i.e. def __init__(self)) permet d'avoir accès aux paramètres définis dans le menu de l'interface graphique par l'intermédiaire du fichier .inx

ajout de paramètre dans le menu de laserengraver

Il suffit d'ajouter une entrée "param" dans le fichier "laserengraver_laser.inx" et la ligne correspondante dans les options de OptionParser.