Commit Graph

20158 Commits

Author SHA1 Message Date
Yorik van Havre
84692f95e1 Draft: Added pref option to set default dimension unit 2020-10-14 17:21:27 +02:00
Yorik van Havre
e595eb898b Draft: Compatibility fix 2020-10-14 17:17:56 +02:00
wmayer
ad48dd2538 PartDesign: [skip ci] Improve revolution function
+ Fix hard crash when selecting an edge or face of the created feature before selecting option to choose a reference.
+ In ProfileBased::getAxis() convert OCCT into FreeCAD exception to simplify handling of calling instances.
+ Change return value of getReferencedSelection() from void to bool to mkae it easier for calling instance to detect if the selection failed.
  This is needed to avoid to add invalid items to the combo box of the revolution task panel
2020-10-14 15:20:52 +02:00
wmayer
f53871780c Surface: automatically start "Add edge" mode when starting the fill surface tool. Moving the order of edges is supported now. 2020-10-13 17:32:20 +02:00
wmayer
43638ec0a5 Surface: rename TaskFillingUnbound to TaskFillingEdge 2020-10-13 16:23:58 +02:00
vocx-fc
7ca2d7dd03 Part: add viewprovider icon for the Part::Spline object
The `Part::Spline` object is the parent of the parametric
Surface Workbench objects.

For example, the `Part::Spline` object is created by the
`Surface_CurveOnMesh` tool, which in reality just calls
the `MeshPart_CurveOnMesh` tool.
2020-10-13 15:54:04 +02:00
vocx-fc
6e4cc131a2 Surface: better titles for the task panels, and tooltips 2020-10-13 15:53:32 +02:00
vocx-fc
c0d1e90920 Surface, MeshPart: add more information to the CurveOnMesh command
In the Surface Workbench, the command is called `Surface_CurveOnMesh`
and the only thing it does is call the corresponding command
in the MeshPart Workbench, where it is defined
under the name `MeshPart_CurveOnMesh`.

Currently the MeshPart Workbench is not exposed on the graphical user
interface but it is loaded at startup, and its commands
are in fact used from the Mesh Workbench and, in this case,
the Surface Workbench.

Also improve the tooltip of the other commands in the Surface Workbench:
`Cut`, `Filling`, `GeomFillSurface`, `ExtendFace`, and `Sections`.
The `Cut` command does not do anything at this moment
so it is not visible in the interface.
2020-10-13 15:14:12 +02:00
vocx-fc
e99b46de88 Surface: new icon for existing Surface_CurveOnMesh command
Add this command to the Surface toolbar.
2020-10-13 15:09:12 +02:00
vocx-fc
7750c4dfbf Surface: ViewProviderExtend for Surface::Extend object
This is created by the Surface_ExtendFace command.
2020-10-13 14:52:02 +02:00
vocx-fc
3ec05cefcb Surface: new Extend icon for existing Surface_ExtendFace command
The icon is added to the `.qrc` resource file.

The command is added to the Surface toolbar.
2020-10-13 14:42:20 +02:00
wmayer
165feeba53 Part: make changing face colors independent of edit-mode implementation of a view provider 2020-10-13 14:16:01 +02:00
vocx-fc
e369d79feb Part: activate Part_ColorPerFace in the menu and toolbar
According to the source this command was deactivated until issue #0477
and hence #1954 could be solved. However, since those issues
haven't been addressed the command has remained hidden for a long time.
This command does not work with objects that reimplement
their edit modes, meaning that it may work with Part and PartDesign
created objects but not with Draft and Arch objects.

The command is added to the standard `View` menu,
and to one `Part tools` toolbar so that it is no longer hidden.
The limitations of the command can be described in the documentation,
and then somebody else can help solve the problem
with the edit modes.

