Joint supporting pile of balls

Joint supporting pile of balls

fungus_among_us
Participant Participant
521 Views
2 Replies
Message 1 of 3

Joint supporting pile of balls

fungus_among_us
Participant
Participant

I apologize for the horrible title, I'm at a loss on the verbiage regarding this issue.

 

I am attempting to create an assembly that bears the appearance of an atomic model of a mercury atom. Here's an example of what I'm looking for: https://cdn.britannica.com/s:690x388,c:crop/74/22474-050-FE855824/Shell-atomic-model-shell-shells-el...

I can get VERY close to my goal by doing the following:

-Create a model of a ball

-Create an assembly, drag in 3 ball components

-Create a "ball" joint between component "A" and component "B" with an offset of the diameter of the ball.

-Create a "ball" joint between component "A" and component "C" with an offset of the diameter of the ball.

-Now things fall apart... I need to create a ball joint between components "B" and "C". This overdefines the assembly.

 

Naturally, I could use trig to calculate the absolute position of every ball in 3D space and handle every joint based on component "A", but there are 80 protons and 121 neutrons in mercury... Even if I was fast with trig, the time scope of this project would go beyond my limits 🙂

 

Any recommendations on how I might efficiently handle this?

0 Likes
Accepted solutions (1)
522 Views
2 Replies
Replies (2)
Message 2 of 3

jeff_strater
Community Manager
Community Manager
Accepted solution

I am not a nuclear physicist, but would it make sense to model the bonds between particles with a cylindrical body?  I'm nervous hearing you talk about using that many ball joints - not sure how the solver is going to react to that, TBH...  What I'm thinking of is more a molecular model than an atomic nucleus model, but perhaps that approach can help.  You might have to use custom Joint Origins to get the angles correct, and it might still require computing those angles ahead of time.  But, it might give you some extra geometry on which to hang joints...


Jeff Strater
Engineering Director
Message 3 of 3

fungus_among_us
Participant
Participant

D'oh, that got it. Applying the offset (as I was attempting previously) only works in a given axis, even though it is a "ball" motion.
By using a cylinder (length of which is set to the diameter of the ball), there is no offset in any confined axis. This prevents over-definition.
For future reference:

(Assuming you already have 3 balls, 3 cylinders, and the cylinder length equals the diameter of the balls)

  1. Create a ball joint between ball "A" and cylinder "A".
  2. Create a ball joint between ball "B" and cylinder "A".
  3. Create a ball joint between ball "B" and cylinder "B".
  4. Create a ball joint between ball "C" and cylinder "B".
  5. Create a ball joint between ball "C" and cylinder "C".
  6. Create a ball joint between ball "A" and cylinder "C".

Then proceed to add more as tetrahedrons, linking each ball with 3 other balls via cylinders.
Now to figure out how to automate this. Not much faster than trig! 🤣