G Roques Log: Difference between revisions
(Add entry for Jan 25 2020) |
|||
(121 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{RightTOC}} | |||
= What is G working on? = | |||
{{Hint|I'm currently working on a [https://ose-workbench-platform.readthedocs.io/en/latest/ platform for OSE workbenches using FreeCAD]. | |||
https://ose-workbench-platform.readthedocs.io/en/latest/ | |||
https://github.com/gbroques/ose-workbench-platform | |||
== 3D Printer Workbench == | |||
The 3D Printer workbench is the best example of a workbench using the platform. | |||
[https://github.com/gbroques/ose-3d-printer-workbench GitHub Repository] | |||
[https://github.com/gbroques/ose-3d-printer-workbench/commits/master Commit Log] | |||
[https://github.com/gbroques/ose-3d-printer-workbench/projects/1 Project Board] | |||
[https://github.com/gbroques/ose-3d-printer-workbench/issues Issue Log] | |||
[https://github.com/gbroques/ose-3d-printer-workbench/milestone/1 Milestone for First Release] | |||
}} | |||
= Time Log = | = Time Log = | ||
<html><iframe width=" | <html><iframe width="450" height="200" src="https://osedev.org/wiki/G?start=9/1/2019"></iframe></html> | ||
== 3D Printer Workbench Installation and Demos Playlist == | |||
<html> | |||
<div style="text-align: center"> | |||
<iframe width="360" height="215" src="https://www.youtube.com/embed/videoseries?list=PLesiP49zG6slgizuNFsdmGeLAzDo3H04c" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> | |||
</div> | |||
</html> | |||
=Sat, July 27- Sat, Aug 8 2020= | |||
* Working on a series of videos to make OSE Workbench Platform more accessible. | |||
<html> | |||
<iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PLesiP49zG6smDrfVFiSEr0S18U7ROzB94" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> | |||
</html> | |||
=Fri, Jul 26, 2020= | |||
<html> | |||
<iframe width="560" height="315" src="https://www.youtube.com/embed/B2lsHwDDhEU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> | |||
</html> | |||
'''Work on GitHub:''' | |||
* https://github.com/gbroques/ose-workbench-platform/commit/2c121bb5591779978fd8b7811218bc1ce019c684 | |||
* https://github.com/gbroques/ose-3d-printer-workbench/commit/20b9f3452163a36a43b7ba02afd25a8c3cc48197 | |||
=Sun, Jul 31, 2020= | |||
* https://github.com/gbroques/awesome-simulation | |||
=Sat, Jul 25, 2020= | |||
* https://github.com/gbroques/ecovillage-resource-management-spec | |||
=Fri, Jul 24, 2020= | |||
* [[Village Resource Management Software]] and [[House Resource Management Software]] | |||
=Thu, Jul 16, 2020= | |||
* https://github.com/gbroques/ose-example-workbench | |||
* [[OSE Workbench Platform Video Series Outline]] | |||
* https://github.com/gbroques/ose-workbench-platform-presentation | |||
=Tue, Jul 14, 2020= | |||
* https://github.com/gbroques/ose-workbench-platform-presentation | |||
* https://github.com/gbroques/ose-workbench-platform/issues/32 | |||
=Mon, Jul 13, 2020= | |||
* https://github.com/gbroques/ose-workbench-platform-presentation | |||
* [[OSE Workbench Platform Video Series Outline]] | |||
=Sat Jul 4, 2020= | |||
* [[OSE Workbench Platform Video Series Outline]] | |||
=Mon Jun 29, 2020= | |||
Improved docs for https://github.com/gbroques/ose-workbench-core | |||
=Sat Jun 20 - Sun Jun 21 2020= | |||
See commit logs at: | |||
* https://github.com/gbroques/ose-workbench-platform | |||
* https://github.com/gbroques/ose-3d-printer-workbench | |||
* https://github.com/gbroques/ose-workbench-core | |||
=Fri, Jun 19 2020= | |||
*Externalize OSE Core: | |||
** https://github.com/gbroques/ose-3d-printer-workbench/issues/97 | |||
** https://github.com/gbroques/ose-workbench-core | |||
= Wed, Jun 10 - Sun, Jun 14 2020= | |||
See commit logs at: | |||
* https://github.com/gbroques/ose-workbench-platform | |||
* https://github.com/gbroques/ose-3d-printer-workbench | |||
=Tue, Jun 9 2020= | |||
* Working on model property Sphinx extension | |||
* https://ose-workbench-platform.readthedocs.io/en/latest/index.html | |||
* https://github.com/gbroques/ose-3d-printer-workbench | |||
=Mon, Jun 8 2020= | |||
* https://ose-workbench-platform.readthedocs.io/en/latest/index.html | |||
* https://github.com/gbroques/ose-3d-printer-workbench | |||
* Worked up upgrading to FreeCAD 18.4 & Python 3.6 | |||
* https://wiki.freecadweb.org/Conda | |||
* https://forum.freecadweb.org/viewtopic.php?f=8&t=45582&start=10#p406864 | |||
=Sun, Jun 7 2020= | |||
* https://ose-workbench-platform.readthedocs.io/en/latest/index.html | |||
* https://github.com/gbroques/ose-3d-printer-workbench | |||
* Worked up upgrading to FreeCAD 18.4 & Python 3.6 | |||
=Sat, Jun 6 2020= | |||
* https://ose-workbench-platform.readthedocs.io/en/latest/index.html | |||
=Thu, Jun 4, 2020= | |||
* https://ose-workbench-platform.readthedocs.io/en/latest/ | |||
=Tue, Jun 2, 2020= | |||
* https://forum.freecadweb.org/viewtopic.php?f=22&t=47132 | |||
=Sun, May 25 - Sun May 31 2020= | |||
* See commits on https://github.com/gbroques/ose-workbench-platform | |||
=Sun, May 24 2020= | |||
* https://pypi.org/project/ose-workbench-platform/ | |||
* https://github.com/gbroques/ose-workbench-platform | |||
=Sat, May 23 2020= | |||
* https://github.com/gbroques/cookiecutter-ose-workbench | |||
* https://github.com/gbroques/ose-workbench-platform | |||
=Thu, May 21 2020= | |||
* https://github.com/gbroques/ose-3d-printer-workbench/issues/91 | |||
* https://github.com/gbroques/ose-workbench-platform | |||
=Wed, May 20 2020= | |||
* Various refactors for [https://github.com/gbroques/ose-3d-printer-workbench ose-3d-printer-workbench] | |||
** Commits on May 20, 2020 | |||
** https://github.com/gbroques/ose-3d-printer-workbench/commits/master | |||
=Tue, May 19 2020= | |||
* https://github.com/gbroques/ose-3d-printer-workbench/issues/87 | |||
=Mon, May 18 2020= | |||
* Worked on document and creating diagrams for [https://github.com/gbroques/ose-3d-printer-workbench ose-3d-printer-workbench] and OSE FreeCAD workbenches in general. | |||
=Sun, May 17 2020= | |||
* Various refactors for [https://github.com/gbroques/ose-3d-printer-workbench ose-3d-printer-workbench] | |||
** Commits on May 17, 2020 | |||
** https://github.com/gbroques/ose-3d-printer-workbench/commits/master | |||
=Sat, May 16 2020= | |||
* Various refactors for [https://github.com/gbroques/ose-3d-printer-workbench ose-3d-printer-workbench] | |||
** Commits on May 16, 2020 | |||
** https://github.com/gbroques/ose-3d-printer-workbench/commits/master | |||
=Fri, May 15 2020= | |||
* Various refactors for [https://github.com/gbroques/ose-3d-printer-workbench ose-3d-printer-workbench] | |||
** Commits on May 15, 2020 | |||
** https://github.com/gbroques/ose-3d-printer-workbench/commits/master | |||
=Thu, May 14 2020= | |||
* Various refactors for [https://github.com/gbroques/ose-3d-printer-workbench ose-3d-printer-workbench] | |||
** Commits on May 14, 2020 | |||
** https://github.com/gbroques/ose-3d-printer-workbench/commits/master | |||
=Wed, May 13 2020= | |||
* Various refactors for [https://github.com/gbroques/ose-3d-printer-workbench ose-3d-printer-workbench] | |||
** Commits on May 13, 2020 | |||
** https://github.com/gbroques/ose-3d-printer-workbench/commits/master | |||
=Sun, May 10 2020= | |||
* https://github.com/gbroques/ose-3d-printer-workbench/issues/31 | |||
=Fri, May 8 2020= | |||
<html><iframe width="560" height="315" src="https://www.youtube.com/embed/LrI876UvZCM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html> | |||
=Wed, May 6 2020= | |||
* [[Seed_Eco-Home_Features#Feature_Summary_Tree_Diagram]] | |||
=Mon, May 4 2020= | |||
* [[Product Structure Modeling]] | |||
* [[Bill Of Materials]] | |||
* [[Finite Element Method]] | |||
* [https://github.com/gbroques/freecad-part-attachment-python-example freecad-part-attachment-python-example] - See Also: [https://wiki.freecadweb.org/Part_Attachment FreeCAD Wiki - Part Attachment] | |||
* [https://forum.freecadweb.org/viewtopic.php?f=22&t=46045 FreeCAD Forums - Part Attachment Feature with Custom Scripted Objects] | |||
=Sun, May 3 2020= | |||
* Created initial [https://gist.github.com/gbroques/9d7d322f3a4d645a9db86358af018aae FreeCAD Class Inheritance Diagram] as simplified version of [https://wiki.freecadweb.org/File:FreeCAD_core_objects.svg this diagram] with hyperlinks to FreeCAD Wiki pages. | |||
[[File:Freecad-class-inheritance-diagram.png]] | |||
* Worked on [[3D Printer Workbench Work Proposal]] for second 90 day iteration. | |||
* Worked on [[OCCT]] | |||
* Worked on [[FreeCAD Workbench Python Programming]] | |||
* Worked on [[FreeCAD Legacy Migration]] | |||
Source for [[:File:OSE_Workbench_Library_Architecture.png]]: | |||
[[File:OSE_Workbench_Library_Architecture.png|thumb|OSE Workbench Library Architecture]] | |||
<pre> | |||
@startuml | |||
title OSE Workbench Library Architecture | |||
left to right direction | |||
frame "OSE Workbench Generator" { | |||
[ose-workbench-generator] | |||
} | |||
frame "OSE Workbenches" { | |||
[ose-3d-printer-workbench] | |||
[ose-tractor-workbench] | |||
[ose-ceb-press-workbench] | |||
[other OSE workbenches] | |||
} | |||
frame "OSE Workbench Libraries" { | |||
[ose-workbench-core] | |||
} | |||
[ose-3d-printer-workbench] ..> [ose-workbench-core] | |||
[ose-tractor-workbench] ..> [ose-workbench-core] | |||
[ose-ceb-press-workbench] ..> [ose-workbench-core] | |||
[other OSE workbenches] ..> [ose-workbench-core] | |||
[ose-workbench-generator] ..> [ose-3d-printer-workbench] | |||
[ose-workbench-generator] ..> [ose-tractor-workbench] | |||
[ose-workbench-generator] ..> [ose-ceb-press-workbench] | |||
[ose-workbench-generator] ..> [other OSE workbenches] | |||
@enduml | |||
</pre> | |||
=Sat, April 25 2020= | |||
*Made OSE 3D Printer workbench banner from previous work on [[Jean-Baptiste Log]]. | |||
[[File:Ose-3d-printer-workbench-logo.png|none|500px]] | |||
'''SVG DOWNLOAD LINK:''' [https://wiki.opensourceecology.org/wiki/File:Ose-3d-printer-workbench-logo.svg ose-3d-printer-workbench-logo.svg] | |||
= Sun, March 15 2020 = | |||
* Continue working on adding [[Angle Frame Connector]] to [[D3D Frame]] for [https://github.com/gbroques/ose-3d-printer-workbench OSE 3D Printer Workbench] | |||
= Mon, March 9 2020 = | |||
* Continue working on adding [[Angle Frame Connector]] to [[D3D Frame]] for [https://github.com/gbroques/ose-3d-printer-workbench OSE 3D Printer Workbench] | |||
= Sun, March 8 2020 = | |||
* Continue working on adding [[Angle Frame Connector]] to [[D3D Frame]] for [https://github.com/gbroques/ose-3d-printer-workbench OSE 3D Printer Workbench] | |||
= Sat, March 7 2020 = | |||
* Worked on adding [[Angle Frame Connector]] to [[D3D Frame]] for [https://github.com/gbroques/ose-3d-printer-workbench OSE 3D Printer Workbench] | |||
= Wed, March 4 2020 = | |||
* Make '''Width''' of Frame configurable | |||
** https://github.com/gbroques/ose-3d-printer-workbench/issues/10 | |||
* Make '''Thickness''' of Frame configurable | |||
** https://github.com/gbroques/ose-3d-printer-workbench/issues/11 | |||
= Tue, March 3, 2020 = | |||
* Documented how to include Move and Rotate tools from Draft workbench | |||
** See https://github.com/gbroques/ose-3d-printer-workbench/issues/7 | |||
** See https://ose-3d-printer-workbench.readthedocs.io/en/latest/pages/including_move_and_rotate_tools.html | |||
= Mon, March 2, 2020 = | |||
* Worked on making the width of the frame configurable | |||
= Thu, Feb 27, 2020 = | |||
* Finish working on adding extruder to workbench | |||
** Closed https://github.com/gbroques/ose-3d-printer-workbench/issues/2 | |||
* Fix bug when adding heated bed while frame is selected | |||
** Closed https://github.com/gbroques/ose-3d-printer-workbench/issues/6 | |||
* Created 2nd demo for 3d printer workbench demo focusing on heated bed and extruder: | |||
** https://www.youtube.com/watch?v=pNRLUSM5OeI | |||
= Wed, Feb 26, 2020 = | |||
* Work on "attaching" extruder to X universal axis when top face of carriage is selected | |||
* Create issue for bug when adding heated bed when frame is selected | |||
** https://github.com/gbroques/ose-3d-printer-workbench/issues/6 | |||
= Mon, Feb 24, 2020 = | |||
* Worked on initial simple extruder model | |||
= Thu, Feb 20, 2020 = | |||
* Host docs site for 3d printer workbench: | |||
** https://ose-3d-printer-workbench.readthedocs.io/en/latest/ | |||
= Tue, Feb 18, 2020 = | |||
* Worked on docs site | |||
** See branch: | |||
** https://github.com/gbroques/ose-3d-printer-workbench/tree/add-docs-site | |||
= Mon, Feb 17, 2020 = | |||
* Worked on initial simple extruder model | |||
= Sat, Feb 15, 2020 = | |||
* Created board to track work for 3d printer workbench: | |||
** https://github.com/gbroques/ose-3d-printer-workbench/projects/1 | |||
= Wed, Feb 12, 2020 = | |||
* Center heated bed when button is clicked and frame is selected | |||
** See the following commit: | |||
** https://github.com/gbroques/ose-3d-printer-workbench/commit/a3d3adc3f7b482984ec1b3bd0bde712baeab4205 | |||
* Start working on adding extruder to 3d printer workbench | |||
= Tue, Feb 11, 2020 = | |||
* Finish simplified model of angle frame connector and merge it into '''master''' branch | |||
* NOTE: Angle frame connector still isn't incorporated intro frame model | |||
* See the following commit for full details of code: | |||
** https://github.com/gbroques/ose-3d-printer-workbench/commit/0df3550d65f6dee22978c140d3724ee77b23130e | |||
= Mon, Feb 10, 2020 = | |||
* Added and improved unit tests | |||
* Refactored 3d printer workbench into "core" and "workbench" packages | |||
* See commit log for details: | |||
** https://github.com/gbroques/ose-3d-printer-workbench/commits/master | |||
* Worked on adding angle frame connectors | |||
** See '''angle-frame-connector''' branch https://github.com/gbroques/ose-3d-printer-workbench/commits/angle-frame-connector | |||
= Sun, Feb 9, 2020 = | |||
* Added beginning of automated test suite for ose 3d printer workbench | |||
* Added CI with Travis CI and Coverage reports with Coveralls | |||
** These are reflected by the new '''Build Status''' and '''Coverage Status''' at the top of the README respectively | |||
* See https://github.com/gbroques/ose-3d-printer-workbench for details | |||
= Sat, Feb 8, 2020 = | |||
* Did proof-of-concept (POC) for python unit tests with FreeCAD 0.16 and Docker: | |||
** https://github.com/gbroques/freecad16-unit-tests-poc | |||
* Explored getting unit tests for the workbench | |||
** Can run embedded FreeCAD 18 (installed with Ubuntu snap) with the following command modifying the '''LD_LIBRARY_PATH''' environment variable: <code>LD_LIBRARY_PATH=/snap/freecad/8/opt/local/FreeCAD-0.18/lib:/snap/freecad/8/usr/lib/x86_64-linux-gnu:/snap/freecad/8/opt/local/FreeCAD-0.18/Mod /snap/freecad/8/usr/bin/python2.7 test.py</code> | |||
** Where '''test.py''' contains an '''import FreeCAD''' statement | |||
** Tried extracting FreeCAD 16 AppImage to get to lib folders and run embedded | |||
*** However it's missing different static shared libraries (.so files) | |||
** Unable to install FreeCAD 0.16 (legacy) from PPA as they don't have a version for Bionic (18.04) and Xenial libs were incompatible with Bionic libs | |||
*** https://launchpad.net/~freecad-maintainers/+archive/ubuntu/freecad-legacy | |||
** Tried compiling version 16 of FreeCAD from source, but it's way too much trouble | |||
** Discovered it's relatively easy to add a test to the TestWorkbench. See the following forum thread: | |||
*** https://forum.freecadweb.org/viewtopic.php?t=30469 | |||
*** However this is only available in FreeCAD '''0.18''' and greater | |||
*** Also this approach means you can only run unit tests from the GUI | |||
*** Ideally we run unit tests quickly from the command line | |||
** FreeCAD's python 2.7 is missing the '''mock''' package for mocking objects | |||
*** Making unit tests with FreeCAD even more difficult | |||
** '''Conclusion:''' Try adding unit tests later when we upgrade to a later version of FreeCAD. It'll be a lot easier than messing with legacy FreeCAD. | |||
= Thu, Feb 6, 2020 = | |||
* Created Installation walkthrough video for 3d printer workbench: | |||
** https://youtu.be/PtBoIBTPNv4 | |||
= Wed, Feb 5, 2020 = | |||
* Created first product owner demo for 3d printer workbench: | |||
** https://youtu.be/EwbXSYwb69U | |||
= Mon, Feb 3, 2020 = | |||
* Add buttons for Y and Z axis to workbench, and continue refining frame attachment behavior | |||
** See commit log in OSE 3d printer workbench GitHub repository: | |||
*** https://github.com/gbroques/ose-3d-printer-workbench | |||
= Sat, Feb 1, 2020 = | |||
* Finished working on attaching axes to frame by selecting frame faces | |||
** See commit log in OSE 3d printer workbench GitHub repository: | |||
*** https://github.com/gbroques/ose-3d-printer-workbench | |||
= Fri, Jan 31, 2020 = | |||
* Continue working on attaching axis to frame | |||
** See commit log in OSE 3d printer workbench GitHub repository: | |||
*** https://github.com/gbroques/ose-3d-printer-workbench | |||
= Thu, Jan 30, 2020 = | |||
* Continue working on attaching axis to frame | |||
** Got axis attaching to one Y side | |||
** See commit log in OSE 3d printer workbench GitHub repository: | |||
*** https://github.com/gbroques/ose-3d-printer-workbench | |||
= Tue, Jan 28, 2020 = | |||
* Continue working on attaching axis to frame | |||
** See commit log in OSE 3d printer workbench GitHub repository: | |||
*** https://github.com/gbroques/ose-3d-printer-workbench | |||
= Mon, Jan 27, 2020 = | |||
* Add Button for heated bed to 3d printer workbench | |||
* Add carriage box to universal axis model | |||
* Refactor command registry for greater clarity | |||
* Start working on attaching axis to frame | |||
= Sun, Jan 26, 2020 = | |||
* Mainly worked on refactoring 3d printer workbench | |||
** Created single package for workbench to avoid pollution FreeCAD namespace | |||
** Got rid of "registry" pattern for main toolbar in favor of a "command collection" pattern | |||
* Had some email exchange with Marcin on direction of the project. | |||
= Sat, Jan 25, 2020 = | = Sat, Jan 25, 2020 = | ||
* Spent time on FreeCAD forum figuring out how to set lower and upper bounds with a custom Length property: | * Spent time on FreeCAD forum figuring out how to set lower and upper bounds with a custom Length property: | ||
** See https://forum.freecadweb.org/viewtopic.php?f=22&t=42697&p=362941 | ** See https://forum.freecadweb.org/viewtopic.php?f=22&t=42697&p=362941 | ||
* firstVertex and lastVertex methods don't exist in FreeCAD 16. Had to use alternative. See following thread for details: | |||
** https://forum.freecadweb.org/viewtopic.php?t=22500 | |||
* Explode Compound Feature introduced in FreeCAD 18. See the following page for details: | |||
** https://www.freecadweb.org/wiki/Part_ExplodeCompound | |||
* Added button to workbench to create Frame which you can resize. Defaults to 16". | |||
= Fri, Jan 24, 2020 = | = Fri, Jan 24, 2020 = | ||
Line 43: | Line 441: | ||
** Importing existing FCstd files into a document is not trivial | ** Importing existing FCstd files into a document is not trivial | ||
*** Assembly 2 gives error when importing simple Universal X axis | *** Assembly 2 gives error when importing simple Universal X axis | ||
*** | *** Looks like skaiser struggled with this in the D3D printer workbench. See [https://github.com/skaiser/D3D-Printer-Workbench/commit/533139fe44b1c62fde58ae19a2c8bd68b6a0b8ff commit]. | ||
*** A2plus can do it. See below code snippet: | *** A2plus can do it. See below code snippet: | ||
<pre> | <pre> | ||
Line 187: | Line 585: | ||
** Migrating from Python 2.x to Python 3.x | ** Migrating from Python 2.x to Python 3.x | ||
* After spending some time completing the OSE Developer Test I feel a lot more comfortable in FreeCAD and see the power in it | * After spending some time completing the OSE Developer Test I feel a lot more comfortable in FreeCAD and see the power in it | ||
= TODO List= | |||
* Get better about logging hours | |||
* Instructional on how to modify the FreeCAD 3D Printer Workbench for different CAD insertion - for example if someone wants to modify the extruder to add more details | |||
* Investigate the following code snippet | |||
<pre> | |||
# All shapes have a Placement too. We give our shape the value of the placement | |||
# set by the user. This will move/rotate the face automatically. | |||
comp1.Placement = obj.Placement | |||
</pre> | |||
* Overall workbench process | |||
'''Source:''' https://forum.freecadweb.org/viewtopic.php?t=24794#p194960 | |||
= Skills = | = Skills = |
Latest revision as of 00:08, 15 August 2020
What is G working on?
Hint: I'm currently working on a platform for OSE workbenches using FreeCAD.
https://ose-workbench-platform.readthedocs.io/en/latest/
https://github.com/gbroques/ose-workbench-platform
3D Printer Workbench
The 3D Printer workbench is the best example of a workbench using the platform.
Time Log
3D Printer Workbench Installation and Demos Playlist
Sat, July 27- Sat, Aug 8 2020
- Working on a series of videos to make OSE Workbench Platform more accessible.
Fri, Jul 26, 2020
Work on GitHub:
- https://github.com/gbroques/ose-workbench-platform/commit/2c121bb5591779978fd8b7811218bc1ce019c684
- https://github.com/gbroques/ose-3d-printer-workbench/commit/20b9f3452163a36a43b7ba02afd25a8c3cc48197
Sun, Jul 31, 2020
Sat, Jul 25, 2020
Fri, Jul 24, 2020
Thu, Jul 16, 2020
- https://github.com/gbroques/ose-example-workbench
- OSE Workbench Platform Video Series Outline
- https://github.com/gbroques/ose-workbench-platform-presentation
Tue, Jul 14, 2020
- https://github.com/gbroques/ose-workbench-platform-presentation
- https://github.com/gbroques/ose-workbench-platform/issues/32
Mon, Jul 13, 2020
- https://github.com/gbroques/ose-workbench-platform-presentation
- OSE Workbench Platform Video Series Outline
Sat Jul 4, 2020
Mon Jun 29, 2020
Improved docs for https://github.com/gbroques/ose-workbench-core
Sat Jun 20 - Sun Jun 21 2020
See commit logs at:
- https://github.com/gbroques/ose-workbench-platform
- https://github.com/gbroques/ose-3d-printer-workbench
- https://github.com/gbroques/ose-workbench-core
Fri, Jun 19 2020
- Externalize OSE Core:
Wed, Jun 10 - Sun, Jun 14 2020
See commit logs at:
- https://github.com/gbroques/ose-workbench-platform
- https://github.com/gbroques/ose-3d-printer-workbench
Tue, Jun 9 2020
- Working on model property Sphinx extension
- https://ose-workbench-platform.readthedocs.io/en/latest/index.html
- https://github.com/gbroques/ose-3d-printer-workbench
Mon, Jun 8 2020
- https://ose-workbench-platform.readthedocs.io/en/latest/index.html
- https://github.com/gbroques/ose-3d-printer-workbench
- Worked up upgrading to FreeCAD 18.4 & Python 3.6
- https://wiki.freecadweb.org/Conda
- https://forum.freecadweb.org/viewtopic.php?f=8&t=45582&start=10#p406864
Sun, Jun 7 2020
- https://ose-workbench-platform.readthedocs.io/en/latest/index.html
- https://github.com/gbroques/ose-3d-printer-workbench
- Worked up upgrading to FreeCAD 18.4 & Python 3.6
Sat, Jun 6 2020
Thu, Jun 4, 2020
Tue, Jun 2, 2020
Sun, May 25 - Sun May 31 2020
- See commits on https://github.com/gbroques/ose-workbench-platform
Sun, May 24 2020
Sat, May 23 2020
- https://github.com/gbroques/cookiecutter-ose-workbench
- https://github.com/gbroques/ose-workbench-platform
Thu, May 21 2020
- https://github.com/gbroques/ose-3d-printer-workbench/issues/91
- https://github.com/gbroques/ose-workbench-platform
Wed, May 20 2020
- Various refactors for ose-3d-printer-workbench
- Commits on May 20, 2020
- https://github.com/gbroques/ose-3d-printer-workbench/commits/master
Tue, May 19 2020
Mon, May 18 2020
- Worked on document and creating diagrams for ose-3d-printer-workbench and OSE FreeCAD workbenches in general.
Sun, May 17 2020
- Various refactors for ose-3d-printer-workbench
- Commits on May 17, 2020
- https://github.com/gbroques/ose-3d-printer-workbench/commits/master
Sat, May 16 2020
- Various refactors for ose-3d-printer-workbench
- Commits on May 16, 2020
- https://github.com/gbroques/ose-3d-printer-workbench/commits/master
Fri, May 15 2020
- Various refactors for ose-3d-printer-workbench
- Commits on May 15, 2020
- https://github.com/gbroques/ose-3d-printer-workbench/commits/master
Thu, May 14 2020
- Various refactors for ose-3d-printer-workbench
- Commits on May 14, 2020
- https://github.com/gbroques/ose-3d-printer-workbench/commits/master
Wed, May 13 2020
- Various refactors for ose-3d-printer-workbench
- Commits on May 13, 2020
- https://github.com/gbroques/ose-3d-printer-workbench/commits/master
Sun, May 10 2020
Fri, May 8 2020
Wed, May 6 2020
Mon, May 4 2020
- Product Structure Modeling
- Bill Of Materials
- Finite Element Method
- freecad-part-attachment-python-example - See Also: FreeCAD Wiki - Part Attachment
- FreeCAD Forums - Part Attachment Feature with Custom Scripted Objects
Sun, May 3 2020
- Created initial FreeCAD Class Inheritance Diagram as simplified version of this diagram with hyperlinks to FreeCAD Wiki pages.
- Worked on 3D Printer Workbench Work Proposal for second 90 day iteration.
- Worked on OCCT
- Worked on FreeCAD Workbench Python Programming
- Worked on FreeCAD Legacy Migration
Source for File:OSE_Workbench_Library_Architecture.png:
@startuml title OSE Workbench Library Architecture left to right direction frame "OSE Workbench Generator" { [ose-workbench-generator] } frame "OSE Workbenches" { [ose-3d-printer-workbench] [ose-tractor-workbench] [ose-ceb-press-workbench] [other OSE workbenches] } frame "OSE Workbench Libraries" { [ose-workbench-core] } [ose-3d-printer-workbench] ..> [ose-workbench-core] [ose-tractor-workbench] ..> [ose-workbench-core] [ose-ceb-press-workbench] ..> [ose-workbench-core] [other OSE workbenches] ..> [ose-workbench-core] [ose-workbench-generator] ..> [ose-3d-printer-workbench] [ose-workbench-generator] ..> [ose-tractor-workbench] [ose-workbench-generator] ..> [ose-ceb-press-workbench] [ose-workbench-generator] ..> [other OSE workbenches] @enduml
Sat, April 25 2020
- Made OSE 3D Printer workbench banner from previous work on Jean-Baptiste Log.
SVG DOWNLOAD LINK: ose-3d-printer-workbench-logo.svg
Sun, March 15 2020
- Continue working on adding Angle Frame Connector to D3D Frame for OSE 3D Printer Workbench
Mon, March 9 2020
- Continue working on adding Angle Frame Connector to D3D Frame for OSE 3D Printer Workbench
Sun, March 8 2020
- Continue working on adding Angle Frame Connector to D3D Frame for OSE 3D Printer Workbench
Sat, March 7 2020
- Worked on adding Angle Frame Connector to D3D Frame for OSE 3D Printer Workbench
Wed, March 4 2020
- Make Width of Frame configurable
- Make Thickness of Frame configurable
Tue, March 3, 2020
- Documented how to include Move and Rotate tools from Draft workbench
Mon, March 2, 2020
- Worked on making the width of the frame configurable
Thu, Feb 27, 2020
- Finish working on adding extruder to workbench
- Fix bug when adding heated bed while frame is selected
- Created 2nd demo for 3d printer workbench demo focusing on heated bed and extruder:
Wed, Feb 26, 2020
- Work on "attaching" extruder to X universal axis when top face of carriage is selected
- Create issue for bug when adding heated bed when frame is selected
Mon, Feb 24, 2020
- Worked on initial simple extruder model
Thu, Feb 20, 2020
- Host docs site for 3d printer workbench:
Tue, Feb 18, 2020
- Worked on docs site
Mon, Feb 17, 2020
- Worked on initial simple extruder model
Sat, Feb 15, 2020
- Created board to track work for 3d printer workbench:
Wed, Feb 12, 2020
- Center heated bed when button is clicked and frame is selected
- See the following commit:
- https://github.com/gbroques/ose-3d-printer-workbench/commit/a3d3adc3f7b482984ec1b3bd0bde712baeab4205
- Start working on adding extruder to 3d printer workbench
Tue, Feb 11, 2020
- Finish simplified model of angle frame connector and merge it into master branch
- NOTE: Angle frame connector still isn't incorporated intro frame model
- See the following commit for full details of code:
Mon, Feb 10, 2020
- Added and improved unit tests
- Refactored 3d printer workbench into "core" and "workbench" packages
- See commit log for details:
- Worked on adding angle frame connectors
- See angle-frame-connector branch https://github.com/gbroques/ose-3d-printer-workbench/commits/angle-frame-connector
Sun, Feb 9, 2020
- Added beginning of automated test suite for ose 3d printer workbench
- Added CI with Travis CI and Coverage reports with Coveralls
- These are reflected by the new Build Status and Coverage Status at the top of the README respectively
- See https://github.com/gbroques/ose-3d-printer-workbench for details
Sat, Feb 8, 2020
- Did proof-of-concept (POC) for python unit tests with FreeCAD 0.16 and Docker:
- Explored getting unit tests for the workbench
- Can run embedded FreeCAD 18 (installed with Ubuntu snap) with the following command modifying the LD_LIBRARY_PATH environment variable:
LD_LIBRARY_PATH=/snap/freecad/8/opt/local/FreeCAD-0.18/lib:/snap/freecad/8/usr/lib/x86_64-linux-gnu:/snap/freecad/8/opt/local/FreeCAD-0.18/Mod /snap/freecad/8/usr/bin/python2.7 test.py
- Where test.py contains an import FreeCAD statement
- Tried extracting FreeCAD 16 AppImage to get to lib folders and run embedded
- However it's missing different static shared libraries (.so files)
- Unable to install FreeCAD 0.16 (legacy) from PPA as they don't have a version for Bionic (18.04) and Xenial libs were incompatible with Bionic libs
- Tried compiling version 16 of FreeCAD from source, but it's way too much trouble
- Discovered it's relatively easy to add a test to the TestWorkbench. See the following forum thread:
- https://forum.freecadweb.org/viewtopic.php?t=30469
- However this is only available in FreeCAD 0.18 and greater
- Also this approach means you can only run unit tests from the GUI
- Ideally we run unit tests quickly from the command line
- FreeCAD's python 2.7 is missing the mock package for mocking objects
- Making unit tests with FreeCAD even more difficult
- Conclusion: Try adding unit tests later when we upgrade to a later version of FreeCAD. It'll be a lot easier than messing with legacy FreeCAD.
- Can run embedded FreeCAD 18 (installed with Ubuntu snap) with the following command modifying the LD_LIBRARY_PATH environment variable:
Thu, Feb 6, 2020
- Created Installation walkthrough video for 3d printer workbench:
Wed, Feb 5, 2020
- Created first product owner demo for 3d printer workbench:
Mon, Feb 3, 2020
- Add buttons for Y and Z axis to workbench, and continue refining frame attachment behavior
- See commit log in OSE 3d printer workbench GitHub repository:
Sat, Feb 1, 2020
- Finished working on attaching axes to frame by selecting frame faces
- See commit log in OSE 3d printer workbench GitHub repository:
Fri, Jan 31, 2020
- Continue working on attaching axis to frame
- See commit log in OSE 3d printer workbench GitHub repository:
Thu, Jan 30, 2020
- Continue working on attaching axis to frame
- Got axis attaching to one Y side
- See commit log in OSE 3d printer workbench GitHub repository:
Tue, Jan 28, 2020
- Continue working on attaching axis to frame
- See commit log in OSE 3d printer workbench GitHub repository:
Mon, Jan 27, 2020
- Add Button for heated bed to 3d printer workbench
- Add carriage box to universal axis model
- Refactor command registry for greater clarity
- Start working on attaching axis to frame
Sun, Jan 26, 2020
- Mainly worked on refactoring 3d printer workbench
- Created single package for workbench to avoid pollution FreeCAD namespace
- Got rid of "registry" pattern for main toolbar in favor of a "command collection" pattern
- Had some email exchange with Marcin on direction of the project.
Sat, Jan 25, 2020
- Spent time on FreeCAD forum figuring out how to set lower and upper bounds with a custom Length property:
- firstVertex and lastVertex methods don't exist in FreeCAD 16. Had to use alternative. See following thread for details:
- Explode Compound Feature introduced in FreeCAD 18. See the following page for details:
- Added button to workbench to create Frame which you can resize. Defaults to 16".
Fri, Jan 24, 2020
- Got initial 3d printer workbench repository setup locally
- Need to push to GitHub
- Learned there's a "new" and "old" style pattern for creating workbenches
- "new" pattern doesn't work in FreeCAD 16
- Need to research the drawbacks and limitations of old pattern further
Tue, Jan 21, 2020
Worked on Universal Axis macro:
- Add screenshot to README
- Add chamfered motor to universal axis object
- Display rod diameter as read-only property defaulted to 8 mm
- Add separate dimensions for motor side box as opposed to using the same dimensions for motor and idler side boxes
Mon, Jan 20, 2020
- Playing around with creating a Universal Axis object from existing FCStd file
- Beginning to think we should generate these objects programmatically in Python code
- Will play around with this idea as well
- Created Universal Axis Macro repository on GitHub
- Has a Length property
- Had to re-create basic shapes like boxes and cylinders
- 2 boxes: 1 for motor side and 1 for idler side
- 2 rods connecting the 2 boxes
Sun, Jan 19, 2020
- Finish work proposal draft in Google doc
- Publish finalized draft on wiki as 3D Printer Workbench Work Proposal
Sat, Jan 18, 2020
- Continue working on draft proposal
- Read Scripted Object on FreeCAD wiki
- Read FeaturePython objects on FreeCAD wiki
- Includes short tutorial
- Started working on Universal Axis object macro in FreeCAD
- Goal is to be able to change the length in a single parameter
- Importing existing FCstd files into a document is not trivial
- Assembly 2 gives error when importing simple Universal X axis
- Looks like skaiser struggled with this in the D3D printer workbench. See commit.
- A2plus can do it. See below code snippet:
>>> import a2p_importpart >>> a2p_importpart.importPartFromFile(App.ActiveDocument, '/home/g/Projects/ose-3d-printer-workbench/UniversalAxis.FCStd') >>> from PySide import QtGui >>> mw = FreeCADGui.getMainWindow() >>> mdi = mw.findChild(QtGui.QMdiArea) >>> sub = mdi.activeSubWindow() >>> if sub != None: ... sub.showMaximized()
- Need to determine if a path forward
- Figuring out how to import existing FCStd files while maintaining their geometries or
- Re-create geometries for each part (rods, carriage, motor, idler, etc.) programmatically in Python using FreeCAD building blocks like Sketcher and Part Design workbench APIs
Fri, Jan 17, 2020
- Start draft work proposal for 3D Printer Workbench
- See the following Google Doc: https://docs.google.com/document/d/1-d49YrHHQkfc9QJA6BxaQDG89-p4-KR6hv8qG0RYUVA/edit?usp=sharing
- Reviewed 3D Printer Design Workbench for FreeCAD
- Review Universal Axis Design in FreeCAD
Thu, Jan 16, 2020
Researched D3D Printer and OSE FreeCAD workbenches.
Relevant OSE Wiki links:
Workbenches
OSE Developer Test Video
-
- FreeCAD file for OSE Developer test - File:Groques-ose-developer-test.FCStd
- See also the FreeCAD Macro on GitHub I created to complete the OSE Developer Test programmatically
Q: How many hours did each part of the test take to complete?
- Installing Linux ~ 2 hours
- Learning FreeCAD ~ 16 hours
- Documenting my work ~ 2 hours
Q: Which section was most difficult?
- A: 2. FreeCAD
Q: Add any other feedback you have on the FreeCAD Test or the Developer Test in general.
- A: See OSE Developer Test Thoughts section.
Q: Score yourself 0-100 based on the percentage of the Test points that you have completed successfully - and include that score in your work log comments.
- A: I believe I completed everything so 100?
OSE Developer Video Cover Letter
FreeCAD Learning Resources
- Learn FreeCAD Playlist - https://www.youtube.com/playlist?list=PL2935W76vRNFvUGefQr3q9P9eezJZyj-u
- Intro to FreeCAD for 3D Printing - https://www.youtube.com/playlist?list=PLSLeSKyjWpVYxz7kpTmPfxMAzE6SxIIfV
OSE Developer Test Thoughts
OSE Linux Thoughts
- Creating the Live USB from ISO is easy and straight forward
- Had a unused 8 GB USB laying around
- Used Startup Disk Creator on Ubuntu 18.04
- Had some difficulty finding the correct download link for the latest version of ISO
- Had difficulties booting from USB even after changing boot order
- Maybe related to dual-booting Windows and Ubuntu
- Found help on Ask Ubuntu: Is there a way to boot from usb through grub menu?
- Solution was to manually enter a series of commands in GRUB menu every time I boot (made using OSE Linux painful)
grub> ls (hd0) ... grub> ls (hd0) device hd0: ... device information used to obtain uuid for next command grub> search --fs-uuid --set=root 2017-10-28-08-56-20-00 grub> chainloader /EFI/BOOT/grubx64.efi
- Selecing Wi-Fi network and entering in password each boot is annoying
- No pre-installed Chrome extensions makes a lot tasks difficult
- No password manager makes logging into various critical websites difficult:
- YouTube to listen to music while I work
- The Open Source Ecology Wiki
- To jot down notes or save files
- GitHub
- To save work
- To contribute to or debug open source projects like FreeCAD workbenches
- No password manager makes logging into various critical websites difficult:
- No SSH key created so I can't easily authenticate and work out of GitHub
- No code editor setup how I like
- Visual Studio Code
- Various extensions like Python support
- Preferred theme and font
- Visual Studio Code
- Severely out of date software
- Chromium has banner that says "We've detected you're using an older version of Chrome. Reinstall to stay secure"
- Gmail - This version of Chrome is no longer supported. Please upgrade to a supported browser.
- FreeCAD 16 (released April 2016 - 3 and a half years ago at the time of writing)
- Out of date workbenches
- No AddOn Manager
- Assembly 2 workbench is no longer maintained since 2016 and may have issues with FreeCAD 0.17 and above
- Why spend time to learn something that won't be around in the future?
- Chromium has banner that says "We've detected you're using an older version of Chrome. Reinstall to stay secure"
- No file persistence is a big down side
- Installed necessary software for OSE Developer Test manually on Ubuntu 18.04
- Mostly straight-forward
- Had difficulties installing FreeCAD
- Some issue with installing FreeCAD from Software Center in Ubuntu 18.04
- No module named WebGui startup error
- Installing FreeCAD from PPA didn't work either
- See here for person with similar issue. Error message is along the lines of "The following packages have unmet dependencies: "x" : Depends: "y" but it is not going to be installed ... Unable to correct problems, you have held broken packages."
- Uninstalling and re-installing FreeCAD in Software Center fixed "No module named WebGui" error
FreeCAD Thoughts
- Initially very difficult even for the most basic tasks like moving and rotating objects
- Frustration led to searching for OSE Developer Test solutions on YouTube
- Found one solution where the person pastes commands into the Python Interpreter to arrange the cube
- This seemed a lot easier than messing with the GUI and appealed to my background as a developer
- Decided to create a FreeCAD macro for the OSE Developer Test
- Wanted access to GitHub and preferred code editor setup how I like
- Frustrations with using older FreeCAD 16 when help online referenced latest FreeCAD 18 features
- Spent a lot of time trying to get auto-completion for FreeCAD API in Visual Studio Code
- Found walkthrough article with accompanying video on YouTube, but still didn't work
- Linux command to find FreeCAD.so file - locate FreeCAD.so
- Relevant FreeCAD forum threads:
- Had difficulty attaching bolt to hole programmatically in Python using the Fasteners workbench
- Created issue on GitHub repository
- Spent some time debugging Fasteners workbench
- Discovered FreeCAD 19 will come out sometime this year (2020) and I'm very excited:
- GUI looks a lot prettier and there's a dark theme
- Migrating from Python 2.x to Python 3.x
- After spending some time completing the OSE Developer Test I feel a lot more comfortable in FreeCAD and see the power in it
TODO List
- Get better about logging hours
- Instructional on how to modify the FreeCAD 3D Printer Workbench for different CAD insertion - for example if someone wants to modify the extruder to add more details
- Investigate the following code snippet
# All shapes have a Placement too. We give our shape the value of the placement # set by the user. This will move/rotate the face automatically. comp1.Placement = obj.Placement
- Overall workbench process
Source: https://forum.freecadweb.org/viewtopic.php?t=24794#p194960
Skills
- Aligned with vision of ending artificial scarcity; civilization construction from scratch
- Design - web, logo, graphic.
- Speaking, Dancing Rabbit, NVC
- Programming