Additional Option/Method for CreateSolid

Hi,

Sometimes CreateSolid method creates few closed volumes based on the input Breps.
Now, I am looking for a way/option when I can select to create only those closed volumes, created by all input breps.

Is fast solution possible?

Thanks,
Dmitriy

Hi @Dmitriy,

Sorry I am not following. Are you using RhinoCommon? What method are you calling?

– Dale

Hi @dale
yes, I am using Brep.CreateSolid in RC.
Solution I have now is as following:

  1. Get list of closed solids from CreateSolid
  2. For every solid go through all given limits by analyzing each face of the limit. At least one corresponding surface to be found within faces of the solid. If not - present solid is not created by using all given limits.

This is however an iterative way and can be rather slow in case of many faces. So, maybe, there is more efficient/faster method to check it.

Thanks,
Dmitriy

You could also just call Brep.CreateSolid for each Brep, instead of all at one time…

– Dale

Hi @dale,

Sorry, I am not following you. I am doing this for every Brep separately resulting from CreateSolid command.
However CreateSolid gives always all closed volumes, created by any given limits.

Thanks,
Dmitriy

Hi @Dmitriy,

I guess I don’t understand your original question - sorry.

– Dale

Hi @dale
I try to be more clear.

See file enclosed.

ToDale.3dm (108.5 KB)

Left side 6 limits are given. When using all of them in CreateSolid -> 2 closed breps are obtained (right).
But, red brep is formed using all 6 input limits, and blue one - only 5.
My question was referring to the most efficient way how to keep only red brep in the resulting list and skip a blue one.

Hope, now it is more clear.

Thanks,
Dmitriy

If you want to know which BREP has the same number of surfaces as the input BREPs have, why not just add up all the surfaces in the input BREPs and compare

Hello Jim,
Not sure I am following… Can you explain?

Thanks,
Dmitriy