TechDraw Roadmap: Difference between revisions

From FreeCAD Documentation
No edit summary
 
(103 intermediate revisions by 8 users not shown)
Line 1: Line 1:
[[File:preferences-techdraw.svg|64px]]
[[File:preferences-techdraw.svg|64px]]
__NOTOC__
__NOTOC__
<translate>


Here is a rough roadmap of areas to be addressed in the [[TechDraw_Workbench|TechDraw Workbench]] in 2023.
<!--T:1-->
The TechDraw workbench is still very much a work in progress. Not all functions are available, and not all functions work correctly. Here is a rough roadmap of areas to be addressed (in no particular order).


===Current Activity=== <!--T:2-->
===Current Activity===
* refactoring code into more maintainable pieces


===Primary Focus for 2023===
<!--T:3-->
* Geometric hatching PAT compatibility. The "delta-X" parameter of the Autodesk PAT specification is not implemented correctly. Also dashed pattern lines start at the face boundary instead being based on a fixed point.
* Projection Group execution speed. The parent DrawProjectionGroup seems to invoke multiple executes of the DrawProjItem children when a single execute would suffice. If the processing for a DrawProjItem is significant, it will slow the overall execution of the group to a crawl. This may not be fixable with the current design.


There are 2 main areas to be addressed in 2023:
===Projection Group=== <!--T:21-->
* conversion between drawing geometry and model geometry
The Projection Group continues to be exasperating. The current version is restricted to "cardinal" directions (Front,Back,Top,Bottom,Left,Right) and their associated iso views and relies on large tables of view directions and rotations. There are almost certainly typographic errors in these tables. A proper geometric solution that supports arbitrary view directions is required.
** these conversions are scattered throughout the code
** the most visible impact is the difficulty in specifying cosmetic geometry
** cosmetic vertex/edge/centerline now rotates with the parent view.


