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.
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
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.
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.
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.
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`.
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.
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`.
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.
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.
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
(c79f890).
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.
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.
* 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.