Ce commit est pour le calcul du frottement avec les matrices de contact de Parasolid et l'amélioration de la visualisation de ce type de matrice.
J'ai ajouté les fonctionnalités suivantes pour la PSkin :
Il reste à adapter la visualisation pour visualiser les territoires de contact pour tuner la profondeur de contact !
Il est possible de faire du contact avec frottement désormais avec des géométries issues de Parasolid. J'ai également complété l'interface de la PSkin pour pouvoir calculer la matrice de raideur tangente full analytique (terme géométrique en plus). Cependant, il semble qu'il y ait toujours un soucis de signe “-” quelque part dans la version actuelle si on a une PSkin avec des faces d'orientation différentes : dans le tubeV1, deux faces possèdent des normales d'orientation opposées par rapport à la PSkin, tandis que dans le tubeV2, toutes les normales sont dans le bon sens.
Afin de rendre l'opérateur initiale plus performant, j'ai ajouté les caractéristiques suivantes :
N'oubliez pas que si la profondeur de contact est négatif (par défaut !), ces tests là sont purement désactivés.
Les performances dépendent fortement du cas test mais j'ai utilisé le procédé d'hydroformage (tube T : 4 x 80 x 120) pour faire les comparatifs entre la version en série optimisée Parasolid et la version en série précédente Parasolid. Le solveur linéaire est le DSSSolver.
[a]:mtParasolid/drawables/PSkinDataSet.cpp [a]:mtParasolid/drawables/PSkinDataSet.h [r]:
[a]:mtParasolid/tests/tubeV1Friction.py [a]:mtParasolid/tests/tubeV2.py [a]:mtParasolid/tests/tubeV2Friction.py [a]:mtParasolid/tests/tubeV2.xmt_txt [a]:mtParasolid/tests/cubeblockFriction.py [a]:mtParasolid/tests/cubecylFriction.py [a]:mtParasolid/tests/cubesphereFriction.py [rename]: mtParasolid/tests/tube.py => mtParasolid/tests/tubeV1.py [rename]: mtParasolid/tests/tube.xmt_txt => mtParasolid/tests/tubeV1.xmt_txt
— gaëtan 2016/10/01 16:00