Commit Graph

48 Commits

Author SHA1 Message Date
Stefan Tröger
12c5e1f92f 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
d435e15a97 make part design loft functional 2016-04-12 18:12:10 +02:00
Stefan Tröger
987880fffa add loft viewprovider 2016-04-12 18:12:10 +02:00
Stefan Tröger
342ba89afd generalize preview mode 2016-04-12 18:12:09 +02:00
Stefan Tröger
9c4e1070eb add options for pipe tool 2016-04-12 18:12:09 +02:00
Stefan Tröger
e7803eca61 add basic part design pipe infrastructure 2016-04-12 18:12:09 +02:00
Stefan Tröger
c3f35d9f05 add part design thickness 2016-04-12 18:12:08 +02:00
Stefan Tröger
7654659c18 add primitive widget to task dialog 2016-04-12 18:12:07 +02:00
Stefan Tröger
8fdde38e75 add coordinate system datum 2016-04-12 18:12:07 +02:00
Stefan Tröger
52c8a19d4d basic infrastructure for part design primitives 2016-04-12 18:12:06 +02:00
Stefan Tröger
83ab03a491 move feature pick dialog into the task view 2016-04-12 18:12:05 +02:00
jrheinlaender
a2359adb2e Unify code of Dressup features (part 1: Draft) 2016-04-12 18:11:56 +02:00
jrheinlaender
638cfd2682 Allow booleans of bodies in PartDesign 2016-04-12 18:11:51 +02:00
jrheinlaender
b815656649 Refactored code of SketchBased features to have common code in an abstract superclass 2016-04-12 18:11:50 +02:00
jrheinlaender
5b3d5e6bd8 Moved generic Datum class to Part module to avoid Sketcher dependency on PartDesign 2016-04-12 18:11:49 +02:00
jrheinlaender
3b81168e41 Second step for implementing datum features 2016-04-12 18:11:48 +02:00
jriegel
fbd763a8f4 switch PartDesign to Bodies 2016-04-12 18:11:45 +02:00
jriegel
6700512efe Add some commands to assembly 2016-04-12 18:11:44 +02:00
triplus
d432c72a15 Add SVG workbench icons 2016-02-26 23:17:43 +01:00
wmayer
91d6e24f1e + simplify porting of PartDesign module to Python3 2016-01-20 17:00:43 +01:00
wmayer
b81482d597 + harmonize Coin3D cmake variables with official check 2015-07-28 14:55:15 +02:00
wmayer
7d98705396 + harmonize XercesC cmake variables with official check 2015-07-28 14:17:49 +02:00
wmayer
d95003e92c + replace deprecated PYTHON_INCLUDE_PATH 2015-07-25 18:29:42 +02:00
Abdullah Tahiri
0e92e6356f 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
032c893183 + fix warnings with clang 2014-09-24 17:46:04 +02:00
Stefan Tröger
72cab0c002 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
7fadaa0a55 Added more regular polygons to the sketcher gui 2014-07-27 00:25:40 +02:00
wmayer
6b89c03181 Add initial support for different libdir (jobermayr) 2014-05-10 12:57:38 +02:00
wmayer
3b6d07833d + compile with clang 2014-05-05 16:24:01 +02:00
mdinger
337f05d56e Move python module prefix and suffix properties into macro to be set together 2014-05-03 16:00:30 +02:00
wmayer
1a7cea9b59 + Fix prefix of Python extensions built with MinGW 2014-04-30 18:22:52 +02:00
mdinger
5fbc308ce4 Comment to document why this module alone is installed differently 2014-04-30 13:41:17 +02:00
mdinger
88a3e5bf0e Add 4th optional parameter to set linux install path 2014-04-30 13:41:17 +02:00
mdinger
a17cce3559 Remove unnecessary quotes. 2014-04-30 13:41:16 +02:00
mdinger
1942bb7906 Apply SET_BIN_DIR macro to Mod 2014-04-30 13:41:13 +02:00
jrheinlaender
0773311d5b Created Draft feature for PartDesign 2012-12-04 10:59:41 +01:00
logari81
83cca85c1c PartDesign: put selection filter in separate file in order to be reused by multiple features 2012-11-03 22:48:04 +01:00
jrheinlaender
4679a10d5c PartDesign: list original feature candidates for creation of transformed features if current selection is not valid 2012-09-15 09:20:51 +02:00
logari81
68995739d6 PartDesign: add messages frame in the task view of Transform/Pattern features 2012-09-14 12:51:59 +02:00
jrheinlaender
b30a49ece3 PartDesign: implement Transform and Pattern features 2012-09-07 11:55:26 +02:00
jrheinlaender
33ecf9e768 Groove feature (code is 99% identical to Revolution feature) 2012-06-08 17:32:53 +02:00
wmayer
5f140253fa Support of INSTALL target on Windows (VC++ and MinGW) 2012-02-17 21:41:00 +01:00
wmayer
905fb1a53f Fix INSTALL target in cmake files 2012-02-17 00:03:30 +01:00
logari81
16b4578667 + synchronize PartDesign/Chamfer version with PartDesign/Fillet
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5299 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-12-13 19:32:19 +00:00
wmayer
bde949f7e4 0000519: Patch to set proper RPATH's for system wide installation on Linux
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5270 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-12-11 12:36:36 +00:00
wmayer
ef9275ce4d + add kwahoo's Spring script to PartDesign
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5142 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-11-17 09:29:05 +00:00
jriegel
72bfc3c74b + Add fillet dialog
+ fix undo/redo bug in edit PartDesign features 
+ partially clean up module dependency in ViewProvider base class

git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5108 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-11-09 23:23:10 +00:00
wmayer
120ca87015 + unify DLL export defines to namespace names
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5000 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-10-10 13:44:52 +00:00