Creating Joints on assembly meshes

Hey friends,

I’m trying to put together a mesh of a wing I made for testing purposes and realized I don’t know how to make joints. After researching a bit, I realized I may be the first person to wonder about this.

In the aerospace/aeronautics industry where I do work we almost never use unstructured solid meshes. Virtually everything is shells, beams, springs/bushes, baris, and rods. This is for performance purposes in every sense that word applies, as for spacecraft in particular, we do lots of dynamic analyses and those output files can get quite inconvenient for big meshes.

In femap/patran/ansaMeta/Mypermesh/abaqus, you can just connect nodes together with 1d elements to represent rivets. This method is only really acceptable for very carefully made meshes with precisely controlled element sizes but it’s very common in aircraft.

I would merely like to attach the skin to the spars with 1d elements as shown here, but I don’t know of any way to do this in prepomax, and doing this with text injection would be horrifically slow.

Do any of you have any ideas on how I should do this?

I went into work and did it in femap to show more clearly what I’m looking to do. This was extremely easy to do in femap, even doing them one element at a time.

Much to my delight/horror, I have found a way to do this and it’s pretty bad.

I think if I make a reference point between every two fastened nodes (which is an excellent feature by the way thank you!) and then I can make a rigid between the two points! This is a lot of effort and will need as many reference nodes as there are fasteners.

I believe I will not be able to recover element forces on these rigids, making this quite unhelpful for postprocessing.

Considering the element types available in CalculiX (no easy fasteners like in Abaqus, unfortunately), 2-node springs might be the best. They aren’t supported in PrePoMax yet but their definition in the .inp files is pretty simple so they could make sense for such connections.

So, typically, in nastran which is the solver my industry uses most of the time, we don’t use “true springs” anymore, we did in the 80s but not anymore.

Nowadays we use beams and bars. I know for certain that calculix has those.

Yes, but CalculiX doesn’t have true 2D and 1D elements. They are all internally expanded to solids. For shells, it’s usually not a problem but it’s troublesome for beams/trusses. Springs seem to be the easiest choice here but of course you could try using beams or trusses (also not yet supported in PrePoMax and their manual definition can be more tedious).

I would probably advise you to use FreeCAD FEM with Mystran solver based on Nastran but FreeCAD FEM doesn’t support mixed meshes for now.

I understand that they are not “true” elements but for now they are far better than nothing, and I’m okay backing out forces from element stresses if I must use section property defined beams/bars as abaqus does.

I am actually one of the developers and maintainers of mystran! I’m here using prepomax to evaluate for usage at my job for some fairly exotic large deflections and buckling work we’re doing and we love the prepomax UI.

The fact that freecad doesn’t support mixed meshes is absolutely why I am here, as I’ve made scripts and tools using its API in the past but my coworkers absolutely loathe that process.

The only reason we haven’t switched over to prepomax and calculix for all kinds of stuff is this feature disparity; we very much would like the ability to deal with joints in a slightly better way. In fact I actually have no idea how anybody does analysis on anything more than one part at this point.

I’ll see if this method of using rigids and central control points works on a small enough scale first. It’s a lot of work.

I now actually think this method, with a very small amount of automation, would work very well for non rigids!

This still allows the paradigm of keeping things geometry defined, which is a soft design requirement for this software, as it keeps associativity to the points rather than the nodes.

You can use *EL FILE, SECTION FORCES to get forces instead of stresses for beam elements.

You could also use one ref point connecting two sides in multiple points (select all the points as a region for rigid body constraint):

Thank you! I didn’t know you could do that.
And do you know if you can get resultant forces through a big rigid like that? You can do it in nastran with an entry called GPFORCE and then doing coordinate transformation math, but I don’t know about calculix. If so I’ll try it!

And do you know if when I make beam elements in the deck, are they rendered as visible in prepomax even if they aren’t selectable?

Would anybody here be able to let me know if it’s a bug that certain constraints don’t draw their lines to every node they are connected to?

That will be more tricky. Ref points themselves only provide reaction forces when BCs are applied to them. But you could try attaching one node spring (SPRING1) to that ref point.

You can add beams using built-in Keyword Editor but they won’t be visible until you open the results.

I think that it’s not a bug and those lines are generated in a smaller number (not for every node) to avoid cluttering and slowing down the viewport. You could see that by applying the constraint to all nodes on a certain face.

1 Like

It’s certainly struggling. I don’t think the method I did worked at all. When I run a fixed modal, the skin isn’t attached to the spars at all, implying this method is completely nonfunctional.
Are you aware of any other way to do this?
How did you make that region plot in your post? Is there a way to pick the nodes I put in a nodeset directly?

If I need to create faces fine enough such that I could select only the nodes on one element, then I’m not even really meshing it in prepomax anymore, I’m meshing it in the CAD software.

What if you remove the rigid body constraints you created initially (those with ref point in the middle between two nodes) and leave only the one connecting all the nodes in the model that should be connected (like in my example - the corners were clearly connected) ?

Regarding the selection, there are multiple ways. It can be based on vertices from the CAD geometry (what I used) or nodes from the FE mesh. You can create a node set containing multiple mesh nodes and select it for the rigid body constraint (instead of Selection for Region).

Could you post the model to take a look?. This aproach worked for me some days ago when searching for a a fast way to apply rivets. I defined two separated kinematic couplings but they had the ref in commond. Reactions forces can be measured directly as sumation on the each Nset separately.

@ANYS here you are, if you’ve gotten this to work I’d love to know how.
At this point, it feels to me like there’s just no way to attach more than one part together at all. I can’t click individual nodes to make the rigids, it’s very frustrating.

I’ll post another image in another reply after this showing the boundary conditions


here is the modeling conditions, as you can see it should be attached where the rigids are

Can you try with one rigid body constraint (one ref point) including all those points ? I guess you can’t share the file with this wing model for some testing ?

I can confirm this is a feature :slight_smile:

I am sorry that there are no connection capabilities in PrePoMax at the moment. If there is enough pressure, I might start adding some. At least rigid connections between selected points would be easy to add.

2 Likes

This would be soooooo useful ! :slight_smile: