Commit Graph

5360 Commits

Author SHA1 Message Date
Alexander Golubev
8bca27463e Part/Attacher: remove a couple of no more valid asserts 2016-04-12 18:12:18 +02:00
Alexander Golubev
797d6d3a11 App/Origin: big refactoring
- Rebase App::Origin on App::DocumentObject
 - Keep all control over the Origin structure inside the Origin and it's
   ViewProvider
 - Add OriginFeature class as common base for App::Plane and App::Line
 - Rebase App::Plane and App::Line on top of newly created class and
   move to the file.
 - Change Origin's ViewProvider API associated with temporary display
 - Lots of associated changes to files
 - Several minor fixes
 - Lots of new bugs
2016-04-12 18:12:18 +02:00
Alexander Golubev
c6797b6c29 Revert "part deletion handling"
This reverts commit 6ab2002021ac1df26ebe77f488f5cd94e1df0b26.
2016-04-12 18:12:17 +02:00
Alexander Golubev
76b4685b5f Commented out a portion of code cosed a segfault 2016-04-12 18:12:17 +02:00
Alexander Golubev
5016054a8b PartDesign/Body: move deletion of subobjects to view provider 2016-04-12 18:12:17 +02:00
Alexander Golubev
abc925b62e PartDesign/Gui: Make partDesign's add sketch command Workflow-aware 2016-04-12 18:12:17 +02:00
Alexander Golubev
492f1d24a4 PartDesign/Gui: initial migration command implementation 2016-04-12 18:12:17 +02:00
Alexander Golubev
c4f094bba4 PartDesign/Gui: rename some fonctions in ReferenceSelection.cpp
e.g. getPythonStr -> buildLinkListPythonStr etc
2016-04-12 18:12:17 +02:00
Alexander Golubev
f9e67626ec PartDesign/Body: remowe Part::Feature from isAllowed() 2016-04-12 18:12:17 +02:00
Alexander Golubev
c388a84424 PartDisign/WorkflowManager: initial implementation 2016-04-12 18:12:17 +02:00
Alexander Golubev
8a2d4289f6 PartDesign/FeaturePrimitive: suppress a -Woverloaded-virtual warning 2016-04-12 18:12:17 +02:00
Alexander Golubev
c782a11aab 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
a5fcd5775e PartDesign: update body management commands according to the changes in body paradigms 2016-04-12 18:12:16 +02:00
Alexander Golubev
8b62680fe7 Sketcher: minor enhance in sketch interaction with body 2016-04-12 18:12:16 +02:00
Alexander Golubev
bf94c3ebf7 PartDesign: fix negative Offset property in pad and pocket 2016-04-12 18:12:16 +02:00
Alexander Golubev
444986e88a PartDesign/Gui: move body commands to a separate file 2016-04-12 18:12:16 +02:00
Alexander Golubev
8c5d514b18 PartDesign: Body rework - add BaseFeature property and make Tip always point to solid 2016-04-12 18:12:16 +02:00
Alexander Golubev
e3c00ce650 PartDesign/ViewProviderPad: removed a TODO 2016-04-12 18:12:16 +02:00
Alexander Golubev
1b1bd5f17e PartDesign/Gui: make Transformed ViewProviders use common code with other 2016-04-12 18:12:16 +02:00
Alexander Golubev
9cba6c48ea PartDesign/TaskMultiTransformParameters: fix a segfault
The segfault was caused by premature delete of object
TaskMultiTransformParameter::subFeature refered to.
Steps to reproduce:
1. Create a multitransform
2. Add a sub transfurmation to it
3. Press cancel
2016-04-12 18:12:16 +02:00
Alexander Golubev
113c10a2b7 PartDesign: make transform parameter dialogs use common base code with other dialogs
subj;
Make PasrtDesign::Transformed provide common for all features
classes interface getBaseObject() instead of specific getSupportObject ();
Refactor some TransformedParameters methods.
2016-04-12 18:12:16 +02:00
Alexander Golubev
e6a99ce96f PartDesign/Workbench: fix a crash 2016-04-12 18:12:16 +02:00
Alexander Golubev
147aff0395 PartDesign/Feature: minor gramma fix 2016-04-12 18:12:16 +02:00
Alexander Golubev
da1fb99dc5 PartDesign/ViewProvider: minor enhancements 2016-04-12 18:12:16 +02:00
Alexander Golubev
e28aaf4592 PartDesign/TaskDressUpParameters: disable edit of dressup features with broken supports
Also remove unused headers and fix spacing.

