G Roques Log: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
(Add note about explode compound only in 18)
 
(119 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="600" height="500" src="https://osedev.org/wiki/G?start=9/1/2019"></iframe></html>
<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 =
Line 9: Line 402:
* Explode Compound Feature introduced in FreeCAD 18. See the following page for details:
* Explode Compound Feature introduced in FreeCAD 18. See the following page for details:
** https://www.freecadweb.org/wiki/Part_ExplodeCompound
** 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 47: 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
*** Loos like skaiser struggled with this in the D3D printer workbench. See [https://github.com/skaiser/D3D-Printer-Workbench/commit/533139fe44b1c62fde58ae19a2c8bd68b6a0b8ff commit].
*** 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 191: 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?

HintLightbulb.png 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.

GitHub Repository

Commit Log

Project Board

Issue Log

Milestone for First Release

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:

Sun, Jul 31, 2020

Sat, Jul 25, 2020

Fri, Jul 24, 2020

Thu, Jul 16, 2020


Tue, Jul 14, 2020

Mon, Jul 13, 2020

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:

Fri, Jun 19 2020

Wed, Jun 10 - Sun, Jun 14 2020

See commit logs at:

Tue, Jun 9 2020

Mon, Jun 8 2020

Sun, Jun 7 2020

Sat, Jun 6 2020

Thu, Jun 4, 2020

Tue, Jun 2, 2020

Sun, May 25 - Sun May 31 2020


Sun, May 24 2020

Sat, May 23 2020


Thu, May 21 2020

Wed, May 20 2020

Tue, May 19 2020

Mon, May 18 2020

Sun, May 17 2020

Sat, May 16 2020

Fri, May 15 2020


Thu, May 14 2020

Wed, May 13 2020

Sun, May 10 2020

Fri, May 8 2020

Wed, May 6 2020

Mon, May 4 2020

Sun, May 3 2020

Freecad-class-inheritance-diagram.png

Source for File:OSE_Workbench_Library_Architecture.png:

OSE Workbench Library Architecture
@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

Ose-3d-printer-workbench-logo.png

SVG DOWNLOAD LINK: ose-3d-printer-workbench-logo.svg

Sun, March 15 2020

Mon, March 9 2020

Sun, March 8 2020

Sat, March 7 2020

Wed, March 4 2020

Tue, March 3, 2020

Mon, March 2, 2020

  • Worked on making the width of the frame configurable

Thu, Feb 27, 2020

Wed, Feb 26, 2020

Mon, Feb 24, 2020

  • Worked on initial simple extruder model

Thu, Feb 20, 2020

Tue, Feb 18, 2020

Mon, Feb 17, 2020

  • Worked on initial simple extruder model

Sat, Feb 15, 2020

Wed, Feb 12, 2020

Tue, Feb 11, 2020

Mon, Feb 10, 2020


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:
    • 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

Wed, Feb 5, 2020

Mon, Feb 3, 2020

Sat, Feb 1, 2020

Fri, Jan 31, 2020

Thu, Jan 30, 2020

Tue, Jan 28, 2020

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

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

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

Thu, Jan 16, 2020

Researched D3D Printer and OSE FreeCAD workbenches.

Relevant OSE Wiki links:

Workbenches

OSE Developer Test Video

-

Q: How many hours did each part of the test take to complete?

  1. Installing Linux ~ 2 hours
  2. Learning FreeCAD ~ 16 hours
  3. 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


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
   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 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
  • 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?
  • 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
    • 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
  • 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