2022-10-25 01:42:30 +02:00
import bge # Bibliothèque Blender Game Engine (BGE)
2022-10-26 06:01:57 +02:00
import cine # Bibliothèque du player 3d d'analyse de cinématique
2022-10-25 01:42:30 +02:00
###############################################################################
2022-10-26 06:01:57 +02:00
# hemomixer.py
# @title: Player 3D cinématique du système de clampage de l'hémomixer
2022-10-25 01:42:30 +02:00
# @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 ( )
2022-10-26 06:01:57 +02:00
###############################################################################
# Mécanisme
###############################################################################
2022-10-25 01:42:30 +02:00
2022-10-26 06:01:57 +02:00
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 ' ]
2022-11-20 19:43:05 +01:00
objects_anim_init = [ ' Axe 2 ' ]
2022-10-26 06:01:57 +02:00
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 ' , [ ] ] }
2022-10-25 01:42:30 +02:00
# Couleurs
2022-10-26 06:01:57 +02:00
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 ] ] ]
2022-10-25 01:42:30 +02:00
2022-10-26 06:01:57 +02:00
colors_dict = { ' Couleur1 ' : [ 0.202 , 0.114 , 0.512 , 1 ] ,
2022-10-25 01:42:30 +02:00
' 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 ] }
2022-10-26 06:01:57 +02:00
# Initialisation
def init ( cont ) :
scene . objects [ ' Mecanism ' ] [ ' objects ' ] = objects
scene . objects [ ' Mecanism ' ] [ ' objects_anim ' ] = objects_anim
2022-11-20 19:43:05 +01:00
scene . objects [ ' Mecanism ' ] [ ' objects_anim_init ' ] = objects_anim_init
2022-10-26 06:01:57 +02:00
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