2022-10-25 01:42:30 +02:00
import bge # Bibliothèque Blender Game Engine (BGE)
2022-10-25 14:09:07 +02:00
import cine # Bibliothèque du player 3d d'analyse de cinématique
2022-10-25 01:42:30 +02:00
###############################################################################
2022-10-25 14:17:16 +02:00
# schrader.py
# @title: Player 3D cinématique de la pince schrader
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
#
2022-10-26 06:01:57 +02:00
# Commandes déclenchées par UPBGE pour le modèle de la pince schrader
2022-10-25 01:42:30 +02:00
#
# 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-25 14:17:16 +02:00
###############################################################################
# Mécanisme
###############################################################################
2022-10-25 14:09:07 +02:00
objects = [ ' Corps ' , ' Piston ' , ' Doigt sup ' , ' Doigt inf ' , ' Biellette sup ' , ' Biellette inf ' , ' Bouchon ' , ' Axe piston ' , ' Axe doigt sup ' , ' Axe doigt inf ' ,
' Axe biellette sup ' , ' Axe biellette inf ' , ' Joint piston ' , ' Joint bouchon ' , ' Circlips 1 ' , ' Circlips 2 ' , ' Circlips 3 ' , ' Circlips 4 ' , ' Circlips 5 ' ]
objects_anim = [ ' Axe biellette inf ' , ' Axe biellette sup ' , ' Axe piston ' , ' Biellette inf ' , ' Biellette sup ' , ' Doigt inf ' , ' Doigt sup ' , ' Joint piston ' , ' Piston ' ]
objects_dict = { ' Corps ' : [ 1 , ' 1 : Corps ' , ' Couleur1 ' , [ ] ] ,
' Piston ' : [ 2 , ' 2 : Piston ' , ' Vert ' , [ ] ] ,
' Doigt sup ' : [ 3 , ' 3 : Doigt sup. ' , ' Couleur7 ' , [ ] ] ,
' Doigt inf ' : [ 4 , ' 4 : Doigt inf. ' , ' Couleur7 ' , [ ] ] ,
' Biellette sup ' : [ 5 , ' 5 : Biellette sup. ' , ' Couleur5 ' , [ ] ] ,
' Biellette inf ' : [ 6 , ' 6 : Biellette inf. ' , ' Couleur5 ' , [ ] ] ,
' Bouchon ' : [ 7 , ' 7 : Bouchon ' , ' TurquoiseF ' , [ ] ] ,
' Axe piston ' : [ 8 , ' 8 : Axe piston ' , ' VertF ' , [ ] ] ,
' Axe doigt sup ' : [ 9 , ' 9 : Axe doigt sup. ' , ' VioletF ' , [ ] ] ,
' Axe doigt inf ' : [ 10 , ' 10 : Axe doigt inf. ' , ' VioletF ' , [ ] ] ,
' Axe biellette sup ' : [ 11 , ' 11 : Axe biellette sup. ' , ' MagentaF ' , [ ] ] ,
' Axe biellette inf ' : [ 12 , ' 12 : Axe biellette inf. ' , ' MagentaF ' , [ ] ] ,
' Joint piston ' : [ 13 , ' 13 : Joint piston ' , ' Couleur6 ' , [ ] ] ,
' Joint bouchon ' : [ 14 , ' 14 : Joint bouchon ' , ' Couleur2 ' , [ ] ] ,
' Circlips 1 ' : [ 15 , ' 15 : Circlips 1 ' , ' Gris ' , [ ] ] ,
' Circlips 2 ' : [ 16 , ' 16 : Circlips 2 ' , ' Gris ' , [ ] ] ,
' Circlips 3 ' : [ 17 , ' 17 : Circlips 3 ' , ' Gris ' , [ ] ] ,
' Circlips 4 ' : [ 18 , ' 18 : Circlips 4 ' , ' Gris ' , [ ] ] ,
' Circlips 5 ' : [ 19 , ' 19 : Circlips 5 ' , ' Gris ' , [ ] ] }
2022-10-25 01:42:30 +02:00
# Couleurs
2022-10-25 14:09:07 +02:00
colors = [ [ ' 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 ] ] ]
2022-10-25 14:09:07 +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 ] ,
' Vert ' : [ 0.130 , 0.799 , 0.036 , 1 ] ,
' VertF ' : [ 0.041 , 0.127 , 0.014 , 1 ] ,
' MagentaF ' : [ 0.153 , 0.002 , 0.091 , 1 ] ,
' Gris ' : [ 0.258 , 0.275 , 0.319 , 1 ] ,
' VioletF ' : [ 0.100 , 0.058 , 0.254 , 1 ] }
2022-10-25 14:09:07 +02:00
# Initialisation
def init ( cont ) :
scene . objects [ ' Mecanism ' ] [ ' objects ' ] = objects
scene . objects [ ' Mecanism ' ] [ ' objects_anim ' ] = objects_anim
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