If two straight edges were selected the chamfer distance would be recalculated so that the length of the straight segment would be equal to `r` (the radius entered by the user). But this was, and is, not done if one or both edges are arcs.
By removing the recalculation code the endpoints of the straight chamfer edge now always match the endpoints of the fillet arc that would be created for the same radius. This also matches the fillet/chamfer behavior in for example Part and Sketcher.
Fixes#11435
Draft_Fillet could already handle arcs, provided they were not Draft_Arcs. The `_extract_edge` function in make_fillet.py had a strange logic, and could also return a wire which would result in problems later.
Another issue was that the `fillet` function in fillets.py did not handle the order of the edges correctly if one of the edges was an arc and the other a straight edge. The arch had to be selected first to prevent this error.
Fixes#14804
Added (also don't make sense for a point object):
* AngularDeflection
* DrawStyle
* Pattern
* PatternSize
Removed:
* DiffuseColor (property no longer exists)
* LineMaterial (already hidden by default)
#14206 was an intermediate solution. Now that `Part.getShape` can handle the new `SubElementNames` it needs to be removed as it breaks the handling of subelements in links.
#14206 was an intermediate solution. Now that `Part.getShape` can handle the new `SubElementNames` it needs to be removed as it breaks the handling of subelements in links.
Makes the button for the Draft_ToggleGrid command act as a real toggle button to provide visual feedback of the grid visibility state.
---------
Co-authored-by: Syres916 <46537884+Syres916@users.noreply.github.com>
There are two unnecessary Layer warnings:
1. A 'might break' warning when deleting an object nested in a layer.
2. An 'out of scope' warning for objects also nested in f.e. a Std_Part.
To avoid them the Group property type was changed to `App::PropertyLinkListHidden`.
* [ArchWall] Add Offset per Edge Feature
ArchWall.py - Add Override Offset property & ground work for Multi-Layer Wall
Offsets.py - Add offset per edge support to ArchWall
Forum Discussion :
- https://forum.freecad.org/viewtopic.php?p=759634#p759634
* [ArchWall] Fix bug found by unit test
'off' is no longer used, 'offsets' is used.
Fixes#14312.
The `new _get_shapes` function could return the original object shape. This caused a problem if `sh.reverse()` executed.
Note that the file in the linked issue does not produce the error as it does not contain a shape with a negative volume.
Discussion: #13657.
This PR adds the ShapeAppearance view property to Draft Layers.
The DefaultShapeColor is used for the DiffuseColor of the ShapeAppearance material. Other material properties are not based on the preferences when a layer is created.
The old ShapeColor and Transparency properties remain (ShapeColor as a hidden property) and are kept in synch with the ShapeAppearance. This is consistent with how ShapeAppearance is implemented in Core.
The gui_layers.py and make_layer.py files do not have to be changed. They manipulate the vobj via the mentioned old properties.
Fixes#14242.
In the current dev fusing an empty shape with a face or solid no longer works (probably introduced with #14169). The reason for starting with an empty shape was the assumption that the end result would then always have a default placement. But that is only correct if multiple objects are fused.
In the new version of the code fusing no longer starts with an empty shape. The default placement issue is solved by always returning a compound.
Additionally the value for the Area property is now taken after offsetting and fusing the faces.
Edges longer than ca. 10m are considered 'crazy' in the TD Workbench. Hatch patterns are also checked. As a workaround some intermediate scaling is applied.
Addionally: `transformShape` instead of `transformGeometry`. The latter results in B-splines.
* Update Draft WB icons
* Also make all icons 64px based
* keep inner white outline and small tweaks
* Tweaks following review
* Further tweaks following feedback
* Tweak more icons for consistency with light/dark themes
* Update following PR 13865, save as Plain SVG and remove unused ressources
Update texts for visibility
Some more cleanup
Use consistent FreeSans font
#13778 introduced `self.obj.ViewObject.ShowInTree = False` to hide the temporary object. But objects that are hidden in the tree are displayed in the tree when they are selected in the 3D view. This selection occurs during commands that take more than 2 points. The solution is to change `self.obj.ViewObject.Selectable` on mouse button up/down.
Fixes#13700.
Fixes#13621.
Currently the legacy DXF importer creates a main group with the DXF name if a DXF is imported into an existing FreeCAD document. For each DXF layer it then creates a sub-group (or Draft Layer) inside that main group. Objects are nested in the sub-groups (or Draft Layers).
This does not make sense for Draft Layers as they should be nested in the LayerContainer, which should be in the root of the FreeCAD document.
Both for Draft Layers and sub-groups there is the issue that if mutliple DXF files are imported in the same FreeCAD document, exising Draft Layers and sub-groups are not taken into account. For each DXF a new "0" group/layer is created (with a Label that is not "0" and therefore not recognized), and if there are objects on that layer a new group/layer is created for each object (labelled "0001", "0002", "0003", etc).
To solve this the main group with the DXF name is no longer created in the revised code and the layers variable is initialized with the groups/layers that already exist in the FreeCAD document.
Additionally the formatObject function should not format objects that are in Draft Layers. Its action conflicts with the layer mechanism resulting in the last imported object having an incorrect color.