A final fixup for issues addressed in:
cb05b01 PartDesign/TaskDressUpParameters: fix a crash when editing a broken object
2016-04-12 18:12:15 +02:00
Alexander Golubev
1876c76f3c PartDesign/Gui: make DressUp view providers use the common code. 2016-04-12 18:12:15 +02:00
Alexander Golubev
55f3f52f54 PartDesign/Feature: add an optional parameter to getBaseObject() to prevent it from throwing exceptions
In most cases getBaseObject() is used with an exception handler which
only detects if it failed but not the reason. This modification allows
to use it without excess exception handlers.
Also add the same parameter to SketchBased::getVerifiedSketch().
2016-04-12 18:12:15 +02:00
Alexander Golubev
013381ccb6 PartDesign/Gui: share code for revolution and groove view providers 2016-04-12 18:12:15 +02:00
Alexander Golubev
5ee0cea467 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
6266d514d3 PartDesign/ViewProviderDatum: minor fix in a comment 2016-04-12 18:12:15 +02:00
Alexander Golubev
5f6f16e757 PartDesign/FeatureDressUp: implement a proper getBaseObject()
The function getBaseShape() is removed and replaced with getBaseObject()
because it doesn't make a lot of scense: getBaseShape() masked the
base's class implementation (rather than redefine a virtual) which was
better in words of code reuse.

Also BaseFeature and Base properties relations are defined now in a
little another way.
2016-04-12 18:12:15 +02:00
Alexander Golubev
9feff04aad PartDesign/TaskDressUpParameters: fix a crash when editing a broken object 2016-04-12 18:12:15 +02:00
Alexander Golubev
0ca40ed48b PartDesign/Task{Pad,Pocket}Parameters: massive refactoring
Give a massive refactoring to Task dialogs for pocket and pad.
This commit features:
 * Make Task dialogs for pocket and pad look nice in side-by side diff and
   cross import features missing in each other.
 * As a result it fixes several minor bugs.
 * Gives a rework to the UpdateUI function.
 * This one also fixes offset option support and migrates it to use unit
   framework.
2016-04-12 18:12:15 +02:00
Alexander Golubev
143760c8d3 PartDesign/ViewProviderPad: removed unfinished reimplementation of doubleClick()
This one resulted in non proper reject of pad dialog. Because the
command transaction haven't started.
2016-04-12 18:12:15 +02:00
Alexander Golubev
11a71d46e3 PartDesignGui: move signal connections in several parameter dialogs after ui initialization 2016-04-12 18:12:15 +02:00
Alexander Golubev
f16829baee PartDesignGui: Make DressUp and SketchSupport propertie dialogs use common accept() structure 2016-04-12 18:12:15 +02:00
Alexander Golubev
12742d94de PartDesign/TaskThicknessParameters: fix copy-paste mistake in dialog 2016-04-12 18:12:15 +02:00
Alexander Golubev
9db8afd716 PartDesignGui: move shared code for all dressUp features into common place.
Also this allows the old workflow for thickness and draft features.
2016-04-12 18:12:15 +02:00
Alexander Golubev
b14d7c2e14 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
Alexander Golubev
0208a3667d PartDesign/FeatureDressUp: make Base and BaseFeature properties track the same feature
Also remove reseting of read-only flag on placement properties on
removing Base feature: it doesn't make any scense for dressup features.
2016-04-12 18:12:15 +02:00
Alexander Golubev
98a0e30582 PartDesign: fix a crash in the loft 2016-04-12 18:12:14 +02:00
Alexander Golubev
86db4c3215 PartDesign/Gui: enable sketches on datum planes inside bodies 2016-04-12 18:12:14 +02:00
Alexander Golubev
e586f55fb2 PartDesign/Gui: more old workflow support
* remove an error message if adding a sketchbased feature without a body
* add champfer or fillet old workflow support

Also rework finishFeature() so at least champfer and fillet may be
inserted into any place of any apropriate body(not only the active one) of the body.
2016-04-12 18:12:14 +02:00
Alexander Golubev
a6ebfa496f PartDesign/Gui/TaskDlgSketchBasedParameters: emhance object hiding/unhiding on reject() 2016-04-12 18:12:14 +02:00
Alexander Golubev
4590305921 PartDesign/Gui: enhance the TaskFeaturePick with new cotegory of sketches: notInBody
Also add option tp show already used sketches and fix some spacing.
2016-04-12 18:12:14 +02:00
Alexander Golubev
ffc6cc2f23 Share code for finding a body containing a feature 2016-04-12 18:12:14 +02:00
DeepSOIC
16e4ce20f0 PartDesign workflow without part/body
PartDesign: make datum features work outside of body/part
PartDesign old workflow: remove a few messageboxes about no part
PartDesign: old workflow: multitransform without body

