Commit Graph

64 Commits

Author SHA1 Message Date
wmayer
4d28a062fc CMP0050: make PartDesign module aware of cmake policy 2018-08-20 17:19:04 +02:00
Stefan Tröger
6ae8b6482e PartDesign: Make Base Feature compatible with GeoFeatureGroup. fixes #0003080
The Original BaseFeature implementation had some serious issues with scoped links. It failed completely for e.g. sketches on the BaseFeature as it made a local link to refere to a out of body object. The only solution to make this work correctly is to add a proxy object into the body which is alloed to exactly that, to link outside oof the body. Something like shapebinder.
2017-09-21 11:40:14 +02:00
Eivind Kvedalen
91bafde563 PartDesign Hole Feature implemented.
Minor contributions from Mateusz Skowroński <skowri@gmail.com>
2017-07-26 23:39:00 +02:00
DeepSOIC
096eb67b47 PartPesign: Py: expose some methods of ViewProvider
* setBodyMode(bool)
* makeTemporaryVisible(bool)
2017-03-04 19:16:39 -03:00
wmayer
743b83e853 Add switch to select between Qt4 and Qt5 2016-12-13 15:53:13 +01:00
wmayer
6cfaf916f8 remove superfluous Qt includes 2016-12-13 15:40:49 +01:00
Stefan Tröger
117ae4e6ab Port attachment UI to Part for general use
Furthermore change PartDesign primitives to use the new task dialog
2016-12-07 06:41:40 +01:00
Stefan Tröger
4e1a9c05cb ask user if he creates inter part/body references 2016-04-12 18:12:20 +02:00
Stefan Tröger
6f8dc62297 add task for datum shape features 2016-04-12 18:12:19 +02:00
Stefan Tröger
b610dcc97c fix dependent copy references
to make them work with sketches an additional Part2DObject reference needed to be created
2016-04-12 18:12:19 +02:00
Alexander Golubev
9e47fea5ab PartDisign/WorkflowManager: initial implementation 2016-04-12 18:12:17 +02:00
Alexander Golubev
9347f66a9e PartDesign/Gui: Move various utility stuff from Workbench to a separate file
Also do some header cleanup.
2016-04-12 18:12:17 +02:00
Alexander Golubev
3fff7c6ef2 PartDesign/Gui: move body commands to a separate file 2016-04-12 18:12:16 +02:00
Alexander Golubev
5239f3447c PartDesign/Gui: start to unify view providers code
- Moved all common code for part design features view providers to a base
   class.
 - Move shared code for Sketch based features to newly created
   ViewProviderSketchBased class
 - Add ViewProviderSketchBased to initialization
 - Make Pad and Pocket ViewProviders to use the shared code
 - Minor fixes to TaskFeatureParameters and some derived classes
2016-04-12 18:12:15 +02:00
Alexander Golubev
6778c548f4 PartDesign: move common code for TaskDlg{SketcherBased,DressUp}Parameters into new base class
Added a new class: TaskDlgFeatureBased which currently contains common
code for TaskDlgSketcherBasedParameters::reject() as well as the same
methode for TaskDlgDressUpParameters.
It's likely that other Feature task dialogs will inherit this class too.
2016-04-12 18:12:15 +02:00
DeepSOIC
ae81e7d4c9 PartDesign: Make groove work via Revolution ui
Purpose: remove duplicate code.
Remaining: wrong title and icon in task dialog.
2016-04-12 18:12:14 +02:00
Stefan Tröger
23ebdda871 remove hole feature
A hole feature is something needed, however, the current implementation does not use the attacher code which would made it intuitive and compatibel to other workbench tools. A reimplementation is needed.
2016-04-12 18:12:13 +02:00
Stefan Tröger
d18cd54743 make part design loft functional 2016-04-12 18:12:10 +02:00
Stefan Tröger
17d4ccb537 add loft viewprovider 2016-04-12 18:12:10 +02:00
Stefan Tröger
254e2226ba generalize preview mode 2016-04-12 18:12:09 +02:00
Stefan Tröger
be7d962595 add options for pipe tool 2016-04-12 18:12:09 +02:00
Stefan Tröger
835085bc7c add basic part design pipe infrastructure 2016-04-12 18:12:09 +02:00
Stefan Tröger
6301fce72c add part design thickness 2016-04-12 18:12:08 +02:00
Stefan Tröger
7e3f1bd418 add primitive widget to task dialog 2016-04-12 18:12:07 +02:00
Stefan Tröger
07099e1163 add coordinate system datum 2016-04-12 18:12:07 +02:00
Stefan Tröger
3690040dea basic infrastructure for part design primitives 2016-04-12 18:12:06 +02:00
Stefan Tröger
d5d6b30af3 move feature pick dialog into the task view 2016-04-12 18:12:05 +02:00
jrheinlaender
a6de951e1d Unify code of Dressup features (part 1: Draft) 2016-04-12 18:11:56 +02:00
jrheinlaender
dfce69c4b0 Allow booleans of bodies in PartDesign 2016-04-12 18:11:51 +02:00
jrheinlaender
bf973e06c0 Refactored code of SketchBased features to have common code in an abstract superclass 2016-04-12 18:11:50 +02:00
jrheinlaender
857ede8847 Moved generic Datum class to Part module to avoid Sketcher dependency on PartDesign 2016-04-12 18:11:49 +02:00
jrheinlaender
571d5d2b7d Second step for implementing datum features 2016-04-12 18:11:48 +02:00
jriegel
5f8ebafd7d switch PartDesign to Bodies 2016-04-12 18:11:45 +02:00
jriegel
437bf6d917 Add some commands to assembly 2016-04-12 18:11:44 +02:00
triplus
93c7a6bcac Add SVG workbench icons 2016-02-26 23:17:43 +01:00
wmayer
4b1c74e196 + simplify porting of PartDesign module to Python3 2016-01-20 17:00:43 +01:00
wmayer
72aaaa669a + harmonize Coin3D cmake variables with official check 2015-07-28 14:55:15 +02:00
wmayer
c2c83a353b + harmonize XercesC cmake variables with official check 2015-07-28 14:17:49 +02:00
wmayer
d2b7b730d3 + replace deprecated PYTHON_INCLUDE_PATH 2015-07-25 18:29:42 +02:00
Abdullah Tahiri
48c5b79b81 Sketcher: Major re-structuration: New Solving Model: General Sketch Solve call reduction
=======================================================================================

