Commit Graph

16834 Commits

Author SHA1 Message Date
vocx-fc
9758d983ef 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
7189d3de05 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
017226e803 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
a104ece52e 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
131961c2a8 [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
0745f760a0 [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
8e3dfe7c26 [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
164bbabbd8 [Draft] Cleanup of Annotation style branch
Further cleanup and guarded imports of Gui in modules.

.
2020-04-16 11:37:10 +02:00
carlopav
85bf45937e [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
f45314c9bc [Draft] Updated cmake with splitted annotation objects
.


.
2020-04-16 11:37:10 +02:00
carlopav
88612bee7d [Draft] Dimension Style cleanup 2020-04-16 11:37:10 +02:00
carlopav
4855564bb8 [Draft] Group object for dimension styles 2020-04-16 11:37:10 +02:00
carlopav
33f6d01192 [Draft] Split angular dimension
and made it derived from 
DimensionBase <- Draft Annotation
2020-04-16 11:37:10 +02:00
carlopav
6d8fe07312 [Draft] Annotation refactor and Cleanup
.


.
2020-04-16 11:37:10 +02:00
carlopav
530e8b6c58 [Draft] Split Dimension object and reorganize of annotation objects
part 1
2020-04-16 11:37:10 +02:00
carlopav
1b7058fa35 [Draft] New Icons for Annotation Style 2020-04-16 11:37:10 +02:00
carlopav
34cf98102c [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
0e097ae7f9 Draft: add init_draft_statusbar to CMakeLists 2020-04-16 11:37:10 +02:00
carlopav
e3ea589d5c [Draft] Annotation scale, support for imperial custom scale input
Added support for different scale list
2020-04-16 11:37:10 +02:00
carlopav
08d949b088 [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
116052cff0 [Draft] Annotation Scale bugfix
Now property ScaleMultiplier is checked for existence before the use.
2020-04-16 11:37:10 +02:00
carlopav
ff3bdf86bc [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
1d7b62e6ee [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
e65c61036b [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
dc8befa478 Path: Move more common methods to PathSurfaceSupport module 2020-04-16 00:35:05 -05:00
Russell Johnson
28abb95ea5 Path: Add new support module for 3D Surface and Waterline 2020-04-16 00:28:33 -05:00
Russell Johnson
4cd4b2e879 Path: Comment cleanup; adjust messages; set 2 default values 2020-04-16 00:28:33 -05:00
Russell Johnson
cb796ca2c9 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
aaf1eee7c5 Path: Preparation for making property defaults readable through class 2020-04-16 00:28:18 -05:00
Russell Johnson
eb354c3a1d Path: Improve backwards compatibility capabilities 2020-04-16 00:28:11 -05:00
Russell Johnson
ed85341cd9 Path: Improve property visibility in Data tab 2020-04-16 00:28:04 -05:00
Russell Johnson
a0cecce62e Path: Expose operation's property details to access via class 2020-04-16 00:27:58 -05:00
Russell Johnson
9e9d5ce962 Path: Fix weakness in face analysis for unique OuterWire cases
synced with PathSurface module
2020-04-16 00:27:49 -05:00
Russell Johnson
01e95b2ac0 Path: Add missing tooltips 2020-04-16 00:27:40 -05:00
Russell Johnson
aa1261dc7d 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
c0a5a8c97e 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
341da1092d Path: Move more common methods to PathSurfaceSupport module 2020-04-16 00:20:46 -05:00
Russell Johnson
0bd0d52baf Path: Simplify if ... is True: statements. 2020-04-16 00:17:47 -05:00
Russell Johnson
ccfd52477f 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
f6ad7101c6 Path: Create shared support module for 3D Surface and Waterline 2020-04-16 00:17:33 -05:00
Russell Johnson
fd34891c99 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
a6cb530d57 Path: Fix weakness in face analysis for unique OuterWire cases 2020-04-16 00:17:24 -05:00
Russell Johnson
f41ec732e1 Path: Added Spiral cut pattern; Adjusted tooltip language 2020-04-16 00:17:16 -05:00
Russell Johnson
b5048f4f02 Path: Multiple fixes; code optimizations and cleanup
Fix _processRotationalOp() arguments and erroneous call thereto.
Fix isOnLineSegment() usage.
Fix transition between profile edge and clearing.
Fix _planarSinglepassProcess() method.
Fix `ProfileEdges` feature.
Fix Y-axis rotation error in G-code and display.
Fix error handling of `import ocl` test.
Raise `import ocl` test in code sequence.
Convert ocl.Point scan results and handling to FreeCAD.Vector() type throughout `Rotational` scan code.
Change properties group from `Rotational` to `Rotation`.
Make operation property details accessible through class.
Relocate Draft import to dependent function.
Improve property visibility in Data tab.
Issue warning for Rotational scans if faces are selected.
Compact setup() function.
LGTM cleanup throughout.
Delete unnecessary comments.
2020-04-16 00:17:05 -05:00
Russell Johnson
15e1fa7bb9 Path: Added missing tooltips and added new Cut Pattern options
Add `Spiral' option to Cut Pattern list
Add `Offset' option to Cut Pattern list
2020-04-16 00:14:11 -05:00
Russell Johnson
c6b9adec25 Path: GUI improvement - swap setEnabled() for show() and hide()
Improve GUI usability by using hide() and show().
Apply hide() and show() to labels as well.
Fix visibility update issue on loading task window for editing of existing operation.
2020-04-16 00:14:11 -05:00
wandererfan
98aaad5fb1 [TD]fix KB lockout in dialogs
- valueChanged signal is emitted for every keystroke
  causing multiple recomputes for every change of
  parameter.
2020-04-15 15:43:00 -04:00
sliptonic
8641e58c63 Merge pull request #3354 from etrombly/master
[Path] fix some typos in recent lazyloader implementation
2020-04-15 12:55:43 -05:00
Eric Trombly
070099daa4 fix some typos in recent lazyloader implementation 2020-04-15 12:32:48 -05:00
Yorik van Havre
97fbda9b47 Arch: Fixed bug in IFC export of furniture 2020-04-15 18:01:11 +02:00