Skip to content

Interactive Paneling - Complete Documentation

PLACE IMAGE OF THE SELECTED FACE OVERLAY AND CREATED PANEL IN THE 3D VIEWPORT HERE

The "Interactive Paneling" tool in DAMTools allows creating extruded panels from selected faces with interactive mouse control, ideal for creating details in mechanical designs, spaceships, robots, and architectural structures.


Index


What is Interactive Paneling?

It allows selecting one or more faces of an object and creating new extruded objects from these faces, with interactive control of the extrusion amount and the ability to add bevels or chamfers to the top faces. It is ideal for creating panel details in mechanical designs and sci-fi models.

PLACE IMAGE OF THE SIDEBAR PANEL WITH THE "Paneling" OPTION IN FOCUS HERE


Workflow

  1. Select a mesh object.
  2. Activate the "Paneling" tool from the pie menu (Shift+W) or sidebar panel.
  3. Select faces:
  4. Click on a face: single selection
  5. Shift+Click on multiple faces: multiple selection
  6. Release Shift: automatically confirms multiple selection
  7. Spacebar: also confirms multiple selection
  8. Control the extrusion:
  9. Move mouse up: increases extrusion amount
  10. Move mouse down: decreases extrusion amount
  11. Shift: fine precision control
  12. Ctrl: activates bevel mode on the top face
  13. Release Ctrl: maintains the bevel and returns to extrusion mode
  14. D: unifies adjacent panels into a single object
  15. Left click: confirms the operation.
  16. ESC/Right click: cancels the operation.

PLACE GIF OR IMAGE SEQUENCE OF THE PANELING WORKFLOW HERE


Shortcuts and Access

  • DAMTools Pie Menu (Shift+W): "Paneling" option in the TRANSFORM section.
  • DAMTools Sidebar Panel: "Create Interactive Panel" option.
  • Operator: DAMTools.paneling

Functionality Explanation

Face Selection with Overlay

  • When hovering over a face, it's highlighted with an orange overlay.
  • Already selected faces are shown in blue.
  • Multiple faces can be selected with Shift+Click.
  • Releasing the Shift key automatically confirms the selection and switches to extrusion mode.

Interactive Extrusion

  • Mouse movement controls the extrusion amount (up increases, down decreases).
  • A new object is created for each selected face (or unified group).
  • Extrusion follows the normal of each selected face.
  • The interface displays the current extrusion value.

Unified Mode

  • Pressing the "D" key unifies adjacent selected faces into a single object.
  • Ideal for creating more complex panels that span multiple faces.
  • The overlay shows the current mode (Individual/Unified).

Bevel or Chamfer

  • Holding Ctrl scales the top face of the panel inward.
  • Mouse movement controls the bevel amount (up increases, down decreases).
  • Releasing Ctrl maintains the bevel and returns to extrusion control.
  • The interface displays the current bevel value.
  • You can alternate between controlling extrusion and bevel as needed.

Floating Help and Visual Feedback

  • Floating text near the mouse with instructions and available options.
  • Dynamic overlay showing selected faces and current state.
  • Information about the current mode (Individual/Unified).
  • Visual indicators for bevel and extrusion state.

Normals in Adjacent Faces

  • Improved handling of normals in adjacent faces to avoid issues with shared edges.
  • Use of "even offset" to maintain uniform thickness in extrusions.
  • Respects individual face normals even when they share edges.

Key Code Snippets

Selection and Overlay Drawing

def draw_callback_px(self, context):
    # Draw faces under cursor and selected faces
    # with different colors for visual feedback

Panel Extrusion with Improved Normal Handling

def _extrude_panel(self, panel_obj, amount, bevel=False, bevel_amount=0.0):
    # Extrude following normals with uniform thickness
    bpy.ops.transform.shrink_fatten(
        value=amount,
        use_even_offset=True  # Improves handling of adjacent faces
    )

    # Apply bevel if activated
    if bevel_amount > 0:
        bpy.ops.transform.resize(
            value=(1-bevel_amount, 1-bevel_amount, 1-bevel_amount),
            orient_type='NORMAL'
        )

Adjacent Panels Unification

def _group_adjacent_faces(self):
    # Group adjacent faces to create a single object
    # when unified mode is activated

Automatic Confirmation on Shift Release

# Detect when Shift key is released after a multi-selection
elif event.type in {'LEFT_SHIFT', 'RIGHT_SHIFT'} and event.value == 'RELEASE':
    # If there are selected faces, confirm selection and move to extrusion
    if len(self.selected_faces) > 0:
        self.current_state = 'EXTRUDE'
        self._recreate_and_extrude_panels()

Suggested Images

  • PLACE IMAGE OF THE FACE SELECTION OVERLAY IN THE 3D VIEWPORT
  • PLACE GIF OF THE INTERACTIVE EXTRUSION PROCESS
  • PLACE COMPARATIVE IMAGE OF INDIVIDUAL VS UNIFIED MODE
  • PLACE IMAGE OF PANELS WITH AND WITHOUT BEVEL
  • PLACE IMAGE OF THE SIDEBAR PANEL WITH THE OPTION IN FOCUS
  • PLACE IMAGE OF THE DAMTools PIE MENU WITH "Paneling" IN FOCUS
  • PLACE IMAGE OF EXTRUSION OF ADJACENT FACES WITH CORRECT NORMALS

For technical details and explanation of each file, see the technical documentation in the [DOCUMENTATION] folder.