Design456 Workbench: Difference between revisions

From FreeCAD Documentation
(Removed the translation tags. Page is in an unfinished state.)
 
(36 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{VeryImportantMessage|This workbench is under heavy development}}
{{VeryImportantMessage|This workbench is under heavy development}}


==Introduction==
==Introduction==


[[Image:Design456_workbench_icon.svg|thumb|128px|Design456 External workbench icon]]
[[Image:Design456_workbench_icon.svg|thumb|128px|Design456 External workbench icon]]
{{TOCright}}
{{TOCright}}


The Design456 workbench is an [[external_workbenches|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 Design456 workbench is an [[External_workbenches|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.
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.

This Wikipage is not updated regularly. To get the latest tool-list, you need to look at Design456 github or youtube videos. Only one developer is working on this project, and time to update these all documents is missing unfortunately.


==Background==
==Background==


Traditionally, FreeCAD employs a Parametric Modeling methodology which is a powerful and scalable approach. It is also has been an industry standard.
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.

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==
==Important 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. Make a copy of you object and apply my tools. By that you know if it works for you or not without taking risk.

==Installation==


Download the Design456 workbench via the [[Image:Std_AddonMgr.svg|24px|link=Std_AddonMgr]] [[Std_AddonMgr|Addon Manager]] {{MenuCommand|Tools → Addon Manager}}
Download the Design456 workbench via the [[Image:Std_AddonMgr.svg|24px|link=Std_AddonMgr]] [[Std_AddonMgr|Addon Manager]] {{MenuCommand|Tools → Addon Manager}}


If the above is not working for you please consider :
===== 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.
* 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.
* Invoke the Addon Manager - Tools | Adddon manager.
Line 28: Line 34:


* Developer: @MariwanJ (Mariwan Jalal)
* Developer: @MariwanJ (Mariwan Jalal)
* Youtube channel : [https://www.youtube.com/user/BestofMyDream Youtube channel] used to announce new updates 2022-01-20
* Github: https://github.com/MariwanJ/Design456
* Github: [https://github.com/MariwanJ/Design456 Design456] used to announce new updates 2022-01-20
* Discussion: https://forum.freecadweb.org/viewtopic.php?f=8&t=54893
* Discussion: [https://forum.freecadweb.org/viewtopic.php?f=8&t=54893 forum thread] Not used anymore 2022-01-20


==Tools==
==Tools==

===2D Drawing and manipulation tools===
===2D Drawing and manipulation tools===
* [[Image:Design456_3Point.svg|32px]] [[Design456_3Point|Design456 Arc3Points]]: Use this tool to create an Arc from 3 vertices.

* [[Image:Design456_MultiPointsToWireClose.svg|32px]] [[Design456_MultiPointsToWireClose|Design456 MultiPointsToWireClose]]: Use this tool to create a series of lines between points selected in series(closed).
* [[Image:Design456_MultiPointsToWireOpen.svg|32px]] [[Design456_MultiPointsToWireOpen|Design456 MultiPointsToWireOpen]]: Use this tool to create a series of lines between points selected in series (open).
* [[Image:Design456_3Point.svg|32px]] [[Design456_3Point|Design456 Arc3Points]]: Use this tool to create an Arc from 3 vertices.

* [[Image:Design456_2DTrimLine.svg|32px]] [[Design456_2DTrim|Design456 Trim a line]]: Use this tool delete a line/wire.
* [[Image:Design456_MultiPointsToWireClose.svg|32px]] [[Design456_MultiPointsToWireClose|Design456 MultiPointsToWireClose]]: Use this tool to create a series of lines between points selected in series(closed).

* [[Image:Design456_MultiPointsToWireOpen.svg|32px]] [[Design456_MultiPointsToWireOpen|Design456 MultiPointsToWireOpen]]: Use this tool to create a series of lines between points selected in series (open).

* [[Image:Design456_2DTrimLine.svg|32px]] [[Design456_2DTrim|Design456 Trim a line]]: Use this tool delete a line/wire.

* [[Image:2D_ExtendLine.svg|32px]] [[Design456_2DExtend|Design456 Extend a line or a wire]]: Use this tool to extend any wire or line .
* [[Image:2D_ExtendLine.svg|32px]] [[Design456_2DExtend|Design456 Extend a line or a wire]]: Use this tool to extend any wire or line .


===3D Drawing and manipulation tools===
===3D Drawing and manipulation tools===

* [[Image:Design456_Extrude.svg|32px]] [[Design456_Extrude|Design456 Extrude]]: Use this tool to extrude any face.
* [[Image:Design456_Extract.svg|32px]] [[Design456_Extract|Design456 Extract Face]]: Use this tool to extract a face from a 3D object.
* [[Image:Design456_Extrude.svg|32px]] [[Design456_Extrude|Design456 Extrude]]: Use this tool to extrude any face of 2D or 3D object.

* [[Image:Design456_ExtrudeFace.svg|32px]] [[Design456_ExtrudeFace|Design456 Extrude Face]]: Use this tool to extract a face from a 3D object and extrude it.
* [[Image:Design456_Tweak.svg|32px]] [[Design456_Tweak|Design456 Tweak]]: Use this tool to move a subshape of the object.
* [[Image:Design456_Extract.svg|32px]] [[Design456_Extract|Design456 Extract Face]]: Use this tool to extract a face, edge or vertex from any object.

* [[Image:Design456_SplitObject.svg|32px]] [[Design456_SplitObject|Design456 Split a 3D object]]: Use this tool to split any 3D object.
* [[Image:Design456_LoftOnDirection.svg|32px]] [[Design456_LoftOnDirection|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_PartMerge|Design456 3D PartMerge]]: Use this tool to merge 3D objects.

* [[Image:Design456_PartMerge.svg|32px]] [[Design456_PartMerge|Design456 3D PartMerge]]: Use this tool to merge 3D objects.
* [[Image:Design456_PartSubtract.svg|32px]] [[Design456_PartSubtract|Design456 3D PartSubtract]]: Use this tool to subtract/cut 3D objects.
* [[Image:simplifyCompound.svg|32px]] [[Design456_SimplifyCompound|Design456 Simplify Compound Obects]]: Use this tool to simplify faces of 3D objects.

* [[Image:Design456_PartIntersect.svg|32px]] [[Design456_PartIntersect|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_PartGroup|Design456 3D Part Grouping]]: Use this tool to collect several parts in one group.
* [[Image:Design456_PartSubtract.svg|32px]] [[Design456_PartSubtract|Design456 3D PartSubtract]]: Use this tool to subtract/cut 3D objects.

* [[Image:Design456_PartIntersect.svg|32px]] [[Design456_PartIntersect|Design456 3D Parts Intersect]]: Use this tool to create new object which is common between two shapes intersecting each other.

* [[Image:Design456_LoftOnDirection.svg|32px]] [[Design456_LoftOnDirection|Design456 Loft on direction]]: Use this tool create new 3D object based on the face you select and the scale you choose.

* [[Image:Design456_PartGroup.svg|32px]] [[Design456_PartGroup|Design456 3D Part Grouping]]: Use this tool to collect several parts in one group.

* [[Image:Design456_PartCompound.svg|32px]] [[Design456_PartCompound|Design456 3D Part Compound]]: Use this tool to compound different parts.
* [[Image:Design456_PartCompound.svg|32px]] [[Design456_PartCompound|Design456 3D Part Compound]]: Use this tool to compound different parts.

* [[Image:PartDesign_Shell.svg|32px]] [[Design456Part_Shell|Design456 3D Part Shell]]: Use this tool to make Shell.

* [[Image:DivideObject.svg|32px]] [[Design456_DivideObject|Design456 3D Divide Object]]: Use this tool to divide 3D object faces.

* [[Image:Design456_SplitObject.svg|32px]] [[Design456_SplitObject|Design456 Split a 3D object]]: Use this tool to split any 3D object.

* [[Image:PartDesign_Fillet.svg|32px]] [[Design456Part_Fillet|Design456 3D Fillet]]: Use this tool to create fillet.

* [[Image:PartDesign_Chamfer.svg|32px]] [[Design456Part_Chamfer|Design456 3D Chamfer]]: Use this tool to create Chamfer.

* [[Image:LoftBetweenFaces.svg|32px]] [[Design456_LoftBetweenFaces|Design456 3D loft between faces]]: Use this tool to fill gap between faces by creating a loft between them.

* [[Image:UnifySplitFuse2.svg|32px]] [[Design456_unifySplitFuse2|Design456 3D unify or split and then fuse]]: Use this tool create diff shapes. (Might be removed in the future)

* [[Image:Design456_Colorize.svg|32px]] [[Design_ColorizeObject|Design456 Colorize 3D object-faces]]: Use this colorize randomly 3D object (each face will get a random color).


===Alignment tools===
===Alignment tools===

* [[Image:Design456_PartMagnet.svg|32px]] [[Design456_PartMagnet|Design456 Magnet]]: Use this tool align an object on another one by selecting the target face.
* [[Image:Design456_PartMagnet.svg|32px]] [[Design456_PartMagnet|Design456 Magnet]]: Use this tool align an object on another one by selecting the target face.

* [[Image:Design456_AlignToPlane.svg|32px]] [[Design456_AlignToPlane|Design456 Align to plane]]: Use this tool to align object(s) on the surface of the plane.
* [[Image:Design456_AlignToPlane.svg|32px]] [[Design456_AlignToPlane|Design456 Align to plane]]: Use this tool to align object(s) on the surface of the plane.

* [[Image:Design456_TopSideView.svg|32px]] [[Design456_TopSideView|Design456 Top Side View]]: Use this tool align camera and working plane to the Top side.
* [[Image:Design456_TopSideView.svg|32px]] [[Design456_TopSideView|Design456 Top Side View]]: Use this tool align camera and working plane to the Top side.

* [[Image:Design456_BottomSideView.svg|32px]] [[Design456_BottomView|Design456 Bottom Side View]]: Use this tool align camera and working plane to the Bottom side.
* [[Image:Design456_BottomSideView.svg|32px]] [[Design456_BottomView|Design456 Bottom Side View]]: Use this tool align camera and working plane to the Bottom side.

* [[Image:Design456_LeftSideView.svg|32px]] [[Design456_LeftSideView|Design456 Left Side View]]: Use this tool align camera and working plane to the Left side.
* [[Image:LeftSideView.svg|32px]] [[Design456_LeftSideView|Design456 Left Side View]]: Use this tool align camera and working plane to the Left side.

* [[Image:Design456_RightSideView.svg|32px]] [[Design456_RightSideView|Design456 Right Side View]]: Use this tool align camera and working plane to the Right side.
* [[Image:Design456_RightSideView.svg|32px]] [[Design456_RightSideView|Design456 Right Side View]]: Use this tool align camera and working plane to the Right side.

* [[Image:Design456_FrontSideView.svg|32px]] [[Design456_FrontSideView|Design456 Front Side View]]: Use this tool align camera and working plane to the Front side.
* [[Image:Design456_BackSideView.svg|32px]] [[Design456_BackSideView|Design456 Back Side View]]: Use this tool align camera and working plane to the Back side.
* [[Image:FrontSideView.svg|32px]] [[Design456_FrontSideView|Design456 Front Side View]]: Use this tool align camera and working plane to the Front side.

* [[Image:Design456_MoveObject.svg|32px]] [[Design456_MoveObject|Design456 Move Object]]: Move, rotate 3D Objects.
* [[Image:BackSideView.svg|32px]] [[Design456_BackSideView|Design456 Back Side View]]: Use this tool align camera and working plane to the Back side.

* [[Image:Design456_MoveObject.svg|32px]] [[Design456_MoveObject|Design456 Move Object]]: Move, rotate 3D Objects.

* [[Image:Design456_MoveObjectDetails.svg|32px]] [[Design456_MoveObjectDetails|Design456 Move Object in details]]: Move, rotate 3D and 2D Objects.
* [[Image:Design456_MoveObjectDetails.svg|32px]] [[Design456_MoveObjectDetails|Design456 Move Object in details]]: Move, rotate 3D and 2D Objects.

* [[Image:Design456_SmartAlignment.svg|32px]] [[Design456_SmartAlignment|Design456 Align multiple objects]]: Do 9 alignments based on shapes bound boxes.
* [[Image:Design456_SmartAlignment.svg|32px]] [[Design456_SmartAlignment|Design456 Align multiple objects]]: Do 9 alignments based on shapes bound boxes.


===[[FreeCAD Direct Modeling|FreeCAD Direct Modeling]]===
==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 ..
Main goal of Design456 is to provide [[FreeCAD Direct Modeling|Direct Modeling]] tool set. There are some tools that are partially finished or ready to use. Please try them and report your comments at the github pages. This wiki will be updated whenever I have time. It is almost certain that the github has more info than these pages (at the moment due to lack of time for updating the wiki pages)

* Smart Scale
* Smart DirectScale
* Smart Fillet
* Smart Chamfer
* Smart Extrude
* Smart Extrude Rotate
* Smart Edge Extend
* Smart Face Extend
* Smart Alignment
* Extend Edge
* Extend Face
* Paint
* Hole
* Reset Placement
* Simplify Edges
* Simplify Faces

==FreeCAD GUI Widgets toolkit==

[[FreeCAD GUI Widgets toolkit|FreeCAD GUI Widgets toolkit]] is a work for providing easy to use Coin3D drawing GUI toolkit. The toolkit will make it easy to draw and should provide an interactive way to manipulate FreeCAD e objects. The simplicity of the toolkit should make it easy to use it.

Widgets gives you the ability to get callbacks, and are inspired by the well known multi-platform toolkit www.fltk.org. Almost all smart tools must have a widget from this toolkit.

==Defeaturing Workbench added to Design456==


I added the workbench to my workbench and further development of the tools will continue. It was necessary to add the de-featuring tools to Design456. More tools must be added to the tool set in the feature.
*smart Scale
*smart DirectScale
*smart Fillet
*samrt Chamfer
*smart Extrude
*smart Extrude Rotate
*smart Edge Extend
*smart Face Extend
*Paint
*Hole
*Reset Placement
*Simplify Edges


*To be continued!
=====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.


==Microelly2 Tools (Nurbs Workbench) converted==
===[[FreeCAD GUI Widgets toolkit|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.


I did the conversion for the Nurbs and fixed many bugs. In the beginning I added the project to my workbench, 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 Github Nurb]. Unfortunately, the code is more experimental code that is not made to be a tool in a workbench. Due to that, I wasn't able to retrieve all tools and it is hard to understand the tools. Most of the code are undocumented. There are good things there but not structured in a way a workbench requires.
===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


Note: Due to what I described, further developing Nurbs workbench is not possible, at least for now.
*Tobe continued!




{{Design456 Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
[[Category:External Workbenches{{#translation:}}]]
[[Category:External_Workbenches{{#translation:}}]]
[[Category:Addons{{#translation:}}]]
[[Category:Addons{{#translation:}}]]

Latest revision as of 14:49, 5 January 2023

This workbench is under heavy development

Introduction

Design456 External workbench icon

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.

This Wikipage is not updated regularly. To get the latest tool-list, you need to look at Design456 github or youtube videos. Only one developer is working on this project, and time to update these all documents is missing unfortunately.

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.

Important 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. Make a copy of you object and apply my tools. By that you know if it works for you or not without taking risk.

Installation

Download the Design456 workbench via the Addon Manager Tools → Addon Manager

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.

References

  • Developer: @MariwanJ (Mariwan Jalal)
  • Youtube channel : Youtube channel used to announce new updates 2022-01-20
  • Github: Design456 used to announce new updates 2022-01-20
  • Discussion: forum thread Not used anymore 2022-01-20

Tools

2D Drawing and manipulation tools

3D Drawing and manipulation tools

Alignment tools

  • Design456 Magnet: Use this tool align an object on another one by selecting the target face.

FreeCAD Direct Modeling

Main goal of Design456 is to provide Direct Modeling tool set. There are some tools that are partially finished or ready to use. Please try them and report your comments at the github pages. This wiki will be updated whenever I have time. It is almost certain that the github has more info than these pages (at the moment due to lack of time for updating the wiki pages)

  • Smart Scale
  • Smart DirectScale
  • Smart Fillet
  • Smart Chamfer
  • Smart Extrude
  • Smart Extrude Rotate
  • Smart Edge Extend
  • Smart Face Extend
  • Smart Alignment
  • Extend Edge
  • Extend Face
  • Paint
  • Hole
  • Reset Placement
  • Simplify Edges
  • Simplify Faces

FreeCAD GUI Widgets toolkit

FreeCAD GUI Widgets toolkit is a work for providing easy to use Coin3D drawing GUI toolkit. The toolkit will make it easy to draw and should provide an interactive way to manipulate FreeCAD e objects. The simplicity of the toolkit should make it easy to use it.

Widgets gives you the ability to get callbacks, and are inspired by the well known multi-platform toolkit www.fltk.org. Almost all smart tools must have a widget from this toolkit.

Defeaturing Workbench added to Design456

I added the workbench to my workbench and further development of the tools will continue. It was necessary to add the de-featuring tools to Design456. More tools must be added to the tool set in the feature.

  • To be continued!

Microelly2 Tools (Nurbs Workbench) converted

I did the conversion for the Nurbs and fixed many bugs. In the beginning I added the project to my workbench, 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: Github Nurb. Unfortunately, the code is more experimental code that is not made to be a tool in a workbench. Due to that, I wasn't able to retrieve all tools and it is hard to understand the tools. Most of the code are undocumented. There are good things there but not structured in a way a workbench requires.

Note: Due to what I described, further developing Nurbs workbench is not possible, at least for now.