Still has visibility issues, but generally works.
2016-04-12 18:12:14 +02:00
DeepSOIC
c3da141020 Revolution: fix failure on sketch edges used as an axis
PartDesign Revolution used to fail, when an edge of a sketch was
selected as an axis of revolution. This is fixed by this commit.
Also, made it support selecting an edge from the sketch the revolution
itself is made from.
2016-04-12 18:12:14 +02:00
DeepSOIC
125dda4d70 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
DeepSOIC
9776d30b87 PartDesign: rework axis and plane comboboxes and make it work without part.
Rework combobox filling and link hadling for revolution and transformed features, in order to get rid of hard-coded item indexes and make the lists more dynamic.
2016-04-12 18:12:14 +02:00
DeepSOIC
2625233dff PartDesign: disable migration
Temporary. Later, a way to manually invoke it should be made.
2016-04-12 18:12:14 +02:00
Alexander Golubev
f509e1b0f1 remove unneeded sketcher tools from part design
Previously similar patch was commited by Stefan Tröger <stefantroeger@gmx.net> but lost during rebase.
2016-04-12 18:12:14 +02:00
Stefan Tröger
a8bd2f6f7f prevent part design features from accidently cross referencing 2016-04-12 18:12:14 +02:00
Stefan Tröger
318c65eafd fix independent copy and cross reference 2016-04-12 18:12:14 +02:00
Stefan Tröger
a35c231d2a first take on enhanced feature pick task 2016-04-12 18:12:14 +02:00
Stefan Tröger
45aca9fb55 fix loft top face location 2016-04-12 18:12:13 +02:00
Stefan Tröger
986623f462 fix loft tool naming 2016-04-12 18:12:13 +02:00
Stefan Tröger
d2f4410c1e fix datum crash when origin is selected 2016-04-12 18:12:13 +02:00
Stefan Tröger
e876d9aa81 fix loft result orientation 2016-04-12 18:12:13 +02:00
Stefan Tröger
ef11b75c79 fix pipe tool result orientation 2016-04-12 18:12:13 +02:00
Stefan Tröger
45861b4f92 remove linear and S-shape scaling from pipe
They worked and are nice feature, but the handling with properties must be worked out better. To avoid any incompatibility due to property changes the functionality is removed now.
2016-04-12 18:12:13 +02:00
Stefan Tröger
d980952d31 fix body and part tool texts 2016-04-12 18:12:13 +02:00
Stefan Tröger
7d759a5793 delete features when deleting body 2016-04-12 18:12:13 +02:00
Stefan Tröger
ecfe545b3b add part tool to task dialog for no selection 2016-04-12 18:12:13 +02:00
Stefan Tröger
0606e767cd fix pipe task dialog icon 2016-04-12 18:12:13 +02:00
Stefan Tröger
939286ca3e add shaft wizard only when building fem 2016-04-12 18:12:13 +02:00
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
DeepSOIC
72c70bcc50 Datum UI: fixes
* fix messagebox not popping when clicking OK but status is error
* accept preselection
* unify code for all datum commands
* edit selected datum if type matches, instead of creating new one
2016-04-12 18:12:13 +02:00
DeepSOIC
a48f9a682c Sketcher: use Selection's getAsPropertyLinkSubList 2016-04-12 18:12:13 +02:00
DeepSOIC
03e354f7ac PartDesign: fix porting procedure...
...that caused an assert in attacher that back/front subshape strings
were used for attachment to App::Plane.
2016-04-12 18:12:13 +02:00
DeepSOIC
4e57b1a2ec Datum UI: fixes
* fix highlighting of reference buttons when active
* fix selection of whole objects
* fix some other logic
2016-04-12 18:12:13 +02:00
Stefan Tröger
de0768af80 fix crash on datum point preselect
It is unclear why the coordinates are NULL. This fix prevents the crash but does not fix the reason why this unnormality occurs.
2016-04-12 18:12:13 +02:00
Stefan Tröger
7deb6393cc no temporaries at by reference parameter 2016-04-12 18:12:12 +02:00
Stefan Tröger
4e295c03ed fix crash in boolean op if no base feature exists 2016-04-12 18:12:12 +02:00
DeepSOIC
98717f010a Attacher: proximity modes
The modes that base on distToShape:
* a line that connects the closest points,
* the actual points
2016-04-12 18:12:12 +02:00
DeepSOIC
a3d9907e8c PartDesign: adapt Datum UI to work using Attacher
* adapt
* introduce mode selection
* kill selection gate to allow selecting whole objects (selection gate
should be reintroduced to disallow references between parts, no
restrictions is a temporary state)
* prevent auto-switchover to next ref after an explicit push of a button
* fix highlighting of buttons when selecting corresponding reference
* allow creation of a feature, even if no mode fits references. With a
warning.
2016-04-12 18:12:12 +02:00
DeepSOIC
a5d38c9a99 PartDesign: patch old partdesign porting for changes in Datums 2016-04-12 18:12:12 +02:00
DeepSOIC
9e440b955c PartDesign: transfer Datums to become AttachableObjects
Crude and quick, needs cleanup.
2016-04-12 18:12:12 +02:00
DeepSOIC
40592e6055 Attacher: line and point AttachEngines. Other changes.
* propose attachment modes
* refactor setUp and Copy
* split off postprocessing from 3D to reuse in 1D and 0D calculations
* AttachableObject: fix error printout in onChange
* AttachableObject: no more defaults to Attacher3D
* implementation of lines and points attachment (some of the proposed modes).
* refactor getShapeType, add getShapeType(obj, sub); add a flag to eRefType enum, indicating that referenced thing is a whole object that has placement.
* change readLinks to be static, and obtain shape types in the process.
* test mode enums lengths equality
* extend ObjectXY to work on conics.
* Fix upside-down sketches attached as TangentPlane on most shapes.
* Fix crash when a shape of unlisted type is in the links.
* fix attaching to datum lines go crazy because of infinities.
* abs->fabs
* support for App::Line
* Add namespace qualifiers to TYPESYSTEM_SOURCE-like stuff
2016-04-12 18:12:12 +02:00
DeepSOIC
4800957858 Attacher: change Part2DObject's MapMode default to mmDeactivated, and set mode to mmFlatFace only when reading files of old format.
PartDesign, Sketcher: set mapping mode when setting support

