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?
- Workflow
- Shortcuts and Access
- Functionality Explanation
- Face Selection with Overlay
- Interactive Extrusion
- Unified Mode
- Bevel or Chamfer
- Floating Help and Visual Feedback
- Normals in Adjacent Faces
- Key Code Snippets
- Suggested Images
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¶
- Select a mesh object.
- Activate the "Paneling" tool from the pie menu (Shift+W) or sidebar panel.
- Select faces:
- Click on a face: single selection
- Shift+Click on multiple faces: multiple selection
- Release Shift: automatically confirms multiple selection
- Spacebar: also confirms multiple selection
- Control the extrusion:
- Move mouse up: increases extrusion amount
- Move mouse down: decreases extrusion amount
- Shift: fine precision control
- Ctrl: activates bevel mode on the top face
- Release Ctrl: maintains the bevel and returns to extrusion mode
- D: unifies adjacent panels into a single object
- Left click: confirms the operation.
- 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.