Breakdown Strategy

This page defines a process for breaking down the development work of a workbench.

  1. Initialize Workbench

  2. Make Parts

  3. Parameterize Parts

  4. Attachment

  5. Cut List Generation

  6. CAM File Generation

If you have multiple developers, then work on separate parts in parallel:

Breakdown Strategy for Multiple Developers

Breakdown Strategy for Multiple Developers

Important

Each step in the above process may not apply to all parts depending upon requirements.

1. Make a New Workbench

  1. Use the osewb make workbench command to make a new workbench.

  2. Create a git repository and host it on a centralized platform like GitHub.

2. Make Parts

  1. Add packages for each part in the part package and corresponding part classes.

  2. Add icons for each part in the icon package.

  3. Add packages for each part in the command package and corresponding command classes that call the part classes.

  4. Register that command in the command registry module and associate it to the main toolbar.

3. Parameterize Parts

  1. Add packages for each part in the model package and corresponding model classes.

  2. Add packages for each part in the part feature package and corresponding part feature creation functions.

  3. Refactor the corresponding command class to call the newly created part feature creation function instead of the part classes.

4. Attachment

  1. Add packages for each attachment relationship in the attachment package and corresponding attachment functions.

  2. Refactor the corresponding command class to call the attachment function, and refactor part feature creation function, model, and part classes as needed.

5. Cut List Generation

  1. Add commands for generating a cut list.

  2. Modify the build_cut_list function as needed for each part.

6. CAM File Generation

  1. Modify part classes with as much detail as needed for CAM file generation. If a lot of detail is needed, then refactor the part class to support making a simplified or detailed version.

  2. If needed, created a new command for exposing the detailed version of the part and expose that to the user through the main menu while the main toolbar exposes the simplified version for modeling purposes.