A new icon for the command is also provided.
2020-10-13 12:59:16 +02:00
Priit Laes
961e4d75b1 build: boost: Clean up branches requiring boost-1.55 2020-10-13 12:56:28 +02:00
Priit Laes
8244ad4ba2 build: boost: Drop boost <= 1.41 dependent-code branches 2020-10-13 12:56:28 +02:00
Priit Laes
5f92194a8c build: Bump boost requirement to 1.55 and drop bundled boost::any
Based on the information from bunch of the latest supported distros:
Debian Jessie: 1.55
Debian Stretch: 1.62
Ubuntu 16.04: 1.58
Ubuntu 18.04: 1.65
Fedora 31 and 32: 1.69
Redhat Enterprise Linux 8: 1.66 (1.53 for EL-7, though)
openSuse Leap 15.1: 1.66
2020-10-13 12:56:28 +02:00
vocx-fc
8cf9eabb11 Part: fix the mixed newlines of DlgPrimitives.h
My editor, Spyder, detected a mix of Windows and Unix newlines,
and offered to fix the file.
2020-10-13 12:51:51 +02:00
vocx-fc
716c2d67eb Part: improve tooltip of measure commands
Also update the text of the buttons in the `TaskDimension` task panel.

Remove tabs in the source code, as there was a mix of tabs
and spaces. Further cleaning is necessary as the indentation
is inconsistent and mostly 2 spaces instead of 4 spaces.
2020-10-13 12:50:50 +02:00
vocx-fc
ee22b487c3 Part: clean up spacing of lines in BOP JoinFeatures 2020-10-13 12:49:54 +02:00
vocx-fc
aa378e6a90 Part: update object and commands for BOP SplitFeatures
This includes `BooleanFragments`, `Slice to compound`,
`Slice apart`, and `Boolean XOR`.

Clean up the tooltips of properties and commands.

Clean up the spacing of the code so that lines aren't very long.
2020-10-13 12:49:54 +02:00
vocx-fc
39c9e2a451 Part: update icon, object and command for CompoundFilter
The previous icon did not follow the general style and colors
of other icons in the workbench.

If there is no `Stencil` in the `CompoundFilter` object, raise
a `ValueError` exception when the `FilterType` is `'collision-pass'`
or `'window-distance'`.

Raise an exception when `items` is empty, or has a malformed string,
when `Filtertype` is `'specific items'`.

Fix the `getNullShapeShape` function to return a simple
`Part.Shape`, so that there is no error raised if `_nullShapeShape`
doesn't exist. This function doesn't work at all. It was probably
a prototype which was never fully developed; it may be removed
completely in the future.

The docstrings for the commands `CompoundFilter` and `ExplodeCompound`
were revised.

Clean up the spacing of the code so that lines aren't very long.
2020-10-13 12:49:54 +02:00
vocx-fc
5c732d440c Part: small cleanup of Python modules and InitGui.py
Add empty newline at the end of the file.
2020-10-13 12:49:54 +02:00
sliptonic
a21500d721 Merge pull request #3941 from sliptonic/bug/deburr
[Path] Deburr bug fixes
2020-10-12 16:04:55 -05:00
vocx-fc
a483f28437 Part: update icon for ProjectionOnSurface
The previous icon was improperly trimmed. The new icon
shows the projection more clearly as one object imprinting itself
over another.

Also update the tooltip, fix the indentation of the code,
and the title of the taskpanel `DlgProjectionOnSurface.ui`.
2020-10-12 19:54:11 +02:00
vocx-fc
4f6ea54f49 Part: move more icons to tools subdirectory 2020-10-12 19:54:11 +02:00
vocx-fc
c0f6ecfc86 Part: move icons to measure subdirectory
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.
2020-10-12 19:54:11 +02:00
vocx-fc
90688ae6ca Part: move icons to parametric subdirectory
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.
2020-10-12 19:54:11 +02:00
vocx-fc
32a5a2dee8 Part: move icons to booleans subdirectory
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.
2020-10-12 19:54:11 +02:00
vocx-fc
0b3fd56aa1 Part: move icons to tools subdirectory
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.
2020-10-12 19:54:11 +02:00
vocx-fc
4b50102f6c Part: move icons to create subdirectory
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.

