lecteur-3d-cinematique/pince_schrader/schrader.py

105 lines
5.8 KiB
Python
Raw Normal View History

2022-10-25 01:42:30 +02:00
import bge # Bibliothèque Blender Game Engine (BGE)
import math
import cine # Bibliothèque du player 3d d'analyse de cinématique
2022-10-25 01:42:30 +02:00
###############################################################################
# batoncolle.py
# @title: Player 3D cinématique du baton de colle
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 du baton de colle
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()
# print("Objets de la scene : ", scene.objects)
# Mécanisme (objets 3D)
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=['Axe biellette inf', 'Axe biellette sup', 'Axe doigt inf', 'Axe doigt sup', 'Axe piston', 'Biellette inf', 'Biellette sup', 'Bouchon', 'Circlips 1', 'Circlips 2',
# 'Circlips 3', 'Circlips 4', 'Circlips 5', 'Corps', 'Doigt inf', 'Doigt sup', 'Joint bouchon', 'Joint piston', 'Piston']
# objects_anim=['Axe biellette inf', 'Axe biellette sup', 'Axe piston', 'Biellette inf', 'Biellette sup', 'Doigt inf', 'Doigt sup', 'Joint piston', 'Piston']
# objets_couleur=['MagentaF', 'MagentaF', 'VioletF', 'VioletF', 'VertF', 'Couleur5', 'Couleur5', 'TurquoiseF', 'Gris', 'Gris', 'Gris', 'Gris', 'Gris',
# 'Couleur1', 'Couleur7', 'Couleur7', 'Couleur2', 'Couleur6', 'Vert']
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', []]}
# objects=['Axe biellette inf', 'Axe biellette sup', 'Axe doigt inf', 'Axe doigt sup', 'Axe piston', 'Biellette inf', 'Biellette sup', 'Bouchon', 'Circlips 1', 'Circlips 2',
# 'Circlips 3', 'Circlips 4', 'Circlips 5', 'Corps', 'Doigt inf', 'Doigt sup', 'Joint bouchon', 'Joint piston', 'Piston']
# objects_anim=['Axe biellette inf', 'Axe biellette sup', 'Axe piston', 'Biellette inf', 'Biellette sup', 'Doigt inf', 'Doigt sup', 'Joint piston', 'Piston']
# objets_couleur=['MagentaF', 'MagentaF', 'VioletF', 'VioletF', 'VertF', 'Couleur5', 'Couleur5', 'TurquoiseF', 'Gris', 'Gris', 'Gris', 'Gris', 'Gris',
# 'Couleur1', 'Couleur7', 'Couleur7', 'Couleur2', 'Couleur6', 'Vert']
2022-10-25 01:42:30 +02:00
# Couleurs
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]]]
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]}
###############################################################################
# Mécanisme
2022-10-25 01:42:30 +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