Skip to Content
PersonnalisationTraducteursCréer un traducteurCréer une dérivation spécifique personnalisée

Créer une dérivation spécifique personnalisée

Introduction

Il y a un énorme avantage de construire un traducteur dérivé. Il utilisera le traducteur parent complet (de base), à l’exception que du nouveau contenu sera ajouté ici, et les fonctions existantes redéfinies supplanteront celles de base. Dans ce cas, le traducteur de base reste intact. Mais aussi que les changements (majeurs) apportés au traducteur de base sont appliqués automatiquement à tout traducteur dérivé.

Marches

1. Traducteur dérivé

1.1Dans Visual Studio Code, ouvrez le CustomTranslator.py du plugin d’exemple, qui a été implémenté pendant la préparation.
1.2Au début, on retrouve la définition de classe du traducteur. Puisque nous voulons dériver de HelloWorld, nous devons le spécifier entre crochets. Pour cet exemple, la structure hiérarchique ressemble à :
1.3De plus, il est important d’ajouter la ligne suivante au début de chaque téléchargement. Ces lignes vont ajouter le chemin courant au chemin Python. C’est important pour utiliser d’autres écarts.

2. Fonctions de dérogation

2.1Dans le contrôleur de la cellule de travail, changez le traducteur utilisé en CustomTranslator.py.
2.2Dans la classe parente HelloWorld.py nous produisons tous les attributs avec la propriété PROCESS_ATTRIBUTE. En CustomTranslator.py, nous supprimons la fonction par une implémentation personnalisée. Ajoutez les lignes suivantes à la fonction OperationStart(). # get log operator logger = operator. GetLogOperator() logger. LogInfo(« Default OperationStart called ») # obtenir le nom de l’opération opérationName = opération. GetName() # itère à travers tous les attributs de l’opération soi-même. ProgramContent.append(‘Nom de l’opération : %s’ % opérationNom) Outrepasser la fonction signifie que la sortie précédente des attributs d’opérations dans HelloWorld.py ne se produira plus. Sortie de HelloWorld.py Sortie de CustomTranslator.py
2.3Cependant, il est également possible d’appeler la fonction OperationStart() de la classe mère à la fin. Ajoutez la ligne suivante à la fonction. super(). OpérationDémarrer (opérateur, opération) Sortie :
2.4Cela vous permet aussi de décider si la fonction mère doit être appelée au début ou à la fin. Appelez l’implémentation OperationStart() de la classe mère au début. Supprimez la ligne ajoutée précédemment à la fin et placez-la au début, selon la photo ci-dessous. Sortie :

3. Sortie d’événements

3.1Dans votre cellule de travail, ajoutez un événement Texte à un élément de trajectoire d’outil en ouvrant le panneau d’événements.
3.2Implémentez la sortie de l’événement textuel. Ajoutez les lignes suivantes à la fonction HandleEvent(). # obtenir tous les attributs attributs = événement. GetAttributes() # initialiser variables texte = ” isComment = Vrai # itérer les attributs pour l’attribut dans les attributs : # obtenir texte si attribut. GetName() == ‘Text’ : texte = attribut. GetValue() # get flag est un texte qui est un attribut elif commentaire (True) ou command (False). GetName() == ‘IsComment’ : isComment = attribut. GetValue() # vérifie si commente si isComment : # crée une chaîne et ajoute-la au tableau source de chaînes self. ProgramContent.append(‘Comment : %s’ % text) sinon : self. ProgramContent.append(‘Commande :%s’ % texte) Sortie
Was this page helpful?