3D Printer Workbench Work Proposal

From Open Source Ecology
Revision as of 00:58, 23 January 2020 by Marcin (talk | contribs) (→‎Proposal)
Jump to navigation Jump to search

Problem Statement

Designing 3D printer variants with pre-designed OSE parts and modules in FreeCAD is time-consuming and cumbersome.

Solution

Develop a FreeCAD workbench to streamline the design of 3D printer variants using pre-designed OSE parts and modules.

Proposal

  1. FreeCAD macro for changing the lengths of Universal Axis objects
    • Creates a FeaturePython object or Scripted object from UniversalAxisSimple.FCStd file within repository allowing users to interact with object at a high-level and modify custom properties like Length.
    • Additional properties can be added to this object in a later phase:
      • Axis Orientation
        • X, Y, Z
      • Motor Orientation / Position
        • Left or Right
      • Belt Catcher Orientation - because in practice, we never end up following a convention and correct this with how we plug in wires into the controller. It is faster to change wires than to modify axis during the build.
        • Up or down
      • Rod size
        • 8mm, 1”, 2” Leave out the 1 and 2 inch - as these are not simple Intensive Scalability of 8 mm versionj. Do this as at a later stage of the project - first stage restricted to 8 mm
  2. FreeCAD workbench for assembling multiple Universal Axis objects together
    • Initialize workbench repository and codebase
    • Add 3 buttons to generate Universal Axis objects in different orientations:
      • 1) Universal X Axis 2) Universal Y Axis 3) Universal Z Axis
    • Need to copy and modify import part functionality in A2plus for our purposes Can we avoid A2+? Isn't that deprecated and replaced by A3 or something like that? We should not buid in dependence on unstable features of freecad
      • Main problem with using A2plus functionality as is:
        • Combines parts together removing the ability to manipulate individual pieces like lengths of rods
    • Prove out “assembling” existing FCStd files into a single document - Can we avoid Assembly functionality and simply do positional changes? Assembly is for power users, as we don't rely on assembly for the General Public Workflow
  3. Add Frame button to Workbench
    • Why start with frame as opposed to considering D3D Universal configurations first?
      • D3D pro configurations have more axes, are more tedious to resize, and will benefit more greatly from automation.
    • Generates frame from FCStd file in repository
    • Assume X YY ZZ configuration to start
      • Clicking Universal Y Axis button will generate 2 objects with default placements
      • Allow different configurations at a later phase (e.g. 4 Z axes for > 12” beds or 2 X axes)
    • Attach Axes to frame when clicked
    • Assume static and fixed frame size
      • Allow resizing frame at a later phase
    • Assume cubic frame shape
      • Allow rectangular shapes in a later phase
    • Determine if it makes sense to allow resizing axes individually when attached to cubic frame
  4. Assess progress, determine next steps, and plan next three sprints:
    • Enhance Universal Axis object with additional properties
    • Design and develop interaction between frame and axes when resizing frame
    • Explore workbench interactions when designing D3D Universal configurations (self-supporting 3 axes)

Execution

The above proposal is planned to be carried out over the course of three 2-week sprints.

Each sprint will culminate in a sprint demo consisting of a video recording posted on G Roques Log with an email sent to relevant stakeholders ensuring project meets goals.

Sprint Planning

Sprint 1 (Mon 1/27/19 - Sun 2/9/19)

  • FreeCAD macro for changing the lengths of Universal Axis objects
    • Initialize macro repository and codebase
    • Creates new document
    • Creates a FeaturePython object or Scripted object from UniversalAxisSimple.FCStd file within repository allowing users to interact with object at a high-level and modify custom properties like Length.

Sprint 2 (Mon 2/10/19 - Sun 2/23/19)

  • FreeCAD workbench for assembling multiple Universal Axis objects together
    • Initialize workbench repository and codebase
    • Add 3 buttons to generate Universal Axis objects in different orientations:
      • 1) Universal X Axis 2) Universal Y Axis 3) Universal Z Axis
      • Defaults placement to origin
    • Need to copy and modify import part functionality in A2plus for our purposes
    • Prove out “assembling” existing FCStd files into a single document

Sprint 3 (Mon 2/24/19 - Sun 3/8/19)

  • Add Frame button to Workbench
    • Generates frame from FCStd file in repository
    • Assume X YY ZZ configuration to start
    • Clicking Universal Y Axis button will generate 2 objects with default placements
    • Attach Axes to frame when clicked
    • Assume static and fixed frame size
    • Assume cubic frame shape
    • Determine if it makes sense to allow resizing axes individually when attached to cubic frame

Existing Work

There was a similar effort around late 2017 to early-to-mid 2018 by Steven Kaiser and Ruslan Krenzler with the D3D Workbench and Piping Workbench.

The D3D workbench was merely a start, and it so far has a frame only, but made of PVC pipe, which is not our main branch of development. Though, it's useful for anyone wanting to build with PVC.

This proposal is for a new branch of development related to the idea of a OSE 3D Printer FreeCAD workbench starting in early 2019.