Mapping mode mmFlatFace is no longer default, so an explicit assignment
is required.
2016-04-12 18:12:12 +02:00
DeepSOIC
fa441a9623 PropertyLinkSubList, Sketcher: move legacy Support readout from PropertyContainer to Part2DObject 2016-04-12 18:12:12 +02:00
DeepSOIC
ad01411efc Attacher: fix crash of suggestor on compounds 2016-04-12 18:12:12 +02:00
DeepSOIC
34784b2d29 PartDesign: Fix revolution
It failed to close task if starting a body.
2016-04-12 18:12:12 +02:00
DeepSOIC
f688546106 InvoluteGear: positionBySupport 2016-04-12 18:12:12 +02:00
DeepSOIC
acac286cd0 Sketch: expose positionBySupport python func 2016-04-12 18:12:12 +02:00
DeepSOIC
4cc9b32e32 PartDesign: accomodating to sketch's multisupport
* FeatureSketchBased getSupportFace check for mapping mode
* Fixes failure to place sketches on DatumPlanes
2016-04-12 18:12:12 +02:00
DeepSOIC
2a390660c8 Sketcher: minimalistic UI for new attachment engine 2016-04-12 18:12:12 +02:00
DeepSOIC
42ecc24ec5 Sketcher: new attachment engine 2016-04-12 18:12:12 +02:00
DeepSOIC
061747f367 Sketcher: change Support from PropertyLinkSub to PropertyLinkSubList
Note: may fail to build after this commit...
2016-04-12 18:12:12 +02:00
DeepSOIC
eccff10d90 PartDesign: fix refuse to pad
When something was depending on a sketch (another sketch, for example),
padding (revolving, pocketing, etc) it was impossible. This is fixed.

Also, padding or revolving a single sketch twice was allowed (with a
warning msg displayed).
2016-04-12 18:12:11 +02:00
Alexander Golubev
445c26f658 PartDesign/Body: make insert/removeFeature treat NULL in a less special way 2016-04-12 18:12:11 +02:00
Alexander Golubev
bf58a7be2a PartDesign: make MoveFeatureInTree command use new insert functions 2016-04-12 18:12:11 +02:00
Alexander Golubev
9c113357c5 PartDesign: add migrating sketch support to MoveFeature command 2016-04-12 18:12:11 +02:00
Alexander Golubev
03d3f45277 PartDesign/Workbench: make a message more translation-frendly 2016-04-12 18:12:11 +02:00
Alexander Golubev
ad461fc472 PartDesign: fix spacing in several files 2016-04-12 18:12:11 +02:00
Alexander Golubev
7e1a76eb37 PartDesign/Workbench: move fix of sketch support into separate function
Outside PartDesign sketches can have no support plane for them. But
PartDesign doesn't allow that.
Move the code for migration of "free" sketches of planes
into a separate fuction so it may be reused.
2016-04-12 18:12:11 +02:00
Alexander Golubev
7c2413b0aa PartDesign/Body: add methodes to insert features into specific place
Add a Body::insertFeature() methodes as well as python API for it.
2016-04-12 18:12:11 +02:00
DeepSOIC
ec2bbc4c34 Loft: fix build with MSVC2013 2016-04-12 18:12:11 +02:00
DeepSOIC
4b48362ec6 PartDesign: refactor positionBySketch
Rename it to positionByPrevious. Rewrite.
Rewrite SketchBased::transformPlacement.
2016-04-12 18:12:11 +02:00
DeepSOIC
03be8e1bba PartDesign: tidy up sketch support and base feature confusion
Not complete, transformPlacement and positionBySketch are pending...
2016-04-12 18:12:11 +02:00