ActSketch in ViewProvider dissapears. The temporal sketch (sketch.cpp) for solving is now a data member of SketchObject.cpp (hereinafter solvedSketch). All the solving is concentrated in SketchObject.cpp.

SketchObject provides an interface to expose its solver, as it is still currently needed for some UI operations from ViewProviderSketch, like dragging points (solving rubber bands).

ViewProviderSketch still can select whether to draw the solvedSketch geometry (previously ActSketch) geometry (UI staff) or the SketchObject geometry. Performancewise, it makes sense to separate this two
geometries, as the SketchObject one involves modifying the Geometry and Constraint Properties (including all the undo related functionality), which would mess the undo functinality and incur in a big
peformance penalisation while dragging. One characteristic of solvedSketch is that its geometry is solved, whereas the geometry of SketchObject may not have been solved yet.

These geometries may differ at for the following reasons:
1. The geometry corresponds to an ongoing dragging operation, so solvedSketch has the last calculated dragging geometry, while SketchObject has the one corresponding to initial position.
2. Geometry/constraints were added to the sketch, but no solve/execute was triggered yet (envisioned situation is the future group creation functionality not in this commit).

What do I gain?

- Inserting a (simple) geometry element now costs 1 solver execution.
- Inserting a constraint now costs 1 solver executions.

For reference, in previous versions inserting a constraint involved 5 solver executions.

The following information provide a historical review of the coding of this commit (formed of 10 squashed commits):

This is a general sketch solve call reduction, not only during geometry creation (this commit does not include until here any specific measure to reduce calls on geometry creation, that is another branch)

After a lot of profiling, it seems that the "cause"(tm) that creates so many solver calls is that every update generates a solving in ViewProviderSketch, regardless of the need for that update,
many times with the only aim of providing the DoF for the message dialog and keeping ActSketch in sync with SketchObject in case it is needed (currently UI moving points, constraints,...).

Sketch solver is now a data member of SketchObject instead of a temporal object that gets initilized and destroyed.

This allows:
1. Potentially more synergy reducing calls to setUpSketch (still to be seen, still to be optimized)
2. Allowing SketchObject to access the latest geometry that has been solved => In future, allow objects that use SketchObject to obtain the latest
solved geometry instead the geometry of SketchObject that may still be unsolved. This is relevant for drawing the geometry

No more solving in ViewProviderSketch. Solving a Sketch is now an exclusive competence of SketchObject.

There is however a lot of cleaning to do in ViewProviderSketch

(I mean, not that these commits are making a mess in VPSketch,
but that as a consequence of the changes, it should be possible to
optimize VPSketch, specially moving and drawing methods)

Very useful comment for future developers that may wonder why a solve per constraint just upon addition is necessary.

Added a new function to get the size of the geometry of the instance of the solver object (Sketch.cpp).
The previous way was to extract the geometry, which is costly and error prone, as you have to delete it afterwards.

Inserted comment about the necessity of triggering a Part2D update during edit mode
2015-06-15 22:53:59 +02:00
wmayer
696d4a5f4a + fix warnings with clang 2014-09-24 17:46:04 +02:00
Stefan Tröger
512a2b94d2 Adaption of FreeCAD to QuarterWidget
-removes all soqtviewer references
-create a quarter adaptor class which implements missing functionality
-adopts freecad code to make use of SoRenderManager and changed View3DInventorViewer  interface
2014-09-23 10:11:11 +02:00
Johan K
5edd3229cb Added more regular polygons to the sketcher gui 2014-07-27 00:25:40 +02:00
wmayer
6ac93e9d72 Add initial support for different libdir (jobermayr) 2014-05-10 12:57:38 +02:00
wmayer
4b2b243e47 + compile with clang 2014-05-05 16:24:01 +02:00
mdinger
1498e99cef Move python module prefix and suffix properties into macro to be set together 2014-05-03 16:00:30 +02:00
wmayer
67edfb895b + Fix prefix of Python extensions built with MinGW 2014-04-30 18:22:52 +02:00
mdinger
04e2db9109 Comment to document why this module alone is installed differently 2014-04-30 13:41:17 +02:00
mdinger
7982ffe726 Add 4th optional parameter to set linux install path 2014-04-30 13:41:17 +02:00
mdinger
e2bd648e9a Remove unnecessary quotes. 2014-04-30 13:41:16 +02:00