mirror of
https://forge.apps.education.fr/blender-edutech/lecteur-3d-cinematique.git
synced 2024-01-27 09:43:12 +01:00
116 lines
6.0 KiB
Python
116 lines
6.0 KiB
Python
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 <philippe.roy@ac-grenoble.fr>
|
|
# @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
|