FreeCAD Programming: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
Line 9: Line 9:
==One Paragraph Introduction by Ruslan Krenzler==
==One Paragraph Introduction by Ruslan Krenzler==


=Notes from G=
=Discussion=
*Main challenge of FreeCAD programming for a programmer - keeping 3D programming in mind - understanding what you are working with in 3D space
*Label code and functions according to orientation
*Adding toolbars is easy
*To start a FreeCAD workbench...
==Starting a Workbench==


*Start by knowing what you need to do.
[[OSE Developer End of Term Discussion with G]]
*Understand a Command concept in FreeCAD
*Understand geometry
*Command is a thing that gets executed withing FreeCAD
*Hard part was figuring out how to program the geometry
*The more details in geometry
*User selects an objects. Ex. .length.object gets you length
*Navigating the code base - going through many files.
*Using Docker to run unit tests. Docker creates an application environment, without installing FreeCAD or python modules
*One Docker instance does the test runs. How long did it take to set up Docker.
*But for a novice, it's easy enough to install the app and work from there.
*Access Docker documentation from G's documentation.
*Docker runs on laptop - https://docs.docker.com/engine/install/ubuntu/
*Workflow - branch on laptop, push it, do tests, on a server environment without GUI.
*FreeCAD - has app - command line, and there is the GUI part
*You can test for - ex. select a face of a frame, you can find out the xyz parameters, etc. If need transformation
*G used Visual Studio Code. There is an OSalt.
*Unit tests - arrange, act, assert.
*[[FreeCAD Workbench Python Programming]]
*REPL - read-evaluate-print loop
*https://www.youtube.com/watch?v=yTDkJ7JZAWs&t=467s - Simlink for FreeCAD 19 -
*https://wiki.freecadweb.org/Workbench_creation
*Scaffolding for all OSE workbenches.
*App and Gui is the 2 main branches of structure for FreeCAD apps
*The github documentation is generation
*Restuctured text markup language
*Documentation of code should be as close to the code as possible.
*[[Gs_Full_Time_OSE_Developer_Transition_Plan]]
*https://en.wikipedia.org/wiki/ReStructuredText


=Links=
=Links=
*[[FreeCAD Kernel]]
*[[FreeCAD Kernel]]
*[[FreeCAD Workbench Python Programming]]
*[[FreeCAD Workbench Python Programming]]

Revision as of 20:05, 3 May 2020