Rename icon `Part_CreatePrimitives.svg` to `Part_Primitives.svg`.
2020-10-12 19:54:11 +02:00
sliptonic
fcf7c5c00e Merge pull request #3938 from sliptonic/feature/dragknifepanel
[PATH]  Task panel for dragknife and axismap dressups.  fixes #2840
2020-10-12 12:50:44 -05:00
sliptonic
a785c0e0a1 Fix deburr CW/CCW calculation 2020-10-12 12:39:14 -05:00
wmayer
5d82ef08c9 PartDesign: [skip ci] Prevent crash when pressing delete key without feature selected to remove in mirror and scale pattern dialog 2020-10-12 18:56:12 +02:00
marioalexis
2236c50e57 [PartDesign] Prevent crash when pressing delete key without feature selected to remove in linear and polar pattern dialog 2020-10-12 16:37:46 +02:00
marioalexis
97dd610c43 [PartDesign] Prevent crash when pressing delete key without feature selected to remove in linear and polar pattern dialog 2020-10-12 16:37:46 +02:00
mwganson
4c85faa0a4 [PartDesign Multitransform] prevent crash when pressing delete key without feature selected to remove in multitransform dialog 2020-10-12 16:36:11 +02:00
Neinei0k
2d939f2751 [Sketcher] Fix merged constraint preselection bug
Constraint icons that located close to each other get merged into a single icon. If you zoom in, individual constraints on these icons can't be selected anymore because their relative positions, which must depend on the zoom, don't change. The problem is solved by multiplying relative position by the scale factor which depends on the magnification.
2020-10-12 16:22:56 +02:00
Yorik van Havre
91f2608607 Draft: Fixed translation of construction group 2020-10-12 16:11:31 +02:00
Yorik van Havre
78ac2f7b27 Arch: Fixed translation of wall (better version) 2020-10-12 15:58:41 +02:00
Yorik van Havre
1252734a81 Arch: Fixed translation of wall 2020-10-12 15:57:15 +02:00
sliptonic
4e9101ba30 Merge pull request #3949 from mlampert/bugfix/path-voronoi-32bit-python-build
PATH: 32bit build bugfix - Using python type conversion to return voronoi element color
2020-10-12 08:25:59 -05:00
Yorik van Havre
674d7f25f8 Draft: Fixed patterns + added default pattern size pref option 2020-10-12 15:12:50 +02:00
luz paz
ea6b736208 Arch: fix typo in ArchBuildingPart.py [skip-ci]
Found by user PMac in https://forum.freecadweb.org/viewtopic.php?f=3&t=51049
2020-10-12 11:51:13 +02:00
vocx-fc
97c2be57d1 Show: add argument to NotAContainerError class constructor
The class `NotAContainerError` is used as an exception.
Where it is used it is initialized with an argument,
but the definition didn't accept one; now we accept an argument
in the constructor.
2020-10-12 11:49:11 +02:00
vocx-fc
cfb314f279 Draft: fix mismatch of argument in get_dxf function
The name of the argument, `projection`, in the old function
is incorrect; it should be `direction`, which was the original
argument's name when this method was split into its own module
(6c00fcf).
2020-10-12 11:48:26 +02:00
vocx-fc
330a5098b5 Arch: consider DraftText objects in the section plane for compatibility
After the reorganization of the Draft Workbench,
the `'DraftText'` objects are now of Proxy.Type `'Text'`.
In the `DraftAnnotation` class the `__setstate__` method
was defined to automatically migrate the Type.

