Design456 Workbench

Introduction


The Design456 workbench is an External workbench that plans to implement a Direct Modeling methodology in FreeCAD. Think 'push and pull geometry' that one finds in CAD suites like SketchUp and Fusion360. The original idea came to live when the developer of Design456 wanted to do the basic tasks which is simple and easy to do in 123D Design. FreeCAD could do the same job but the tools aren't interfaced in that way. This workbench will not keep track of old shapes. It tries to clean up the garbage which might be produced during running under commands. It tries to make the tree as simple as possible. Parameters must be decided during the desired manipulations which cannot be changed later.

Background
Traditionally, FreeCAD employs a Parametric Modeling methodology which is a powerful and scalable approach. It is also has been an industry standard. But I wish to have another approach. My workbench will try to implement direct modeling which is not provided at the moment by FreeCAD.

Installation
Download the Design456 workbench via the Addon Manager

Note:
If the above is not working for you please consider :
 * Addon manager no longer works in FreeCAD 0.18 due to changes in Github use FreeCAD 0.20 instead.
 * Invoke the Addon Manager - Tools | Adddon manager.
 * Select Configure..Into Custom repositories enter https://github.com/MariwanJ/Design456.
 * Then OK.
 * Restart FreeCAD.

2D Drawing and manipulation tools

 * [[Image:Design456_3Point.svg|32px]] Design456 Arc3Points: Use this tool to create an Arc from 3 vertices.
 * [[Image:Design456_MultiPointsToWireClose.svg|32px]] Design456 MultiPointsToWireClose: Use this tool to create a series of lines between points selected in series(closed).
 * [[Image:Design456_MultiPointsToWireOpen.svg|32px]] Design456 MultiPointsToWireOpen: Use this tool to create a series of lines between points selected in series (open).
 * [[Image:Design456_2DTrimLine.svg|32px]] Design456 Trim a line: Use this tool delete a line/wire.
 * [[Image:2D_ExtendLine.svg|32px]] Design456 Extend a line or a wire: Use this tool to extend any wire or line.

3D Drawing and manipulation tools

 * [[Image:Design456_Extrude.svg|32px]] Design456 Extrude: Use this tool to extrude any face.
 * [[Image:Design456_Extract.svg|32px]] Design456 Extract Face: Use this tool to extract a face from a 3D object.
 * [[Image:Design456_ExtrudeFace.svg|32px]] Design456 Extrude Face: Use this tool to extract a face from a 3D object and extrude it.
 * [[Image:Design456_Tweak.svg|32px]] Design456 Tweak: Use this tool to move a subshape of the object.
 * [[Image:Design456_SplitObject.svg|32px]] Design456 Split a 3D object: Use this tool to split any 3D object.
 * [[Image:Design456_LoftOnDirection.svg|32px]] Design456 Loft on direction: Use this tool create new 3D object based on the face you select and the scale you choose.
 * [[Image:Design456_PartMerge.svg|32px]] Design456 3D PartMerge: Use this tool to merge 3D objects.
 * [[Image:Design456_PartSubtract.svg|32px]] Design456 3D PartSubtract: Use this tool to subtract/cut 3D objects.
 * [[Image:Design456_PartIntersect.svg|32px]] Design456 3D Parts Intersect: Use this tool to create new object which is common between two shapes intersecting each other.
 * [[Image:Design456_PartGroup.svg|32px]] Design456 3D Part Grouping: Use this tool to collect several parts in one group.
 * [[Image:Design456_PartCompound.svg|32px]] Design456 3D Part Compound: Use this tool to compound different parts.

Alignment tools

 * [[Image:Design456_PartMagnet.svg|32px]] Design456 Magnet: Use this tool align an object on another one by selecting the target face.
 * [[Image:Design456_AlignToPlane.svg|32px]] Design456 Align to plane: Use this tool to align object(s) on the surface of the plane.
 * [[Image:Design456_TopSideView.svg|32px]] Design456 Top Side View: Use this tool align camera and working plane to the Top side.
 * [[Image:Design456_BottomSideView.svg|32px]] Design456 Bottom Side View: Use this tool align camera and working plane to the Bottom side.
 * [[Image:Design456_LeftSideView.svg|32px]] Design456 Left Side View: Use this tool align camera and working plane to the Left side.
 * [[Image:Design456_RightSideView.svg|32px]] Design456 Right Side View: Use this tool align camera and working plane to the Right side.
 * [[Image:Design456_FrontSideView.svg|32px]] Design456 Front Side View: Use this tool align camera and working plane to the Front side.
 * [[Image:Design456_BackSideView.svg|32px]] Design456 Back Side View: Use this tool align camera and working plane to the Back side.
 * [[Image:Design456_MoveObject.svg|32px]] Design456 Move Object: Move, rotate 3D Objects.
 * [[Image:Design456_MoveObjectDetails.svg|32px]] Design456 Move Object in details: Move, rotate 3D and 2D Objects.

FreeCAD Direct Modeling
The main WB development is on this part at the moment. There are some (almost- finished) commands developed, and the development of this part is ongoing. The following are available ..


 * smart Scale
 * smart DirectScale
 * smart Fillet
 * samrt Chamfer
 * smart Extrude
 * smart Extrude Rotate
 * Paint
 * Hole

Note:
Please notice that there is no released version yet for this workbench. Intensively development is ongoing and bug is expected for the tools. Don't use it on serious document yet.

FreeCAD GUI Widgets toolkit
Fr_Widget system is a beginning work for the Coin3D and the QT drawing GUI toolkit. The toolkit will make it easy to make drawing and provides an interactive way to manipulate the objects. The simplicity of the toolkit should make it easy to use it. It will be well documented. Looking at the Devbranch at my github, you will find some widget that are already made. But it is just the beginning. More details will come after finishing the Nurbs tools. The toolkit will be a flavor of FLTK toolkit.

Microelly2 Tools converted
I did the conversion for the Nurbs and fixed many bugs. In the begning I added the project to my WB, but since the tools are not working well, I remove it. The work is huge and there were places where I didn't know how to solve the issues. More time required and more understanding of Microlley's work is required that is why the work on the project is suspended. Some good works are done and you can find the project at : https://github.com/MariwanJ/nurbs


 * Tobe continued!