How do i remove a shell from a solid ?

I was making a hollow object by making the outside and then shelling (It's for a rotomolded plastic product so shelling is ideal) . After shelling I realised that I had left out some details. So I filled in the solid again using Boolean commands.
When I went to shell again BricsCAD will not let me because it says I still have a shell in there.
It is true, when I checked using the solidedit's check function, the shell is listed.

So is there a way of drilling down into a solid's hierarchy to remove elements (in particular, shells) ??

Comments

  • Not to my knowledge.
    Probably the DMSELECT command should offer a way to select (and tab-cycle through) a solid's shells.

  • Hello DFLY,

    If you are speaking about SOLIDEDIT Check option, which lists body's topology, Shell string you meet is nothing about SOLIDEDIT SHELL operation. Here shell is an ACIS concept of 3D Solid Boundary Represenation modeling meaning "an entire connected set of faces and/or wires." You can easily check it by running SOLIDEDIT Check on any 3D solid, i.e. on box. Speaking about Shell operation, the result is not same solid with "hollow" flag, but completely new solid geometry with thickness.

    When Shell operation is applied, turning back is not easy from my experience:
    1. Best variant is to store somewhere solid before shell (in other .dwg or solid in model space)
    2. Next is ERASE operation. You have to select all the faces from shell interior and call ERASE. In complex situations selecting is laboruous plus operation may fail
    3. Try to select external faces (for easyness you can call XFACES to extract them) and play with DMTHICKEN. It may work in some case
    4. If 1, 2 and 3 are not the case, body has to be recreated from scratch

    DMSELECT can help to select faces of side if transition between them is smooth. We have made some experiments to select faces with non-smooth transition but so far the research is rather academical and can be continued only by strong interest.

    If you want further assistance please open SR and attach your model.

    Best regards,
    Egor

  • I think there is a 5th option that should work:

    1. Create a large solid that completely envelops your model.
    2. Create an in-place copy of this new solid.
    3. _Subtract your model from one of the new solids.
    4. Separate the result: _SolidEdit > _Body > _seParate.
    5. You now have three solids.
    6. Erase the smallest (nested) solid.
    7. _Subtract the new solid that has a cavity from the unmodified new solid.
    8. You now have an unshelled copy of your original model.
  • Roy Klein Gebbinck
    edited August 2018

    @Egor Ermolin:
    With the _DmSelect command I am able to select all edges that define the interior faces of the cavity in a shelled solid. The step from there to selecting those (adjacent) faces seems relatively small. Perhaps it can even already be done?
    I would also argue that finding faces that are merely connected is easier than finding faces that are connected AND have a smooth transition.
    EDIT: And as you have mentioned ACIS is already aware of these 'connected set[s] of faces and/or wires'.

  • Hello Roy,
    your solution looks perfectly viable.
    But how did you manage to dmselect all edges belonging to an enclosed shell?
    (e.g. in case the cavity is too small to be found visually)

  • Thanks all for you suggestions and explanations. And I have now been fiddling with dmselect, it could be useful.

    By the way. I didn't repair that solid. but I had sliced it and one sliced part was error free so I mirrored it, and then copied it to a new file.

    After Egor's explanation, I'm pretty sure it was just file corruption.

  • @Knut Hohenberg:
    To select all the edges of the cavity you first have to select one of them as a 'seed' edge. It then follows that the cavity must be visible.

    The procedure:
    _DmSelect > _Selection > _sEed > Select a single edge + Enter > _Primitive > edge Network

  • OK, I thought you might have found a way to select invisible shells...

  • Egor Ermolin
    edited August 2018

    @Roy Klein Gebbinck said:
    With the _DmSelect command I am able to select all edges that define the interior faces of the cavity in a shelled solid. The step from there to selecting those (adjacent) faces seems relatively small. Perhaps it can even already be done?
    I would also argue that finding faces that are merely connected is easier than finding faces that are connected AND have a smooth transition.
    EDIT: And as you have mentioned ACIS is already aware of these 'connected set[s] of faces and/or wires'.

    Hello Roy,

    I see you applied "Edge Network" to select interioir cases. As I understand, your proposition is that first we select edges, and then select faces, which are adjacent to any selected edge. This may work, though may be some cases will fail. For the moment in DMSELECT there is no option to select faces by edges. Opposite is the case: if you select set of connected faces, option Loop will return its border edges (edges which belong one and exactly one edge from face).

    For ACIS I will accurately reformulate: Shell (ACIS object) describes not the interior, but all the faces. Usually body has one lump and one shell - the last contains all the faces in the body.

    I would also try to check Depression detection with providing some interior face as seed.

    Best regards,
    Egor

  • Hello Egor,
    selecting all faces belonging to selected edges would certainly be nice (I am somewhat used to how this works in blender, where a face gets automatically selected when you select all its edges), but what I miss more is an option to select all faces connected to a 'seed' face. This would partly solve the issue with shell selection - a full solution would include a way to select shells even if you cannot spot them.

  • Hello Knut,

    I've logged this enhancement request on face selection, we'll discuss its implementation with the team.

    Best regards,
    Egor

  • Roy Klein Gebbinck
    edited August 2018

    I hope we will see an improved Help section for the _DmSelect command for V19. The current Help is too sparse for such a complex tool.

  • Dear gentlemen,

    We are aware of DmSelect complexity and are experimenting with its interface in order to reduce complexity. I.e. we observed that preselection options Subset/Sample/Seed are superfluous, Subset/Seed are enough (where Seed may mean Sample upon the context). Right now the schedule to release is tight, but if we have some window in it, we may reconsider and deliver new DmSelect command interface to V19 (else later). It is advised not to use DmSelect in command line dialog, but use toolbar and ribbon buttons which cover the most popular options. Basically that was our intent: you run through complex options once, than make a button and use it.

    For the DmSelect help I agree that help should be expanded. What can be added: is usage of the buttons from Toolbar and programming custom button for user scenario.

    Now about request on selection of adjacent geometry. There is no common decision: in examples of this and other topics where users asked for selection of adjacent geometry, our experts see that existing DmSelect tools can do the job. I.e. in given case to select all Interior case one can use Depression option. So contra argue for adjacent geometry option is: DmSelect is complex, lets avoid adding new options with no argumented reason; for previous requests we see that existing DmSelect options give the result

    Thus in order to progress with adjacent geometry selection, I advice:

    • open SR, where we'll have argumented discussion (this is a Bricsys standard to work with user feature requests and bug reports)
    • provide example where DmSelect adjacent geometry option helps
      We'll review the workflow and see if problem can't be solved with existing tools

    Best regards,
    Egor

  • Roy Klein Gebbinck
    edited August 2018

    @Egor Ermolin:
    Thanks. The _Depression option works indeed.

    The procedure:
    _DmSelect > _Selection > _sEed > Select a single face of the cavity + Enter > _feaTure > _Depression

    Edit:
    The procedure does not work for every cavity. Example: a box with a hemispherical protrusion that has been 'shelled'.

This discussion has been closed.