mirror of
https://forge.apps.education.fr/blender-edutech/lecteur-3d-cinematique.git
synced 2024-01-27 09:43:12 +01:00
72 lines
2.9 KiB
Python
72 lines
2.9 KiB
Python
|
import bge # Bibliothèque Blender Game Engine (BGE)
|
||
|
import math
|
||
|
import cine # Bibliothèque du player 3d d'analyse de cinématique
|
||
|
|
||
|
###############################################################################
|
||
|
# batoncolle.py
|
||
|
# @title: Player 3D cinématique du baton de colle
|
||
|
# @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
|
||
|
#
|
||
|
# 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', 'Support', 'Colle', 'Bouton', 'Bouchon']
|
||
|
objects_anim=['Support', 'Colle', 'Bouton', 'Bouchon']
|
||
|
|
||
|
objects_dict={'Corps' : [1, '1 : Corps', 'Color-5', ['Repere A']],
|
||
|
'Support' : [2, '2 : Support', 'Color-2', ['Repere B']],
|
||
|
'Colle' : [3, '3 : Colle', 'White', []],
|
||
|
'Bouton' : [4, '4 : Bouton', 'Color-4', []],
|
||
|
'Bouchon' : [5, '5 : Bouchon', 'Color-3', []]}
|
||
|
|
||
|
# Couleurs
|
||
|
|
||
|
colors=[['Color-1', [0.202, 0.114, 0.512,1]],
|
||
|
['Color-2', [0.051, 0.270, 0.279,1]],
|
||
|
['Color-3', [0.799, 0.031, 0.038,1]],
|
||
|
['Color-4', [0.799, 0.130, 0.063,1]],
|
||
|
['Color-5', [0.8, 0.619, 0.021,1]],
|
||
|
['Color-6', [0.246, 0.687, 0.078,1]],
|
||
|
['Color-7', [0.800, 0.005, 0.315,1]],
|
||
|
['Color-8', [0.75,0.751, 0.75,0]]]
|
||
|
|
||
|
colors_dict={'Color-1' : [0.202, 0.114, 0.512, 1],
|
||
|
'Color-2' : [0.051, 0.270, 0.279, 1],
|
||
|
'Color-3' : [0.799, 0.031, 0.038, 1],
|
||
|
'Color-4' : [0.799, 0.130, 0.063, 1],
|
||
|
'Color-5' : [0.8, 0.619, 0.021, 1],
|
||
|
'Color-6' : [0.246, 0.687, 0.078, 1],
|
||
|
'Color-7' : [0.800, 0.005, 0.315, 1],
|
||
|
'Color-8' : [0.75,0.75, 0.75, 0],
|
||
|
'White' : [0.8, 0.8, 0.8, 1]}
|
||
|
|
||
|
###############################################################################
|
||
|
# Mécanisme
|
||
|
###############################################################################
|
||
|
|
||
|
# 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
|