Modelling negative space between components?

Hi,

I am designing my second ROV (underwater exploration vehicle), and in this design, it is crucial that I correctly estimate weight versus buoyancy, so that the final vehicle is neutrally buoyant and can be trimmed with minimum ballast. SOLIDWORKS provides accurate weight estimations, as well as the volume of every part. So, if for example the whole design weighs 3kg, and the volume of all the parts is 3L, then it means it will be neutrally buoyant (because 1L of water equals 1kg).

The issue is that the electronics compartment contains empty spaces (air), which also adds to the buoyant volume, and must be accounted for. However, SOLIDWORKS does not add this air to the final volume, because air is not a solid part. Here is a screenshot for reference.

Attaching a Pack&Go of this assembly - saved with SW 2021 Student Edition: https://ufile.io/p6yaav1t

I need a way to model the air inside this compartment, so I can set it’s density to 1.225 kg/m3, and then SOLIDWORKS will correctly account for it in the volume VS weight comparison.

Question is, how? Normally, such things are done with Cavity, but I tried it, and after 30 minutes of calculation SOLIDWORKS gave up. The geometry of all these electronic parts inside the compartment is simply too much. Even if it would work, it would increase the rebuild time to unacceptable levels.

I also tried an Equations approach - since the housing is cylindrical, I can create a virtual part (Air) of the same shape, calculate it’s volume, subtract the volume of the assembly (minus air part) from it, which should give me the volume by which I need to reduce this part. Then, use a Cut-Extrude inside the air part to remove the volume that accounts for all these other components. However, this creates circular references, and massively increases rebuild time.

Can anyone advise? What are some rebuild-friendly ways to monitor the volume of air inside this compartment as I’m working on it?

Excuse me, but isn’t air removed(or vacuumed out) from these ROV particularly for the reason that air can expand the further in depth you go and also because it can contain humidity which could damage your electronics..?

Yes, that can be done, I usually partially vacuum it out. In that instance, the “air” part would have a density of 0 kg/m^3. But I still need to know it’s volume, because that volume displaces water, and therefore adds to the buoyancy.

What if you were to calculate the volume of your electronics without the container, and then the volume your container can contain and then substract the volume of the electronics from the cylinder..?

That would be the way I would go, try and break down the volumes from the electronics and then substract them from the volume the container can contain. But honestly, I’m not an engineer and no expert.

Hah! My line of work!

Easy peasy:

  1. Create a new part in the assy, saving it as a Mold.
  2. In the mold part create a solid body encompassing the entire assembly.
  3. Using Insert->Features->Cavity, insert a cavity feature in the mold part.
    a) Select all the parts from the original assy.
    b) There will be two solid bodies created. Select the “Bodies to Keep” dialog and click the radio button of the outside body. (This discards the internal volume of air).
  4. Save the mold part and open in a separate window to edit.
  5. Create another body the same size as the mold body, but physically separate from the mold body.
  6. Using Insert->Features->Move, relocate the second body coincident with the mold body.
  7. Using Insert->Features->combine, subtract the mold body from the 2nd body;
    a) Choose the second body (not feature) as the main body.
    b) Select the original Mold body as the “Bodies to Combine”.
    c) In the operation type box, select Subtract.
  8. Change the material of the remaining body to water.
  9. Select Tools->Mass properties, and done!

Sorry, can’t get indenting to work.

This might be easier to read:
image.png

Yes, this was the second method I described in my original post. However, it creates circular references, and slows down rebuild a lot…

I mentioned in my original post that I tried this. The problem is the Cavity feature - due to the complexity of the electronics inside this compartment, it takes forever to load, and then fails. Even if I select just some components, not all (exclude wires and other small stuff), it still takes forever to rebuild.

Oh I get it now, you’re trying to have it calculated automatically everytime you change it so that you can continue adapting your ROV accordingly during the conception phase.

I’ll move along now :laughing:

So, create a configuration without the internal electronics.

:wink:

SW will have huge problem with it: ZTG.
Measure total volume of assembled electronic parts and substract from volume of cavity inside vessel which should be easy to calculate.

