FreeCAD Configuration Management Project: Difference between revisions

From FreeCAD Documentation
(Undo revision 262029 by Wandererfan (talk))
(Undo revision 262028 by Wandererfan (talk))
 
Line 2: Line 2:


==Outline==
==Outline==
FreeCAD relies on a large number of software packages and is available on most major platforms (Linux, OSX, Windows), each Distro/OS have several distribution methods available (package managers, Libpacks, pip, Conda, AppImages, installers, etc). This makes for a particularly challenging configuration management environment.
In Transportation Engineering, a common need is a "swept-path analysis", which simply analyzes the path a vehicle takes as it turns a corner. Vehicles of differing dimensions and wheel bases, obviously, have different turning capabilities, so it's necessary to ensure public facilities are designed to accommodate the least agile vehicles that are expected to use it.

Commercial packages exist which do this. The industry standard in the US is AutoTURN and sells for about $12,000 per license. Despite the price, the technology and theory behind the software has been known and understood for well over 50 years. Yet, apart from one freeware (closed source) option, no freely available tools to perform this analysis exist.


==Details==
==Details==
# A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.
# Develop a simple database (a CSV file) which contains the key parameters for the design vehicles used in the analysis. This data includes parameters like vehicle height, length, width, axle count, wheel base, and others.
# A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required. It's desirable to identify interdependencies and not re-install them.

# Develop several generic vehicle templates as separate sketches into which the database parameters can be fed to create a template which represents a real-world vehicle.

# Create a Part-based geometry from the sketch object representing the design vehicle and generate a mesh

# Import a data file (DXF) which contains the roadway gemetry on which to run the analysis.

# Choose lines from the imported file which act as boundaries for the analysis collision detection.


==Expected Outcome==
==Expected Outcome==
# A concrete/documented view of FreeCD's dependencies (and perhaps the trusted addons)
# Accomplishing these items would provide the basis for performing swept path analyses in FreeCAD.
# A reduction in manual effort when releasing new versions of FreeCAD


==Future Possibilities==
==Future Possibilities==
This work will provide exposure to highway design techniques.
This work will provide experience in the packaging and distribution of multi-platform, cross-dependency software.


==Project Properties==
==Project Properties==
===Skills===
===Skills===
*Familiarity with
*Familiarity with
** package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)
**
** build managers (cMake, make, VS, MSBuild, Nmake)
** graph theory (Dependency graph)


===Difficulty===
===Difficulty===
Line 32: Line 26:


===Additional Information===
===Additional Information===

[https://forum.freecadweb.org/viewtopic.php?f=8&t=22277&start=250 FreeCAD Civil Engineering Thread]


[[Category:Google Summer of Code]]
[[Category:Google Summer of Code]]

Latest revision as of 13:53, 12 March 2018

This page is describes a potential 2018 Google Summer of Code project regarding configuration management for the FreeCAD CAE application.

Outline

FreeCAD relies on a large number of software packages and is available on most major platforms (Linux, OSX, Windows), each Distro/OS have several distribution methods available (package managers, Libpacks, pip, Conda, AppImages, installers, etc). This makes for a particularly challenging configuration management environment.

Details

  1. A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.
  2. A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required. It's desirable to identify interdependencies and not re-install them.

Expected Outcome

  1. A concrete/documented view of FreeCD's dependencies (and perhaps the trusted addons)
  2. A reduction in manual effort when releasing new versions of FreeCAD

Future Possibilities

This work will provide experience in the packaging and distribution of multi-platform, cross-dependency software.

Project Properties

Skills

  • Familiarity with
    • package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)
    • build managers (cMake, make, VS, MSBuild, Nmake)
    • graph theory (Dependency graph)

Difficulty

Medium

Additional Information