|
|
Line 12: |
Line 12: |
| * See further details in proposal. | | * See further details in proposal. |
|
| |
|
| == Phase 1 == | | == Phase 1 Accomplishments (Feb 1st - May 1st 2020)== |
| FreeCAD macro for changing the lengths of Universal Axis objects
| | The 3D printer workbench allows for rapid design (5 minutes) of a 3D printer with any size frame, angle frame size, 3D printer corner size, axes, heated bed, and extruder - allowing the user to produce a design and to generate a cut list for metal rods and steel angle, as well as to generate the CAM files (STLs) for the 3D printed corners. |
| * Creates a [https://www.freecadweb.org/wiki/FeaturePython_Objects FeaturePython object] or [https://www.freecadweb.org/wiki/Scripted_objects Scripted object] 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
| |
| ** <strike>Belt Catcher Orientation</strike> - '''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 2 inch - as this is not simple [[Intensive Scalability]] of 8 mm version. Do this as at a later stage of the project - first stage restricted to 8 mm'''
| |
| ***'''For the 1" axis, please use the same design as found on the [[D3D Mega v19.12]] - but we can only use the Z axis to remain compatible with the existing D3D Pro components. We will need other mounting corner pieces for larger versions of the 3D printer. But the hybrid 8 mm - 1" version appears relevant as it allows a large bed to be used, allowing for max 2' 3D printers, but they can be very tall because the Z is strong. The vertical Z bed is important to enable future high temperature chambers.'''
| |
|
| |
|
| == Phase 2 ==
| | This allows for full flexibility of rapid design, turning the design process of any new configuration (frame size, angle iron size, 3D printed corner size) from a 24 hour+ project by skilled designers to a 5 minute project doable by novices. This is a great example of how custom, engineered design can be performed by non-experts, thereby taking a great leap towards democratized technology. |
| FreeCAD workbench for assembling multiple Universal Axis objects together
| |
| * Initialize workbench repository and codebase
| |
| * Add buttons to generate objects for designing 3D Printer:
| |
| *# Universal X Axis
| |
| *# Universal Y Axis
| |
| *# Universal Z Axis
| |
| *# Extruder
| |
| *# Heated bed - a box either 8x8" - 2" tall - or larger/smaller, 2" tall, just like you see in the picture at [[D3D Pro]]
| |
| * Generate these objects parametrically and programmatically in Python
| |
|
| |
|
| == Phase 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
| |
|
| |
|
| = Next Steps = | | ==Phase 2 (Second 90 day iteration)== |
| 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 [https://www.freecadweb.org/wiki/FeaturePython_Objects FeaturePython object] or [https://www.freecadweb.org/wiki/Scripted_objects 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
| |
| | |
| == Sprint 3 (Mon 2/24/19 - Sun 3/8/19) ==
| |
| * Add Frame button to Workbench
| |
| ** 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
| |
| | |
| =Phase 2 (Second 90 day iteration)= | |
| '''TODO:''' Need to reorganize this page, and section. | | '''TODO:''' Need to reorganize this page, and section. |
|
| |
|
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
General Requirements
- Support OSE Linux and FreeCAD 16
- If we can support 18 while not at the expense of 16, then great.
- Keep file size of parts low. See File Simplification for details.
- See further details in proposal.
Phase 1 Accomplishments (Feb 1st - May 1st 2020)
The 3D printer workbench allows for rapid design (5 minutes) of a 3D printer with any size frame, angle frame size, 3D printer corner size, axes, heated bed, and extruder - allowing the user to produce a design and to generate a cut list for metal rods and steel angle, as well as to generate the CAM files (STLs) for the 3D printed corners.
This allows for full flexibility of rapid design, turning the design process of any new configuration (frame size, angle iron size, 3D printed corner size) from a 24 hour+ project by skilled designers to a 5 minute project doable by novices. This is a great example of how custom, engineered design can be performed by non-experts, thereby taking a great leap towards democratized technology.
Phase 2 (Second 90 day iteration)
TODO: Need to reorganize this page, and section.
- Goal: Increase replicability of work accomplished in phase 1 (first 90 day iteration)
Deliverables
- Add more unit tests, documentation, and valuable refactors to existing ose-3d-printer-workbench.
- Increased documentation on existing patterns
- Library or framework of code containing encapsulating functionality common to all OSE workbenches (will be within
ose-3d-printer-workbench
, but designed to be ported out into a separate repo and project later)
ose-workbench-generator
using a project scaffolding tool like cookiecutter or yeoman to quickly generate new workbenches with requisite files and structure needed to reduce barrier to entry.
Stretch Goals: YouTube tutorial video series on FreeCAD Workbench Python Programming.
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.
Links