Commit Graph

84 Commits

Author SHA1 Message Date
Uwe
cfdf334b7f [PD] add option to create tapered Pad / Pocket
This PR adds the same functionality as provided by Part Extrude.
The used code parts are sorted out to a new helper function that is used by Part and PartDesign.
2022-02-02 01:04:06 +01:00
wmayer
ad7ab573eb PD: PrefQuantitySpinBox now requires an explicit entry name for the parameter group 2022-01-31 16:47:08 +01:00
Uwe
66864bbe7b [PD] Pad/Pocket: sort out duplicated code
the checkboxes are almost identical and it avoids work to have them in one location
2022-01-14 13:17:25 +01:00
Uwe
626425526b [PD] sort out more Pad/Pocket code
as suggested in #5349
2022-01-10 14:33:02 +01:00
Uwe
5aadc54d18 [PD] Pad/Pocket: fix reverse behavior
- bring back intended behavior as in FC 0.19:
 - if 2 lengths, then midplane is invisible
 - if reversed checked, then no symmetric and if symmetric then no reverse
- unify the code for Pad and Pocket (reversed is always visible)
- fix a typo in a bool name
2022-01-08 01:15:23 +01:00
Uwe
7c158a3751 [PD] rename a UI file
Pad and Pocket share the same UI file therefore change the name to make this clear that changes in that file must be handled for Pad and Pocket
2022-01-07 20:36:29 +01:00
wmayer
cb8330d5bd PD: code-refactoring of TaskExtrudeParameters 2021-11-27 01:45:08 +01:00
wmayer
e412c3f4cc PD: add enum class to TaskPadParameters to avoid to work with magic numbers 2021-11-26 16:58:59 +01:00
wmayer
6a0cf8233a PD: create a common base class of TaskPocketParameters and TaskPocketParameters to reduce code duplications 2021-11-26 16:23:45 +01:00
Uwe
1da079b34b [PD] better solution for reversed pad/pocket handling
- let FeatureExtrude set the right direction
- use the UI as once intended: custom vector values are always taken as they are, so reversing a custom direction will not lead to a negation of the custom vector in the UI. The logic is: "take the vector as it is, and when Reversed is on, negate it additionally"
2021-11-23 04:22:37 +01:00
Uwe
4c72df3480 [PD] fix pad/pocket UI issues
- update the preview when the direction is changed in the dialog
- don't uncheck the direction viewbox without any reason
- only recompute once
- update the direction information on reversion
- only pocket: add missing code we have in pad (proper code merging will follow the next days)
2021-11-23 02:48:25 +01:00
wmayer
3dc9acef62 PD: [skip ci] fix warning -Wunused-variable 2021-11-17 19:06:35 +01:00
Uwe
838bdf93bc [PD] fix issue 0004785
- then the profile of a pad/pocket was a face, the direction handling was completely broken
2021-11-15 15:44:28 +01:00
Uwe
4a4db353a5 [PD] fix pad/pocket direction issue
- the info if a custom direction is used, was incorrectly determined by checking a checkbox that only displays the vector value, no matter if it is a custom vector or not
2021-11-13 04:03:04 +01:00
Uwe
8173f79dc7 [PD] code improvements for TaskPadParameters
as requested by @chennes in PR #5164, the code can be simplified:

- remove a redundant type cast, a redundant qualifier and an inconsistent and unnecessary check
2021-11-11 02:08:57 +01:00
wmayer
0503f06930 PD: do not enforce a reference axis when no profile is used to pad a face 2021-10-08 18:21:42 +02:00
donovaly
fb49450c62 [PD] fixes for padding along edge
- handle custom direction like all other directions
- allow to view the direction vector for all directions, but only to edit for custom
- fix enabling of the length alongNormal option
- also fix a translation issue
2021-09-29 01:11:50 +02:00
donovaly
52436033b8 rebase to master 2021-09-20 01:37:47 +02:00
donovaly
6ce6a8a1e0 small fixes as suggested by @chennes
therefore also in the helix code
2021-09-20 00:59:17 +02:00
donovaly
069e765db0 [PD] add feature to select pad direction via an edge
This was requested by users in the forum and is indeed very valuable for the usability.
2021-09-20 00:59:16 +02:00
Yorik van Havre
d0de6284f9 Merge pull request #4872 from berberic2/PD_pad_ui_change
PartDesign: Hide the custom direction fields in Pad if no custom direction is used
2021-08-23 14:28:03 +02:00
0penBrain
b2cf8581e0 [PartDesign] Add reverse ability for Pad/UpToFace mode as it makes sense for curved faces
And does not hurt/break in case face is reachable in only one direction
2021-08-17 12:07:02 +02:00
0penBrain
c561b5ac1f [PartDesign] Fix 'Reversed' no more available in Pad 'toFirst/toLast'
While useless 'Midplane' was still visible
 Bug introduced in commit #cf11f388, not fixed by commmit #b4b1cbed
 Also fixing some typos
