import bge # Bibliothèque Blender Game Engine (BGE) import cine # Bibliothèque du player 3d d'analyse de cinématique ############################################################################### # hemomixer.py # @title: Player 3D cinématique du système de clampage de l'hémomixer # @project: Blender-EduTech # @lang: fr # @authors: Philippe Roy # @copyright: Copyright (C) 2020-2022 Philippe Roy # @license: GNU GPL # # Commandes déclenchées par UPBGE pour le modèle de l'hémomixer (système de clampage) # # Ce player 3D est un environnement léger et spécifique pour la colorisation des solides d'un mécanisme en mouvement. # Il sert principalement pour l'apprentissage de la détection des classes d'équivalence d'un mécanisme afin de pouvoir faire sa modélisation cinématique. # ############################################################################### # Récupérer la scène 3D scene = bge.logic.getCurrentScene() ############################################################################### # Mécanisme ############################################################################### objects=['Bloc clampeur', 'Disque', 'Moteur', 'Palonnier', 'Ressort', 'Reducteur', 'Sabot', 'Support clampeur','Support moteur','Tige clampeur', 'Goujon','Guide palonnier','Axe 1', 'Axe 2','Circlips 1', 'Circlips 2', 'Circlips 3', 'Maillon axe 1', 'Maillon axe 2','Maillon droite', 'Maillon gauche','Vis 1', 'Vis 2', 'Vis 3', 'Vis 4', 'Vis 5', 'Ecrou 1', 'Ecrou 2', 'Ecrou 3', 'Ecrou 4', 'Ecrou 5', 'Ecrou 6','Rondelle 1', 'Rondelle 2', 'Rondelle 3', 'Rondelle 4','Bague 1','Bague 2', 'Axe reducteur'] objects_anim=['Disque', 'Ressort', 'Palonnier', 'Axe reducteur', 'Maillon gauche', 'Maillon axe 1'] objects_anim_init=['Axe 2'] objects_dict={'Bloc clampeur' : [1, '1 : Bloc clampeur', 'VioletF', []], 'Disque' : [2, '2 : Disque', 'TurquoiseF', []], 'Moteur' : [3, '3 : Moteur', 'Couleur7', []], 'Palonnier' : [4, '4 : Palonnier', 'VertF', []], 'Ressort' : [5, '5 : Ressort', 'Couleur6', []], 'Reducteur' : [6, '6 : Réducteur', 'MagentaF', []], 'Sabot' : [7, '7 : Sabot', 'Couleur5', []], 'Support clampeur' : [8, '8 : Support clampeur', 'Couleur1', []], 'Support moteur' : [9, '9 : Support moteur', 'Couleur2', []], 'Tige clampeur': [10, '10 : Tige clampeur', 'Couleur4', []], 'Goujon': [11, '11 : Goujon', 'GrisF', []], 'Guide palonnier': [12, '12 : Guide palonnier', 'Gris', []], 'Axe 1': [13, '13 : Axe 1', 'GrisF', []], 'Axe 2': [14, '14 : Axe 2', 'GrisF', []], 'Circlips 1' : [15, '15 : Circlips 1', 'Gris', []], 'Circlips 2': [16, '16 : Circlips 2', 'Gris', []], 'Circlips 3': [17, '17 : Circlips 3', 'Gris', []], 'Maillon axe 1' : [18, '18 : Maillon axe 1', 'GrisF', []], 'Maillon axe 2': [19, '19 : Maillon axe 2', 'GrisF', []], 'Maillon droite' : [20, '20 : Maillon droite', 'RougeF', []], 'Maillon gauche' : [21, '21 : Maillon gauche', 'Couleur3', []], 'Vis 1' : [22, '22 : Vis 1', 'Gris', []], 'Vis 2' : [23, '23 : Vis 2', 'Gris', []], 'Vis 3' : [24, '24 : Vis 3', 'Gris', []], 'Vis 4' : [25, '25 : Vis 4', 'Gris', []], 'Vis 5' : [26, '26 : Vis 5', 'Gris', []], 'Ecrou 1' : [27, '27 : Ecrou 1', 'Gris', []], 'Ecrou 2' : [28, '28 : Ecrou 2', 'Gris', []], 'Ecrou 3' : [29, '29 : Ecrou 3', 'Gris', []], 'Ecrou 4' : [30, '30 : Ecrou 4', 'Gris', []], 'Ecrou 5' : [31, '31 : Ecrou 5', 'Gris', []], 'Ecrou 6' : [32, '32 : Ecrou 6', 'Gris', []], 'Rondelle 1' : [33, '33 : Rondelle 1', 'GrisC', []], 'Rondelle 2' : [34, '34 : Rondelle 2', 'GrisC', []], 'Rondelle 3' : [35, '35 : Rondelle 3', 'GrisC', []], 'Rondelle 4' : [36, '36 : Rondelle 4', 'GrisC', []], 'Bague 1' : [37, '37 : Bague 1', 'GrisC', []], 'Bague 2' : [38, '38 : Bague 2', 'GrisC', []], 'Axe reducteur' : [39, '39 : Axe réducteur', 'GrisF', []]} # Couleurs colors=[['Couleur1', [0.202, 0.114, 0.512, 1]], ['Couleur2', [0.051, 0.270, 0.279, 1]], ['Couleur3', [0.799, 0.031, 0.038, 1]], ['Couleur4', [0.799, 0.130, 0.063, 1]], ['Couleur5', [0.8, 0.619, 0.021, 1]], ['Couleur6', [0.246, 0.687, 0.078, 1]], ['Couleur7', [0.800, 0.005, 0.315, 1]], ['Couleur8', [0.75,0.75, 0.75, 0]]] colors_dict={'Couleur1' : [0.202, 0.114, 0.512, 1], 'Couleur2' : [0.051, 0.270, 0.279, 1], 'Couleur3' : [0.799, 0.031, 0.038, 1], 'Couleur4' : [0.799, 0.130, 0.063, 1], 'Couleur5' : [0.8, 0.619, 0.021, 1], 'Couleur6' : [0.246, 0.687, 0.078, 1], 'Couleur7' : [0.800, 0.005, 0.315, 1], 'Couleur8' : [0.75,0.75, 0.75, 0], 'TurquoiseF' : [0.019,0.107, 0.105, 1], 'MagentaF' : [0.212,0.003, 0.089, 1], 'VertF' : [0.041,0.127, 0.014, 1], 'VioletF' : [0.080,0.046, 0.307, 1], 'RougeF' : [0.175,0.010, 0.012, 1], 'Gris' : [0.258,0.275, 0.319, 1], 'GrisF' : [0.087,0.093, 0.107, 1], 'GrisC' : [0.501,0.534, 0.621, 1], 'Blanc' : [0.8, 0.8, 0.8, 1]} # Initialisation def init(cont): scene.objects['Mecanism']['objects'] = objects scene.objects['Mecanism']['objects_anim'] = objects_anim scene.objects['Mecanism']['objects_anim_init'] = objects_anim_init scene.objects['Mecanism']['objects_dict'] = objects_dict scene.objects['Mecanism']['colors'] = colors scene.objects['Mecanism']['colors_dict'] = colors_dict cine.manip_init() # Manipulation du modèle 3D cine.objects_init() # Mécanisme cine.cmd_init() # Commandes cine.anim_init() # Animation