DMEXTRUDEMODE and layers

The DMEXTRUDEMODE sysvar changes the behaviour of the DMEXTRUDE command. The help correctly states:

*when extruded outside the existing solid (left) the result depends on the value of the DMEXTRUDEMODE system variable, which is stored as the sum of the value of the selected options.

  • 0: the new solid is unified with the existing solid. There is no interaction with intersecting solids. This is the default option for 3D Modelling.
  • 1: a separate solid is created which is unified with intersecting solids.
  • 2: the new solid is unified with the existing solid and subtracted from intersecting solids.
  • 3: a separate solid is created and subtracted from intersecting solids. This is the default option for BIM.*

When DMEXTRUDEMODE is set to 0 (merge) BricsCAD also takes into account whether the layer of the "target" solid il lockedor not. In this case a new solid is created.

Apparently the CLAYER (current layer) is never considered (and this is not the CAD standard!). I think a more consistent/standard (alternative?) behaviour should be:

  • target solid layer == CLAYER --> merge solids
  • target solid layer != CLAYER --> a new solid created

Just curious to know other users opinion.

In the attached video the default behaviour.

Comments

  • I tested your scenarios in the latest BricsCAD V18.2.05.
    My findings are that new solids are always created on the current layer:

    • when DMEXTRUDEMODE = 1 or 3
    • when DMEXTRUDEMODE = 0 or 2 AND the layer of the existing solid is locked.
      Which is according to CAD standards, is it not?
  • Yes. Destination layer is correct but solids are not merged (two disjoined solids created).
    Anyway I guess is not easy to satisfy all conditions.

  • In case the layer of the existing solid is locked, the content of this layer cannot be modified: therefore a separate solid is created on the current layer. What else could you expect?

  • If the layer of the existing solid is the same of the current layer the two solid are merged.
    If the layer of the existing solid is different from the current layer a new solid is created.

  • Some months ago I have submitted a feature request regarding DMEXTRUDEMODE:

    To improve the _Auto option of the _DmExtrude command a new flag should be added to DMEXTRUDEMODE:
    4 (3rd bit):
    ON: Change solids that intersect with the created volume according to the 2nd bit.
    OFF: Do not change solids that intersect with the created volume and disregard the 2nd bit.
    ...
    It may even make sense to add more flags. The standard _Create and _Subtract options cannot be emulated with a DMEXTRUDEMODE setting.

  • Louis_Verdonck
    edited March 2018

    Hi Roy
    I think it is not a good idea to try to control all possible options through settings. Almost everything is already possible combining the current DMEXTRUDEMODE values and the options available by hitting the Ctrl-key. If the final result is not satisfactory, you can always use boolean commands to get what you want.
    Best regards
    Louis

  • Roy Klein Gebbinck
    edited March 2018

    @Louis Verdonck:
    In a scenario where the user usually wants the third option, and therefore has to hit Ctrl two times whenever he/she uses _DmExtrude, being able to fully customize the default _Auto option can make sense as it would avoid those two clicks.
    And I do believe the 'Create a new solid that does not interact with any other solids' option is missing and not exactly far-fetched.

    Another related idea: Perhaps the 'Tips' widget can have a different default option depending on previous inputs? Although that might conflict with what some other forum members refer to as 'muscle memory'.

This discussion has been closed.