2021-08-17 12:07:02 +02:00
M G Berberich
82f1f5cc2b PartDesign Pad UI-fix
hide the custom direction fields if no custom direction is used, to
unclutter the UI.
2021-08-16 19:38:05 +02:00
donovaly
0a2eb2756f [PD] some fixes for the new pad length feature
- disable 2 properties when no custom direction is used
- rename a property because its name is the opposite of what it is doing
2021-03-25 17:44:30 +01:00
wmayer
b4b1cbedb1 PD: fix several issues in pad:
* pass boolean instead of int to setValue of PropertyBool
* support of symmetric option for two-length mode
* fix bug in TaskPadParameters::updateUI()
* remove strange acronyms from method names
2021-03-22 16:40:15 +01:00
donovaly
cf11f38875 [PD] add along length option for pad
- as discussed here: https://forum.freecadweb.org/viewtopic.php?f=17&t=50466&start=10#p433327
this PR is the first step for new Pad features.
It implements 3 features requested by users:
1. an option to measure the pad length along its direction if there is a custom direction
2. when there are two lengths, the reverse feature should be active
3. the pad dialog shows now always the used pad direction, no matter if it is a custom one or the sketch's normal

- Furthermore there are some code improvements (avoid rounding and blocking signals)

- Also adapt TestPad.py because its test used the case two lengths + reversed but this was not possible before this PR - the reverse option was not take into account for two lengths in FeatureSketchBased.cpp)
Now it is and therefore the test must be updated:
In the test the second sketch has the normal vector 0, -1, 0. As the reverse option is set the pad direction is 0, 1, 0. So in y direction is the length (1mm) and in -y direction is length2 (2mm). This gives together with the other pad of volume 1, a total volume of 4.

- fix UI issue: either reversed or midplane
As noticed by @chennes, when the pad uses symmetric, reversed is not sensible and vice versa.
This commit fixes the missing Gui side for the case midplane is checked and the App side.

- the PR also fix two typos
2021-03-22 16:36:04 +01:00
donovaly
2ac84872ec [PD] make pointers to the UI std::unique_ptr
Same as PR #4293, just for PartDesign

as noted in https://github.com/FreeCAD/FreeCAD/pull/4271#discussion_r554673632
the pointer to the UI should be a unique pointer.

This PR does this for all PartDesign dialogs that don't already use a unique_ptr.
2021-02-05 18:01:57 +01:00
donovaly
7cbc9cf5f0 [PD] allow to pad in any direction
It saves a lot of work if one can directly pad in any direction and OCC allows this.

This PR adds the possibility to define a custom vector for the padding direction.
2020-09-12 16:33:44 +02:00
donovaly
81a98a4476 [PD] bind expression to pad offset
It is strangely not possible to use an expression for a pad offset, but this works fine, see the forum for an example.

Thus allow this.
2020-08-08 13:04:34 +02:00
Zheng, Lei
11a93a0578 PartDesign changes
* Mostly for supporting in-place editing

* Add new SubShapeBinder that support cross coordinate system,
  external, and sub-object binding
2019-08-17 15:15:47 +02:00
wmayer
f6ff4ed590 improve UpToFace option of pad/pocket for datum planes 2018-01-06 17:36:14 +01:00
luzpaz
56af703746 Fix Techdraw UI typo found via crowdin + misc. typos
Ref: https://crowdin.com/translate/freecad/27911/en-eu#6503377
2017-11-26 15:48:20 +01:00
wmayer
664cf65d26 fix -Wextra in PartDesign 2016-09-22 18:34:56 +02:00
Mateusz Skowroński
b5519922d8 QString::fromAscii() is obsolete in Qt5. Replace it with fromLatin1().
This change is Qt4/Qt5 neutral.
2016-04-15 11:55:12 +02:00
Alexander Golubev
d43525370c PartDesignGui: small rework to sketch-based task parameters
This done mostly for thurther unification them with other task
parameters/dialogs.
2016-04-12 18:12:21 +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
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
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
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
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
a6ebfa496f PartDesign/Gui/TaskDlgSketchBasedParameters: emhance object hiding/unhiding on reject() 2016-04-12 18:12:14 +02:00
jrheinlaender
f1b5a6044d Allow extruding from a datum plane to another face or plane, optionally with an offset 2016-04-12 18:11:53 +02:00
jrheinlaender
7983862b52 Some code unification for sketchbased features 2016-04-12 18:11:51 +02:00
jrheinlaender
b18958b3d9 Miscellaneous fixes 2016-04-12 18:11:51 +02:00
jrheinlaender
4645fdcd37 Miscellaneous fixes 2016-04-12 18:11:50 +02:00
jrheinlaender
1f42d4e3a3 bugfix for extrude to datum plane 2016-04-12 18:11:50 +02:00
jrheinlaender
f954a51430 Pad/Pocket: Allow extrude up to a datum plane 2016-04-12 18:11:50 +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