PartDesign project

Here the project plan for the PartDesign as part of the Development roadmap.

Purpose and principles
This is a software development project aimed to implement a Part Design capabilities. Its about implementing some core features into the CAD modules of FreeCAD, Part, PartDesign and Assembly.

The development steps are planed here and tracked in the Issue tracking system to get a well formed change log: Issue tracker

Outcome
Aim of the project is to enable FreeCAD accomplish a design task like the one at the right.



This will be achived by using the Sketcher and the PartDesign to design special part and Part to load standard part as STEP (like the linear bearing). The Assembly puts it all together with constrains.

Also an important outcome is the Feature editing methodology. Which gives the user an intuitive approach to instantiating and editing Features. This is importand for all other Modules and Workbenches to be come, to comply to a consistent user interface!





MainPart feature
Since a history based modeling can have a lot of steps leading to the final shape a bracket is needed. Thats the MainPart, which holds the final outcome of the modeling and acts as a group to all the features of the history tree.

Pad feature
A Pad feature extrude a Sketch (or any Part2DObject) in its normal direction. Always guaranty a solid, or fail.

Pocket feature
Imprint a sketch in a base solid either defined by depth or "Up to last | Up to first). Also guaranty a solid.

Bore feature
Very good bore parameter definition from the NaroCad specification:

RectangularPattern
Replicate one of the above features along a x,y pattern

What other do

 * SolidWorks examples

Next actions
Next actions are defined in the Mantis roadmap entry for PartDesign:

Roadmap

MainPart
Since the parametric/associative nature of the PartDesign we need finally a "MainPart" which group and organize a construction history. The MainPart itself holds the end result as a shape and has grouped as children the PartDesign features. It also defines the actuall head of the modeling history. Its also related to the Assembly project since its the building block for products and compounds.

Additional features
The Pad and Pocket features are the first teaser for the PartDesign. There is still work to do especially the visibility control and the visual manipulators. But then additional features are needed.

Pattern
Pattern feature which repeatingly apply a Pad or Pocket feature according to a circular or rectangular patter. An Example in IronCAD.

BoreHole
Classical bore hole with all parameters for threading and counter bore....

Sweep
Sweeps a Sketch along a curve and create a Solid.

Revolve
Rotate a Sketch along one of its Axis and a certain angle.

TODO List
1. Fillet Part

1.a Fillet Tool Taskview Gui

1.b Implement ViewProviderFillet

1.c Allow Fillet Selection between pair of faces?

1.d. Automatically fillet selection when activated (determine if faces/edge/whole body)

2. Chamfer Part

2.a Ability to re-edit chamfer

2.b Implement ViewProviderChamfer

3. Pad Tool

3.a Provide a Taskview Gui In progress

3.b Implement ViewProviderPad

3.c Create 'up to next' mode DONE [mrlukeparry]

3.d Create 'up to surface/face' mode [mrlukeparry]

3.e Create draft property for pad DONE [mrlukeparry]

3.f If pad is selected on face automatically create a sketch?

4. Pocket Tool

4.a Provide a Taskview Gui

4.b Create 'up to next' mode

4.c Create 'through all' mode

4.d Create 'up to surface/face' mode

4.e Implement ViewProviderPocket

4.f If pocket is selected on face automatically create a sketch?

5. Revolution Part

5.a Provide Taskview Gui

5.b Allow a line segment/axis to be used for reference

5.c Implement ViewProviderRevolution

6. Hole Feature

7. Pattern Feature

8. Sweep Feature

9. Main Part Feature

10. Reference Geometry

10.a Plane

11. SketchPart

11.a Find Correct Axis orientation (x and y) are in sometimes swapped