Page MenuHome

Tool: Extrude, Dissolve and Intersect
Needs ReviewPublic

Authored by Germano Cavalcante (mano-wii) on Tue, Mar 24, 1:33 AM.
Tags
None
Tokens
"Love" token, awarded by Leul."Love" token, awarded by mattrossman."Like" token, awarded by CandleComet."Like" token, awarded by campbellbarton.

Details

Summary

This is an alternative solution for the much requested D5336: Destructive Extrude Operator.
The disadvantage of this solution is that it does not destroy coplanar geometry.
The advantages:

  • Uses the features of the translate operator (Snap, Auto Merge, Orientation).
  • The intersection is not limited to nearby geometry.

Solution:
An option called "use_dissolve_ortho_edges" has been added to the Extrude operator.
After insecting faces, this option dissolves the edges whose faces make an angle of 90 degrees.
This allows for a clean and inward extrude, but does not resolve the intersection of edges.

For the intersection of the edges, the option "use_automerge_and_split" was added to the Translate operator.
This option forces the existing AutoMerge & Split Edges feature.

With these new options, it was enough to make a macro and the new Tool.

Diff Detail

Repository
rB Blender
Branch
arcpatch-D7222 (branched from master)
Build Status
Buildable 7367
Build 7367: arc lint + arc unit

Event Timeline

A little video/gif showing this tool in action would be nice.

Campbell Barton (campbellbarton) requested changes to this revision.Tue, Mar 24, 6:53 AM

General works well, although I was able to cause an assert when testing:

bmesh_query.c:1973, BM_edge_exists(), at 'v_a->head.htype == BM_VERT && v_b->head.htype == BM_VERT'

Click and drag to extrude on this file.

Otherwise this patch looks good to me.

source/blender/bmesh/intern/bmesh_opdefines.c
1049

"90 degree" ?

Could say "whose faces form a flat surface"

source/blender/bmesh/operators/bmo_extrude.c
512–515

No need to copy normals.

source/blender/editors/include/ED_transform.h
160

Realize none of the other options are documented, even so, a short description of what this does would be nice.

This revision now requires changes to proceed.Tue, Mar 24, 6:53 AM
Germano Cavalcante (mano-wii) marked 3 inline comments as done.
  • Cleanup and Improve descriptions
  • Calculate an average normal (instead of using the individual normal for each face) This brings more predictable results with multiple selection.