Crée ton propre module

Il est possible de créer ses propres module Châtaigne afin d’ajouter des fonctionnalités ou bien supporter un système ou une machine spécifique.

Les Custom modules se situent dans le dossier <Documents>/Chataigne/modules

Pour créer un Custom module, allez dans le dossier modules de Chataigne, puis créez un nouveau dossier. Dans ce dossier, vous allez avoir besoin d’un ficher module.json qui contiendra les metadata, ainsi que les définitions de structure du module (values, parameters, commands, etc). Les définitions pour le fichier module.json à la suite de ce paragraphe.

La plupart du temps, vous allez vouloir ajouter un fichier de script au module. Ce fichier se chargera de toute la logique du module. Vous pouvez apprendre à écrire un script de module ici : Module Scripts​

Si vous appliquez des changements au fichier module.json, n’oubliez pas de faire la manipulation suivante File > Reload custom modules si Châtaigne est en cours d’exécution. Vous devrez aussi supprimer et relancer le module dans Châtaigne.

Il est aussi possible d’ajouter une de icône de 32x32 pixels nommé icon.png dans le dossier du module pour afficher une icône customisé.

Voici un exemple de Custom module: https://github.com/tommag/Sample-Chataigne-module . Vous pouvez vous en servir de base pour créer votre future module, et n’oubliez pas de le partager avec la communauté si vous pensez que ça peut être utile !

Il est également possible de créer un module spécifique à un projet, en plaçant le dossier du module dans un dossier "modules" dans le même dossier que le fichier noisette. Dans ce cas, le module ne sera visible que quand le fichier noisette sera chargé.

Définition du fichier module.json

Si vous n’avez jamais entendu parler du json, vous trouverez une courte explication en suivant ce lien : https://learnxinyminutes.com/docs/json/

Module metadata

Remplacer le module de base

Les clefs JSON suivantes vont vous permettre de décider ce que vous voulez garder du module de base. Vous pouvez trouver les « short name » des paramètres que vous voulez utiliser en survolant le paramètre avec la souris, et regarder la « control address ».

Paramètres et valeurs personnalisées

Consultez la section Types de données pour en savoir plus sur les différents types de données et les options que vous pouvez utiliser.

Commandes personnalisées

Vous pouvez également définir des commandes personnalisées. Chaque commande est liée à une "fonction de rappel" (callback function) dans le script du module.

Voici les paramètres de la commande :

Example:

"commands": { "Custom command": { "menu":"", "callback":"customCmd", "parameters": { "Value": { "type":"Integer", } } }

Scripts

Vous pouvez trouver la documentation pour les scripts de module ici : Module Scripts

Types de données

Chaque fois que vous devez spécifier comment traiter certaines données (c'est-à-dire pour les paramètres, les valeurs ou les paramètres de commande), vous disposez des options suivantes.

Conteneurs

Les données déclarées avec Container n'ont pas de valeur mais sont utilisées pour regrouper d'autres variables. Elle possède également une propriété de type collapsed :

Example:

"System parameters": { "type":"Container", "collapsed":true, "First variable": { "type":"Float", "default":20, "description":"This is the first variable"}, "Second variable": { "type":"Float", "default":0} }

Enums

Le type Enum est utilisé pour permettre à l'utilisateur de choisir entre un ensemble de valeurs. Il possède une propriété options supplémentaire:

Example:

"Test Enum": { "type":"Enum", "options": { "All":"all", "Single":"single" } }

Les types Float UI

Lorsqu'on définit une variable de type Float, il existe une propriété ui property, supplémentaire, utilisée pour personnaliser l'interface graphique (GUI).

Traitement avancé des données

Vous pouvez également modifier l'interface utilisateur (UI) en fonction des valeurs d'autres variables. Par exemple, vous pouvez vouloir afficher différentes options en fonction de la valeur d'une Enum.

Pour ce faire, vous devez ajouter la propriété dependency à la variable, puis ajouter les propriétés suivantes (toutes obligatoires) :

Exemple : Cet exemple alterne entre deux options différentes en fonction du choix de l'enum.

"parameters": { "My variable type": { "type":"Enum", "options": { "Float":"float", "Integer":"int" } }, "Variable (float)": { "type":"Float", "dependency": { "source":"myVariableType", "value":"float", "check":"equals", "action":"show" } }, "Variable (int)": { "type":"Integer", "dependency": { "source":"myVariableType", "value":"int", "check":"equals", "action":"show" } } }

Dernière mise à jour