If you’re counting air, did you use “correct” density for all the wires, solder, epoxy etc?
If air will be vaccum out, shouldn’t mass from SW is correct?
Also volume displaced only depends on external of vessel.
What ever is inside only add to mass, not volume. Unless it’s filled with water.
So air inside is not part of displaced volume. It add to total mass.

So don’t pull your hair out try to calculate total mass and volume. There are too many variable, ie a bigger blob of solder.
Also density of “water” you’ll put the device into is not constant.
Assemble the thing and put it on a scale.

Could you do this via the BOM? You could create a custom property that lists the volume of all of the components. You would have to do the math manually, but at least all of the information would be in one place.

Yes, that is correct :smiley:

If I remove the electronics, then there is nothing to take up space anymore… It’s all the little bits and pieces that add up together. They have to be there. Not all of them, but enough to make Cavity feature rebuild for minutes, unfortunately.

I did put it on the scale on my V1 of this project - and my buoyancy estimations were off by 0.5 liters, which made the ROV sink like a stone. I finally fixed with LOTS of additional buoyancy foam, but it was a terrible solution. Which is why I now want to make a far better estimation, so that once the thing is built, I only need a few tens of grams of ballast, rather than kilograms (or worse, having to add foam).

The idea you suggested, I addressed in my first post - this works, but it slows down rebuild time to a crawl, and there is no easy way to suppress these calculations when they are not needed.

As for the weight of the air - yeah, you are correct it doesn’t really matter that much, it’s just a few grams anyway. But the volume of the air is absolutely critical.

If I don’t model this air/vacuum volume, then SW won’t report it in the total volume of the assembly. In other words, it is assuming that volume is filled with water. I need to know what the actual volume is there, so I can add it to the total volume at least.


Guys, I don’t mean to sound ungrateful, but you are suggesting stuff that I already tried, I wrote it all in my first post, and it doesn’t work because of the massively increased rebuild time… Please, read what I wrote there, save your time :unamused:

I could, but how do I find out the volume of the air/vacuum inside that electronics compartment?

IMO, you’ll have to determine a tolerance for your buoyancy(The ± values that it could vary)

Then you’ll have to breakdown your electronics into “assemblies” to calculate their volume, and then have the things that could vary, such as wires, fit into the previously determined tolerance.

When does it start ‘sinking like a stone’ and when does it ‘float too much’ are the “tolerances” that I speak of that you would need to determine.

Are you working in a part or assembly environment..? That will also change a few things

I think what SPerman suggested would be the “easiest” way to go. Have each component callout their total volume, and then use your BOM to do a sort-of equation out of it, that’s how I would process to be able to extract it to our ERP at least.

Let’s be real, you need a lot of precision in what you are doing right now, but there are too many things that could “vary” during production causing you to go on either side of your tolerance, which is why I believe you need to determine what is your tolerance.

Things that could vary include but are not limited to, weight, length of wires, any weldments, the air remaining in the container after your vacuuming, if the vacuuming is not controlled, etc…

You model the vessel empty. Subtract the volume of the components from the volume of the vessel. Yes, this will have to be done by hand, or in a spreadsheet.

d1" solid sphere, one steel, one gold. How much water does each displace?
d1" hollow steel sphere with 1/8" wall. How much water does it displace?
Fill the hollow steel sphere with water. How much water does it displace?
Make it a plastic hollow sphere. How much water does it displace?

“If I don’t model this air/vacuum volume, then SW won’t report it in the total volume of the assembly. In other words, it is assuming that volume is filled with water. I need to know what the actual volume is there, so I can add it to the total volume at least.”
I think you assumed too much.
Empty is 0 density. Not water, not air.

I’m saying all you need is solid volume of your vessel and total weight of everything. Weight/Volume = density.

Suppress the internal parts in the PV.

The volume you obtain by going through my procedure is the volume contained by the outside of the PV.

I do this ALL THE TIME…

Which one displace more water?
An empty nuclear sub?
Or same nuclear sub full load with 500 crew, 16 nuclear missiles and 100 torpedo?

Trick question:
How about empty 2L Coke bottle and a full one?

Wow… Is Frederick the only person here who realizes that so much time is being spent analyzing the trees that the forest is being completely missed?