The `Arch SectionPlane` only handles `'Text'` objects. If for
some reason there is still an old `'DraftText'` object
which has not been migrated to the new Type, it won't be found.
This is corrected by adding `'DraftText'` to the list of objects
to process.
2020-10-12 11:43:37 +02:00
Roy-043
83666f1e48 Arch: 4 additional tests for ArchRoof (bug fix)
ArchRoof bug fix:
* Removed unnecessary use of FreeCAD.Vector. Renamed some functions and variables for clarity (in this description the new names are used). Reformatted the code. Moved imports to the top of the file. Updated the tooltips. Tweaked the title text "Parameters ...".
* Fixed the length of list properties bug.
* Flip direction did not work properly. The adopted solution is to reverse the edges the roof is based on.
* Added support for consecutive parallel edges.
* Added support for zero angle roof segments.
* The code now handles zero length runs without throwing an error.
* To handle triangular roofs with a zero length eave, "eave" (egde) has been turned into "eavePtLst" (list of points).
* The ridges of opposite parallel roof segments (if they do not use a relative profile) are recalculated if the sum of their runs is larger than the distance between their edges. The old version of the command would do this only if segments connected to gables and only properly if the corners between the edges of the segments and the gable were 90 degrees.
* Revised backGable and nextGable. They now call helperGable.
* Revised the 6 other back/next functions. They now call helperSloped. This also fixes several cases where cookie-cutter outlines (profilCurr["points"]) were wrong. In nextHigher, backHigher, nextLower and backLower a point was wrongly projected on the X-axis. In nextHigher the point on the higher ridge was wrongly included.
* Improved the cookie-cutter outlines for roof segments with lower overhangs and higher ridges in corners.
* Data from a relative profile is no longer used if it in turn references a relative profile.
* Changed the default idrel to -1 and changed calcMissingData to not process this value. This avoids confusion for users who are unaware of the relative profile feature.
* Introduced find_inters as a workaround for DraftGeomUtils.findIntersection. The latter finds intersections for parallel lines that share a point. Find_inters uses a modified version of getLineIntersections from DraftGeomUtils.findIntersection.
* Calling DraftVecUtils.removeDoubles later in the program flow as it does not compares the first and the last vector.
* Avoided the QTreeWidget scrolling to the top on every change, by not clearing it but updating existing items instead.
* Added self.tree.setRootIsDecorated(False). This gets rid of the 1st column's extra left margin. Removed item.setTextAlignment(0,QtCore.Qt.AlignLeft) as this did not work.
2020-10-12 11:43:04 +02:00
Roy-043
b7125d0162 Arch: ArchRoof bug fix
* Removed unnecessary use of FreeCAD.Vector. Renamed some functions and variables for clarity (in this description the new names are used). Reformatted the code. Moved imports to the top of the file. Updated the tooltips. Tweaked the title text "Parameters ...".
* Fixed the length of list properties bug.
* Flip direction did not work properly. The adopted solution is to reverse the edges the roof is based on.
* Added support for consecutive parallel edges.
* Added support for zero angle roof segments.
* The code now handles zero length runs without throwing an error.
* To handle triangular roofs with a zero length eave, "eave" (egde) has been turned into "eavePtLst" (list of points).
* The ridges of opposite parallel roof segments (if they do not use a relative profile) are recalculated if the sum of their runs is larger than the distance between their edges. The old version of the command would do this only if segments connected to gables and only properly if the corners between the edges of the segments and the gable were 90 degrees.
* Revised backGable and nextGable. They now call helperGable.
* Revised the 6 other back/next functions. They now call helperSloped. This also fixes several cases where cookie-cutter outlines (profilCurr["points"]) were wrong. In nextHigher, backHigher, nextLower and backLower a point was wrongly projected on the X-axis. In nextHigher the point on the higher ridge was wrongly included.
* Improved the cookie-cutter outlines for roof segments with lower overhangs and higher ridges in corners.
* Data from a relative profile is no longer used if it in turn references a relative profile.
* Changed the default idrel to -1 and changed calcMissingData to not process this value. This avoids confusion for users who are unaware of the relative profile feature.
* Introduced find_inters as a workaround for DraftGeomUtils.findIntersection. The latter finds intersections for parallel lines that share a point. Find_inters uses a modified version of getLineIntersections from DraftGeomUtils.findIntersection.
* Calling DraftVecUtils.removeDoubles later in the program flow as it does not compares the first and the last vector.
* Avoided the QTreeWidget scrolling to the top on every change, by not clearing it but updating existing items instead.
* Added self.tree.setRootIsDecorated(False). This gets rid of the 1st column's extra left margin. Removed item.setTextAlignment(0,QtCore.Qt.AlignLeft) as this did not work.
2020-10-12 11:43:04 +02:00
Daniel Wood
9b2b86b91f Add a task panel page for controlling turning diameters 2020-10-11 07:57:59 +01:00
Daniel Wood
dcf33dca50 Add turning selection gate 2020-10-11 07:57:59 +01:00