* the "lesser topological naming problem"
<!--T:29-->
** primarily making dimensions survive the renaming of reference geometry
In addition the Projection Group can be painfully slow to recalculate - much slower that equivalent individual views.
*** Phase1 (reference geometry has a new name, but still exists) implemented by [https://github.com/FreeCAD/FreeCAD/pull/8989 PR #8989]
*** First attempt at Phase2 (handling situation where reference geometry has legitimately changed) stalled. Rethinking.
** also affects face hatching
** also affects edge appearance attributes


===Work Completed in 2023===
===Drawing Tools=== <!--T:4-->
* remove redundant edges from HLR result PR #9280
* dimension reference name change handling PR #8989
* RichTextAnnotation fix text size & position in svg export PR #10019
* improve SVG hatch drawing speed PR #9995 and PR #9885
* add large ANSI format templates PR #9825
* fix precision errors in 3d window direction/orientation PR #9577
* add shaft/hole fit annotation PR #8455
* add ANSI Y14.5 compatible font PR #8198
* Replacement for Qt XMLPatterns [https://github.com/FreeCAD/FreeCAD/pull/9104 PR #9104] (Thanks Werner!)
* zoom improvements PR #10547, #10456
* hatch speed improvements PR #9995, #9985


===Other Items for 2023===
<!--T:5-->
These items would be nice to address in 2023:
This includes the ability to add leaders, callouts and detail highlights to Views. It is a prerequisite to many enhancements, particularly in the drawing annotation area, such as feature control frames and reference highlights for detail views.
* drawing overlay
** allow graphics to be added to a drawing page as on a transparent overlay in traditional drafting. This will build on the [https://github.com/WandererFan/FreeCAD/tree/SymbolsAndTraces SymbolsAndTraces] research project and @Evgeniy's schematic workbench.


===2D Geometry=== <!--T:6-->


===Work Completed in 2022===
<!--T:7-->
These items were implemented in 2022:
A number of 2D geometry functions were recently added to the Part module. This needs to be reviewed with an eye towards replacing custom 2D geometry code in TechDraw with standard code from Part.
* Navigation modes
* New face detection algorithm
* PrintAll function
* Bitmap hatching fix
* Extension line gaps
* Section dialog live/deferred update option (implemented as part of complex section)
* Convert all templates to "plain svg" (implemented for latin script templates)
* View stacking order
* Use separate thread for hidden line removal, face finding, section and detail cuts
* replace ActiveView Svg creation with simple screen capture
* complex section views
* easier dimensions from 3d geometry
* simple dimension reference repair dialog


===2022 Plan Items Not Completed===
===Internal View Consistency=== <!--T:8-->
These items are still on the infamous TODO list. They will be worked on as and if time allows.
* Projection group dialog upgrade including live/deferred update option
* Ability to specify file preferences as relative paths [https://github.com/FreeCAD/FreeCAD/issues/6707 6707]
* ability to specify units by dimension or page instead of system wide.
* weld symbol upgrades including ISO/AWS symbology and help text [https://github.com/FreeCAD/FreeCAD/issues/6313 6313]
* ordinate dimensions [https://github.com/FreeCAD/FreeCAD/issues/6587 6587]
* broken view [https://github.com/FreeCAD/FreeCAD/issues/5694 5694]
* improved handling of Draft/Arch objects
* include sketcher points in drawings
* Feature Control Frames (GD&T)
* Threaded hole representation


<!--T:9-->
It is not currently possible to create a Detail from a Section or a MultiView , or a Section from a Detail due to internal differences. Changes here would allow any View type to be a BaseView.


{{TechDraw Tools navi{{#translation:}}}}
===Documentation=== <!--T:10-->
{{Userdocnavi{{#translation:}}}}

[[Category:Roadmap{{#translation:}}]]
<!--T:11-->
The wiki entries for TechDraw are very sparse and need to be expanded considerably.

==="non-Vertex" Dimensions=== <!--T:12-->
There is a need for Dimensions that do not rely on specific vertex/edges, but on extrema of the figure - for example, overall width/height.

===Python Bindings=== <!--T:22-->

<!--T:23-->
The python bindings for basic TechDraw functions have fallen behind the C++ functions. The python routines need to be reviewed and brought up to date.

===Test Suite=== <!--T:24-->
The self-test suite for TechDraw is quite limited at the moment. This should be expanded by an enthusiastic Python programmer!

===Internationalization=== <!--T:25-->
Message/hint strings need to be reviewed to ensure the appropriate translate function are used.

===Bug Fixes/Feature Requests=== <!--T:16-->

<!--T:17-->
* the inability of Qt to export fills/hatches to SVG continues to be a problem, particularly for users of Draft and Arch workbenches.
* "broken view" - the ability to depict very large objects on the page.

===Technical Debt=== <!--T:26-->
The recent rapid pace of TechDraw development has left in its wake numerous "technical imperfections" that should be addressed. One of the biggest involves appearance related Properties which belong to Feature instead of the ViewProvider. This results in unneeded recomputes of the model when only a graphic update is really required.

===Recent Changes=== <!--T:18-->

<!--T:27-->
* TechDraw HiResolution.
* Geometric hatching.
* Garbage Collection and error handling Improvements.
* Arrowhead style preference.
* Template visibility toggle.

<!--T:28-->
Return to [[TechDraw_Module|TechDraw Module]] main page.

<!--T:19-->
[[Category:User Documentation]]
</translate>
<languages/>

Latest revision as of 12:45, 12 September 2023


Here is a rough roadmap of areas to be addressed in the TechDraw Workbench in 2023.

Current Activity

  • refactoring code into more maintainable pieces

Primary Focus for 2023

There are 2 main areas to be addressed in 2023:

  • conversion between drawing geometry and model geometry
    • these conversions are scattered throughout the code
    • the most visible impact is the difficulty in specifying cosmetic geometry
    • cosmetic vertex/edge/centerline now rotates with the parent view.
  • the "lesser topological naming problem"
    • primarily making dimensions survive the renaming of reference geometry
      • Phase1 (reference geometry has a new name, but still exists) implemented by PR #8989
      • First attempt at Phase2 (handling situation where reference geometry has legitimately changed) stalled. Rethinking.
    • also affects face hatching
    • also affects edge appearance attributes

Work Completed in 2023

  • remove redundant edges from HLR result PR #9280
  • dimension reference name change handling PR #8989
  • RichTextAnnotation fix text size & position in svg export PR #10019
  • improve SVG hatch drawing speed PR #9995 and PR #9885
  • add large ANSI format templates PR #9825
  • fix precision errors in 3d window direction/orientation PR #9577
  • add shaft/hole fit annotation PR #8455
  • add ANSI Y14.5 compatible font PR #8198
  • Replacement for Qt XMLPatterns PR #9104 (Thanks Werner!)
  • zoom improvements PR #10547, #10456
  • hatch speed improvements PR #9995, #9985

Other Items for 2023

These items would be nice to address in 2023:

  • drawing overlay
    • allow graphics to be added to a drawing page as on a transparent overlay in traditional drafting. This will build on the SymbolsAndTraces research project and @Evgeniy's schematic workbench.


Work Completed in 2022

These items were implemented in 2022:

  • Navigation modes
  • New face detection algorithm
  • PrintAll function
  • Bitmap hatching fix
  • Extension line gaps
  • Section dialog live/deferred update option (implemented as part of complex section)
  • Convert all templates to "plain svg" (implemented for latin script templates)
  • View stacking order
  • Use separate thread for hidden line removal, face finding, section and detail cuts
  • replace ActiveView Svg creation with simple screen capture
  • complex section views
  • easier dimensions from 3d geometry
  • simple dimension reference repair dialog

2022 Plan Items Not Completed

These items are still on the infamous TODO list. They will be worked on as and if time allows.

  • Projection group dialog upgrade including live/deferred update option
  • Ability to specify file preferences as relative paths 6707
  • ability to specify units by dimension or page instead of system wide.
  • weld symbol upgrades including ISO/AWS symbology and help text 6313
  • ordinate dimensions 6587
  • broken view 5694
  • improved handling of Draft/Arch objects
  • include sketcher points in drawings
  • Feature Control Frames (GD&T)
  • Threaded hole representation