Collisions

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
gdo35
Posts: 189
Joined: Wed Jan 25, 2012 7:25 pm

Collisions

Post by gdo35 »

Bonjour,

Je pense que ca viendra avec le module d'assemblage, mais existe-t-il aujourd'hui un autre moyen pour détecter les collisions entre objets ?

Merci,
++
gdo
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Collisions

Post by NormandC »

Salut,

Ça dépend ce que tu entends par collisions. Le terme suppose l'utilisation de mouvements, si ? Si c'est le cas, je ne crois pas que ça soit supporté. D'ailleurs, je serais surpris qu'il y ait dès le départ de la cinématique dans le module d'assemblage.

Si tu ne veux que détecter des interférences entre des pièces immobiles, alors il suffit d'appliquer une opération booléenne d'intersection entre ces formes, et d'analyser le résultat.
gdo35
Posts: 189
Joined: Wed Jan 25, 2012 7:25 pm

Re: Collisions

Post by gdo35 »

normandc wrote:Si tu ne veux que détecter des interférences entre des pièces immobiles, alors il suffit d'appliquer une opération booléenne d'intersection entre ces formes, et d'analyser le résultat.
Oui c'est bien cela que je souhaite faire ! Merci pour l'astuce, je n'y aurais pas pensé.
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Collisions

Post by NormandC »

Content que ma réponse soit utile.

Je n'y aurais pas pensé avant non plus ! Mais depuis près de 3 ans que je surveille de très près le développement de FreeCAD, et que je lis le forum des développeurs, j'ai acquis une assez bonne compréhension du fonctionnement sous-jacent des logiciels de CAO 3D en général. Même si très souvent je comprends que dalle aux discussions ! :D Les opérations booléennes sont abondamment utilisées pour de très nombreuses opérations, mais sont souvent masquées à l'utilisateur.

Par exemple je suis certain que dans Solid Edge (le soft que j'utilise au travail), le calcul d'interférence entre pièces utilise une opération booléenne d'intersection. Il y a d'ailleurs une option pour sauvegarder l'interférence sous forme solide.
gdo35
Posts: 189
Joined: Wed Jan 25, 2012 7:25 pm

Re: Collisions

Post by gdo35 »

C'est que ca mériterait presque un petit script python pour automatiser tout ca. :mrgreen:

Je vais regarder si ca peut se faire. ;)
User avatar
flachyjoe
Veteran
Posts: 1891
Joined: Sat Mar 31, 2012 12:00 pm
Location: Limoges, France

Re: Collisions

Post by flachyjoe »

Salut,
Après un petit test :

Code: Select all

import time

x=Gui.getDocument("Unnamed").getObject("Sphere").Object.Shape
y=Gui.getDocument("Unnamed").getObject("Sphere001").Object.Shape
t0 = time.clock()
z=x.section(y)
t1=time.clock()
z2=x.common(y)
t2=time.clock()

FreeCAD.Console.PrintMessage( t1-t0)
FreeCAD.Console.PrintMessage( t2-t1)
Il s'avère que pour savoir s'il y a ne collision entre 2 objets, il vaut mieux utiliser la section (et regarder si le nombre de segment est différent de zéro if (len(z.Edges)!=0):) plutôt que la différence...
- Flachy Joe -
Image
Post Reply