Path Pocket 3D

From FreeCAD Documentation
Jump to navigation Jump to search

This documentation is not finished. Please help and contribute documentation.

GuiCommand model explains how commands should be documented. Browse Category:UnfinishedDocu to see more incomplete pages like this one. See Category:Command Reference for all commands.

See WikiPages to learn about editing the wiki pages, and go to Help FreeCAD to learn about other ways in which you can contribute.

Path Pocket 3D.svg Path Pocket 3D

Menu location
Path → 3D Pocket
Default shortcut
Introduced in version
See also


This command inserts a path Path 3DPocket.svg 3D Pocket object into the Job. This operation takes into account the bottom surface of the pocket, as well as selected walls that are not vertical. In its current state, this operation is used to rough out a pocket with non-vertical walls and/or non-horizontal bottom. A common finishing technique is to use a ball end mill with the experimental Path Surface.svg 3D Surface operation.

Path 3D Pocket Sample.png

Sample image of 3D Pocket operation used to clear cylindrical battery holder.


Creating a 3D Pocket

  1. From within a Job, select one or more Faces from the Job Model to include as the Base Geometry.
  2. Invoke the Path 3DPocket.svg Pocket 3D or select PathPath 3DPocket.svg Pocket 3D command from the top menu.
  3. Choose a Tool controller from the pop up selection dialogue window.
  4. Add or subtract Base Geometry elements as needed to configure the Operation.
  5. Check the Depths tab to ensure the Start Depth, Finish Depth, and Step Down percentage are correct. The Final Depth is determined by the Body Geometry selection and is not modifiable.
  6. Check the Heights tab to ensure the Safe and Clearance Heights are appropriate.
  7. Check the Operation tab where the Tool controller can be re-selected, the Cut mode can be configured for Climb or Conventional milling, the Pattern can be set, the Step Over percentage can be adjusted, and Pass Extension can be applied.
  8. Click Apply to observe the milling path for the passes of the Operation. Adjust parameters until satisfied with the Operation.
  9. Click OK to save the Operation.


  • All paths generated from this operation are based on a standard end mill using the diameter of the tool you selected for this 3D Pocket operation.
  • Ball end mills and other shapes are not respected for path generation even if selected as the tool for this operation.


  • Use the DataAdaptive Pocket Finish property to attempt to minimize air milling below a 3D Pocket in cases where the pocket is a hole through the model.
  • Use the DataAdaptive Pocket Start property to attempt to minimize air milling upon entry to the pocket. For example, look at the sample image above in the Description section of this page. In order to reduce the air milling above that 3D Pocket, toggle this property to True and the paths will begin closer to the pocket, much nearer to where the pocket actually begins. See the following image and note the difference in the path start height. The air milling is reduced.

3D Pocket Sample Adaptive Start.png

Sample image of 3D Pocket operation used to clear cylindrical battery holder with the Adaptive Pocket Start enabled in order to reduce air milling upon entry.

  • If you wish to process the entire model and stock as a whole, use the DataProcess Stock Area property set to True with no Base Geometry selected.




Note: It is suggested that you do not edit the Placement property of path operations. Rather, move or rotate the Path Job model as needed.

  • DataPlacement: Overall placement[position and rotation] of the object - with respect to the origin (or origin of parent object container)
    • DataAngle: Angle in degrees applied to rotation of the object around Axis property value
    • DataAxis: Axis (one or multiple) around which to rotate the object, set in sub-properties: X, Y, Z
      • DataX: X axis value
      • DataY: Y axis value
      • DataZ: Z axis value
    • DataPosition: Position of the object, set in sub-properties: X, Y, Z - with respect to the origin (or origin of parent object container)
      • DataX: X distance value
      • DataY: Y distance value
      • DataZ: Z distance value
  • DataLabel: User-provided name of the object (UTF-8)


  • DataClearance Height: The height needed to clear clamps and obstructions
  • DataFinal Depth: Final Depth of Tool- lowest value in Z
  • DataFinish Depth: Maximum material removed on final pass.
  • DataSafe Height: The above which Rapid motions are allowed.
  • DataStart Depth: Starting Depth of Tool- first cut depth in Z
  • DataStep Down: Incremental Step Down of Tool


  • DataOffset Pattern: Clearing pattern to use. (Select in which manner the horizontal movements should be done.)


  • DataActive: Make False, to prevent operation from generating code
  • DataBase: The base geometry for this operation
  • DataComment: An optional comment for this Operation
  • DataCoolant Mode: The coolant mode for this operation.
  • DataCycle Time: The cycle time estimation for this operation.
  • DataTool Controller: Defines the Tool controller used in the Operation
  • DataUser Label: User assigned label


  • DataAdaptive Pocket Finish: Use adaptive algorithm to eliminate excessive air milling below planar pocket bottom.
  • DataAdaptive Pocket Start: Use adaptive algorithm to eliminate excessive air milling above planar pocket top.
  • DataCut Mode: The direction that the toolpath should go around the part ClockWise (CW) or CounterClockWise (CCW)
  • DataExtra Offset: Extra offset to apply to the operation. Direction is operation dependent.
  • DataHandle Multiple Features: Choose how to process multiple Base Geometry features.
  • DataKeep Tool Down: Attempts to avoid unnecessary retractions.
  • DataMin Travel: Use 3D Sorting of Path
  • DataProcess Stock Area: Process the model and stock in an operation with no Base Geometry selected.
  • DataStart At: Start pocketing at center or boundary
  • DataStep Over: Percent of cutter diameter to step over on each pass
  • DataZig Zag Angle: Angle of the zigzag pattern


Note: Rotation is not available for 3D Pocket as of 0.19.

  • DataEnable Rotation: Enable rotation to gain access to pockets or areas not normal to Z axis.

Start Point

  • DataStart Point: The custom start point for the path of this operation.
    • DataX: X distance value
    • DataY: Y distance value
    • DataZ: Z distance value
  • DataUse Start Point: Make True, if manually specifying a Start Point. Set the start point in the property data Start Point field.




See also: FreeCAD Scripting Basics.


#Place code example here.