The ONLY thing that matters for bouyancy force is the external volume. That means the volume of whater that runs out on the ground when you force the thing underwater in a tank that’s full to the brim. You know what? BOUYANCY FORCE IS ABSOLUTELY UNCHANGED, NO MATTER THE CONTENTS OF THE INSIDE. The bouyancy force absolutely always matches only the amount of water displaced by the outside closed volume. Your screenshot shows a simple cylindrical shape with a dome. Lke 5 dimensions and 5 minutes and I could calculate your buoyancy force within 5%. Then the thing to check to see if it’s neutrally bouyant is the mass of the whole thing. If the mass is the same as the mass of water displaced, it will be neutrally bouyant. It doesn’t matter if the mass inside is made of air, helium, vacuum, water, lead, tungsten, or whatever combination of materials. As long as that total mass is the same as the total mass of the water on the floor, it will be neutrally bouyant. If you somehow added extra bouyancy to your last model due to the “air inside”, no freaking wonder it sank like a rock.

Thanks for the advice. Yes, indeed I do have a range of buoyancy that I’m trying to fit into. The displacement must be in the range of 20-120 grams positive (higher than the weight), so that the difference can be brought down to 0 with additional lead weighs after empirical testing. The most important thing is to avoid having a negative difference, because adding floats is a lot more difficult. I am working in an assembly environment.

Having each component callout their volume is possible, but this unfortunately also slows down rebuild. If I create a custom property “Volume” and set it to “SW-Volume@Part.SLDPRT”, then this has to be evaluated every rebuild. With hundreds of parts in the model, it really adds up. I am not sure if it is possible to suppress it somehow when it is not needed?

Getting that solid volume of the vessel is the exactly the problem. I already have the solid volume of all the components. But I don’t have the solid volume of the air inside the compartment.

Josh, I design boats for a living, and I have been involved with buoyancy calculations for 8 years now. I even wrote a commercial add-in for SW to aid buoyancy calculations (unfortunately it requires a very different workflow and doesn’t work for this ROV project). So trust me when I say, I understand how buoyancy works. I know that it doesn’t matter what the inside is filled with. But I need it to be filled with something so that SW reports it in the Volume section of Mass Properties report.

Clearly I have oversimplified the issue in my initial post grumph The assembly I showed and posted a link to, is just a part of the ROV, I thought that was obvious. The whole ROV looks like this (work in progress):

There are many parts here, with geometry way more complicated than a simple cylinder. Do you think it’s so easy to manually calculate the total volume of the assembly now? At least for me it isn’t. So I let SW do it, and compare these two numbers in the Mass Properties report for the whole assembly:

If the numbers match, I have neutral buoyancy.

But (again), this report doesn’t take in account the air/vacuum inside the sealed compartments. Which is why I am looking for a rebuild-friendly way to fill it with a dummy solid with a 0 density that would add up to this Volume report.

Filling the whole compartment with that dummy solid doesn’t work, because then it overlaps with existing components inside that cylinder, and the Volume report will be too high. Cavity feature would fix this and give a very accurate and correct volume figure, but it takes too long to rebuild.

So the way you are suggesting - how exactly would I implement it here? What I understood so far:

  1. Create dummy geometry to measure the volume of the cylinder of that compartment (cylinder);
  2. Add that volume to the volume of the rest of the assembly;

Correct me if I’m wrong.

But how exactly do I make this happen in SW? How do I tell the Mass Properties report to exclude the volume of the components inside that cylinder and use that dummy geometry/solid instead?

If this is done not via Mass Properties, but through Custom Properties, outputting it to BOM like AlexLachance suggested, then it has to be done for every single component. Viable, but a lot of work, and massively increases rebuild time.

If done via Equations, it is somewhat less work, but also increases rebuild time a lot.

And if done manually, it is very labor intensive.

So we’re back to square one - unless I misunderstood what you guys are suggesting. I hope this additional explanation shows that I understand how buoyancy works, you don’t need to explain that, I am just asking for suggestions how to implement this calculation in SW in a convenient, automated and rebuild-friendly way.

“Getting that solid volume of the vessel is the exactly the problem. I already have the solid volume of all the components. But I don’t have the solid volume of the air inside the compartment.
Clearly I have oversimplified the issue in my initial post grumph The assembly I showed and posted a link to, is just a part of the ROV, I thought that was obvious. The whole ROV looks like this (work in progress)”
**