Commit Graph

16191 Commits

Author SHA1 Message Date
vocx-fc
78c276e2a2 Draft: add base class for Snap commands 2020-04-16 11:40:58 +02:00
vocx-fc
a1f6a7f6e0 Draft: move Draft_ShowSnapBar to gui_snaps module 2020-04-16 11:40:58 +02:00
vocx-fc
eca1c75056 Draft: add correct docstring to old Array tools
Previously they mentioned incorrectly the Shape2DView tool.
2020-04-16 11:40:58 +02:00
vocx-fc
631f74d8fc Draft: move SelectGroup command to gui_groups module 2020-04-16 11:40:58 +02:00
vocx-fc
a0f9df523a Draft: move AddToGroup command to gui_groups module 2020-04-16 11:40:58 +02:00
vocx-fc
02189fa973 Draft: new utility toolbar with some useful commands
These commands are useful but are "hiden"
inside the "Utilities" menu, so not many poeple know about them.
By placing them in a toolbar, they will be more discoverable.
2020-04-16 11:40:58 +02:00
vocx-fc
5acb94984f Draft: move DisplayMode command to gui_togglemodes module 2020-04-16 11:40:58 +02:00
vocx-fc
e3154fccb2 Draft: move mode commands to gui_togglemodes module
`Draft_ToggleConstructionMode` and `Draft_ToggleContinueMode`.
They call a base class `BaseMode` which also uses the base
`gui_base.GuiCommandSimplest` class.

Also add a new icon for continue mode.
2020-04-16 11:40:58 +02:00
vocx-fc
1b8e9d5cb8 Draft: move line GuiCommands to gui_lineops module
The commands `FinishLine`, `CloseLine`, and `UndoLine`
are moved from the huge `DraftTools.py` to `gui_lineops.py`
to reduce the complexity of the former file.

These GuiCommands aren't actually used presently
in the Draft Workbench. They were used in the past
particularly from the context menu when editing a Line object.
2020-04-16 11:40:58 +02:00
vocx-fc
1970b6c3c9 Draft: GuiCommandSimplest to serve as base of simple Gui Commands
This class defines the `command_name` of the command,
so that it is output to the report view, and is also recorded
in the log file.

It also stores the current document so it can be used inside the
command.

The class implements with `IsActive` method so that the command
is only active when an active document exists.

Also `GuiCommandNeedsSelection`, which subclasses the former
class. It reimplements `IsActive` in order to be available
only when there is a selection.
2020-04-16 11:40:58 +02:00
vocx-fc
b3abe7efe9 Draft: update InitGui with context commands
The `ContextMenu` method defines commands that will be listed
when right clicking and opening the context menu in the 3D view
or the tree view.

This sets up the line GUI commands when either a line, wire,
polyline, spline, or bezier curve is active.

However, this currently doesn't work at all for unknown reasons.
Maybe some other functionality in the internal C++ code
needs to be changed first.
2020-04-16 11:40:58 +02:00
carlopav
db9134630a [Draft] Cleanup splitted annotatation objects
- corrected super() methods to be Py2 compatible
- further cleanup of the code.
further cleanup


changed again to avoid super method


updated super() functions


updated to correct the parent classess targeted by super()
2020-04-16 11:37:10 +02:00
carlopav
00c0de6871 [Draft] Removed annotation styles objects
Removed Annotation styles current implementation.
As pointed out by yorik, in https://forum.freecadweb.org/viewtopic.php?f=23&t=44051&p=385710#p385179, this feature will be added using document Meta property.
2020-04-16 11:37:10 +02:00
carlopav
78f740807c [Draft] Dimension styles improvements
Dimension style property is auto-set on dimension creation.
Further improvementes in DimensionStyleContainer.
.
2020-04-16 11:37:10 +02:00
carlopav
a4f7bc43f6 [Draft] Cleanup of Annotation style branch
Further cleanup and guarded imports of Gui in modules.

.
2020-04-16 11:37:10 +02:00
carlopav
cb4295fd8a [Draft] Splitted object Text and Label from Draft.py
And based them on Draft Annotation object
2020-04-16 11:37:10 +02:00
carlopav
19928b7347 [Draft] Updated cmake with splitted annotation objects
.


.
2020-04-16 11:37:10 +02:00
carlopav
5b4815f807 [Draft] Dimension Style cleanup 2020-04-16 11:37:10 +02:00
carlopav
749f614313 [Draft] Group object for dimension styles 2020-04-16 11:37:10 +02:00
carlopav
9c4c16c7bb [Draft] Split angular dimension
and made it derived from 
DimensionBase <- Draft Annotation
2020-04-16 11:37:10 +02:00
carlopav
9f1405df0e [Draft] Annotation refactor and Cleanup
.


.
2020-04-16 11:37:10 +02:00
carlopav
637c45733e [Draft] Split Dimension object and reorganize of annotation objects
part 1
2020-04-16 11:37:10 +02:00
carlopav
0bc6e4cddc [Draft] New Icons for Annotation Style 2020-04-16 11:37:10 +02:00
carlopav
5bbf3ad6cf [Draft] Dimension style object
still have to split viewprovider from object.
[Draft] Dimension Style code cleanup

thx @vocx-fc for reviewing
further cleanup


[Draft] Dimension Style improvements

Added a property to the dimension object to link the dimension style.
Improved the update of dimensions when style changes. This can be done in 2 different ways: by setting AutoUpdate property to True or by activating Update function from the viewprovider context menu.
2020-04-16 11:37:10 +02:00
vocx-fc
097d828fb5 Draft: add init_draft_statusbar to CMakeLists 2020-04-16 11:37:10 +02:00
carlopav
655852bda6 [Draft] Annotation scale, support for imperial custom scale input
Added support for different scale list
2020-04-16 11:37:10 +02:00
carlopav
9e7fb35761 [Draft] Rearrange annotation properties groups
ref. https://forum.freecadweb.org/viewtopic.php?f=23&t=43795&p=373731#p373731
bugfix
2020-04-16 11:37:10 +02:00
carlopav
7d8847a2a2 [Draft] Annotation Scale bugfix
Now property ScaleMultiplier is checked for existence before the use.
2020-04-16 11:37:10 +02:00
carlopav
f90921ef03 [Draft] Improved Autogroup to handle Draft Annotations
Draft Dimension, Label and Text are now correctly auto-added to Part container
2020-04-16 11:37:10 +02:00
carlopav
ba71f3de75 [Draft] First implementation of annotation scale
The changes are minimal, mainly is just cleanup of existing code and documentation.
[Draft] Annotation scale for ViewProviderDraftText

Adding support for scale factor according to changes in dimensions.
[Draft] Annotation scale for ViewProviderDraftLabel

completed annotations scale
[Draft] Annotation scale for ViewProviderAngularDimension
2020-04-16 11:37:10 +02:00
carlopav
9fcb4f94a0 [Draft] Annotation scale support and statusbar widget
Initial commit
Preliminary support for Draft Dimensions


[Draft] Statusbar Widget code cleanup
2020-04-16 11:37:10 +02:00
Russell Johnson
c3dcf94ffd Path: Move more common methods to PathSurfaceSupport module 2020-04-16 00:35:05 -05:00
Russell Johnson
0bfea7429b Path: Add new support module for 3D Surface and Waterline 2020-04-16 00:28:33 -05:00
Russell Johnson
fa13068220 Path: Comment cleanup; adjust messages; set 2 default values 2020-04-16 00:28:33 -05:00
Russell Johnson
ba88e0eef2 Path: Implement new module PathSurfaceSupport; Add Spiral cut pattern
New module is shared with 3D Surface operation. Module contains PathGeometryGenerator class. More common methods can be moved into the new module.
2020-04-16 00:28:25 -05:00
Russell Johnson
ce42444afa Path: Preparation for making property defaults readable through class 2020-04-16 00:28:18 -05:00
Russell Johnson
2fc634a22a Path: Improve backwards compatibility capabilities 2020-04-16 00:28:11 -05:00
Russell Johnson
ea960770af Path: Improve property visibility in Data tab 2020-04-16 00:28:04 -05:00
Russell Johnson
873b9c0f6f Path: Expose operation's property details to access via class 2020-04-16 00:27:58 -05:00
Russell Johnson
996d4710f5 Path: Fix weakness in face analysis for unique OuterWire cases
synced with PathSurface module
2020-04-16 00:27:49 -05:00
Russell Johnson
18e6fa2127 Path: Add missing tooltips 2020-04-16 00:27:40 -05:00
Russell Johnson
04093c3d76 Path: Waterline fixes(5), new IgnoreOuterAbove, and code simplification
Fix module base for getFacets()
Fix isOnLineSegment() usage.
Fix property visibility in Data tab.
Fix missing raise to SafeHeight after clearing layer.
Fix handling of `import ocl` failure
Move Draft import to dependent function
Raise `import ocl` test in code execution
Disable face selection for Waterline and issue warning as intermediate fix. Application of face-selection from 3D Surface requires some modification for use in Waterline.  This work is to be done.  Some existing carryover methods should be usable in current form.
Compact setup() function
Sync some methods with PathSurface in preparation of extracting common methods to independent support module.
Increase SampleInterval range for OCL Dropcutter algorithm.
Convert OCL Dropcutter waterline to use FreeCAD.Vector() points rather than ocl.Point().
Simplify some code and delete unnecessary comments.
LGTM cleanup.
New feature - IgnoreOuterAbove. Ignore the outer-most waterline above this height.  Designed to eliminate the model profile path created in some use cases.
Adjust tooltip language for `Algorithm`
2020-04-16 00:27:40 -05:00
Russell Johnson
1c268425a4 Path: Improve Tasks editor interaction
Swap setEnabled() method for show() and hide().
Include showing and hiding associated labels.
Path: Hide `optimizeEnabled` input
2020-04-16 00:27:06 -05:00
Russell Johnson
29b5c39924 Path: Move more common methods to PathSurfaceSupport module 2020-04-16 00:20:46 -05:00
Russell Johnson
5d5a21e5a7 Path: Simplify if ... is True: statements. 2020-04-16 00:17:47 -05:00
Russell Johnson
e23aecc667 Path: New class - PathGeometryGenerator; new CutPattern - Offset
Converted _planarMakePathGeom() into independent class, PathGeometryGenerator, as preparation to share common code with Waterline.
Implementation of new class within existing code.
Added new cut pattern: Offset.  It is ported from Waterline.
2020-04-16 00:17:40 -05:00
Russell Johnson
5701e90cc8 Path: Create shared support module for 3D Surface and Waterline 2020-04-16 00:17:33 -05:00
Russell Johnson
b0a73d1266 Path: Improve compatibility between file versions
Verify enumerations on document reload, maintaining the existing value for the property.
2020-04-16 00:17:33 -05:00
Russell Johnson
8e58f10f7f Path: Fix weakness in face analysis for unique OuterWire cases 2020-04-16 00:17:24 -05:00
Russell Johnson
75ad65ecf1 Path: Added Spiral cut pattern; Adjusted tooltip language 2020-04-16 00:17:16 -05:00