Commit Graph

21719 Commits

Author SHA1 Message Date
Russell Johnson
cfa6ad5de6 Path: Slot operation fixes and improvements
- Add `CutPattern` feature, defaulting to `ZigZag`.
- Change inter-pass retractions to SafeHeight for multi-pass operations.
- Fix division by zero instance for particular Perpendicular use case.
- Synchronize property values with inputs in both the Property View and Tasks Editor windows.
- Change `LayerMode` default value to `Multi-pass`.
- Improve debug messaging.
- Consolidate code and remove unused code.

Path: fix exception thrown
2020-06-20 14:27:12 -05:00
wandererfan
002e25b561 [TD]Cosmetic Edge endpoint inversion 2020-06-20 12:36:54 -04:00
wandererfan
ff66708c35 [TD]Detail default scale 2020-06-20 12:36:54 -04:00
wmayer
87046ef045 GuiPy: [skip ci] expose function to Python to replace Switch with Separator nodes 2020-06-20 12:22:24 +02:00
wmayer
0d05fc328d GuiPy: [skip ci] handle some Qt warnings when using GUI from Python
+ avoid warning: QEventLoop: Cannot be used without QApplication
+ avoid warning: QObject::startTimer: Timers can only be used with threads started with QThread
2020-06-20 11:43:59 +02:00
wmayer
c23a1f6edd Base: [skip ci] include sstream in swigpyrun source files 2020-06-20 11:28:48 +02:00
sliptonic
ffe957cef4 Merge pull request #3631 from Russ4262/task_panel_icons
[Path] Add icons to Tasks Window tabs
2020-06-19 12:32:07 -05:00
sliptonic
1e05734dff Merge pull request #3584 from gwicke/area_tweaks
Path: Area fixes and robustness tweaks
2020-06-19 12:30:32 -05:00
wmayer
58046eb249 Main: [skip ci] replace QThread with std::thread as it won't start without an event loop 2020-06-19 18:52:26 +02:00
sliptonic
e3a67e247d Merge pull request #3629 from gwicke/line_simplification
[path] Implement Ramer-Douglas-Peucker line simplification
2020-06-19 11:12:35 -05:00
sliptonic
fd1dc30170 Merge pull request #3624 from Russ4262/SlotCutter
[Path] Add new `Slot` operation to PathWB 2D tool group
2020-06-19 11:12:01 -05:00
sliptonic
9c847fc424 Merge pull request #3600 from sliptonic/feature/customimprove
[PATH] make -custom- op compliant. Improve gcode_pre importer
2020-06-19 11:11:21 -05:00
sliptonic
7c3d0040e5 Merge pull request #3568 from Russ4262/3D_Surface_fixes_2
[Path] 3D Surface and Waterline: FinalDepth guess and `InternalFeaturesCut` fixes
2020-06-19 11:10:14 -05:00
sliptonic
7aa20e8bcc Merge pull request #3545 from Russ4262/Multi-profile
[Path] Profile - New `ExpandProfile` feature for compound profile operations
2020-06-19 11:09:04 -05:00
sliptonic
2962110516 Merge pull request #3574 from Russ4262/ToolBit_OCL_update
[Path] 3D Surface and Waterline: OCL-ToolBit compatibility fix
2020-06-19 11:08:18 -05:00
wmayer
70b2d49550 Gui: [skip ci] fix Gui.subgraphFromObject and improve error text if wrapping fails 2020-06-19 15:07:57 +02:00
Yorik van Havre
0cb4d4eb97 Better description and more screenshots in freedesktop app description 2020-06-19 13:49:34 +02:00
wandererfan
31f64d3a3a [TD]Fix jumping section view 2020-06-19 07:18:47 -04:00
Harald Geyer
2e3f3dd6c2 Arch: importIFC: Allow faster inserts
For huge models just parsing the IFC file in ifcopenshell takes
significant time. When importing via IFC explorer from the BIM
workbench, the file is already open.

This change allows to pass the ifcopenshell.file object instead of a
filename, making the process much more efficient.

Backwards compatible code to use this will be submitted for the BIM
workbench soon. Then we have a workflow, where we can insert items
from big IFC files in multiple rounds quickly.
2020-06-19 12:19:20 +02:00
donovaly
ca13b24673 [Spreadsheet] add visible alias check
as discussed in https://forum.freecadweb.org/viewtopic.php?p=408992#p408981
visible feedback is missing for the Alias field. This PR add it and also adapts the UI label style.
2020-06-19 12:17:04 +02:00
vocx-fc
4e106902f1 Draft: add onChanged method in the derived annotation classes
The classes `ViewProviderDimensionBase`, `ViewProviderLinearDimension`,
`ViewProviderAngularDimension`, `ViewProviderText`, and
`ViewProviderLabel` use `super()` to call the `onChanged` method
of the parent class `ViewProviderDraftAnnotation`.

In this way the `AnnotationStyle` property correctly modifies
the properties of every annotation object.
2020-06-19 12:15:25 +02:00
vocx-fc
b9d4e6884a Draft: improve setting of properties of dimensions, labels, and texts
Add view properties of dimensions, labels, and text objects
through methods, calling the parent classes, and `ViewProviderDraftAnnotation`
when needed.
2020-06-19 12:15:25 +02:00
vocx-fc
3f75dc7c61 Draft: clean up the ViewProviderDraftAnnotation class
This class is the base of the viewproviders of annotation-type
objects like dimensions (linear, radial, angular), labels,
and texts.

The basic properties of `ViewProviderDraftAnnotation`
are set up by a method `set_properties`, which can be called
in the derived classes.

In the general proxy object `DraftAnnotation` we implement
the `onDocumentRestored` method in order to add the missing
view property `AnnotationStyle` to older objects.
2020-06-19 12:15:25 +02:00
vocx-fc
270e4b100a Draft: move default annotation style properties to utils module
These style properties are used by `ViewProviderDraftAnnotation`
and by the Gui Command `Draft_AnnotationStyleEditor`.

Therefore, they are moved from `draftguitools.gui_annotationstyleeditor`
module to the `draftutils.utils` module, so that they
are in a central location where they won't cause circular
dependencies.
2020-06-19 12:15:25 +02:00
Russell Johnson
27ab0b8f32 Path: Format and add DocStrings and comments 2020-06-18 20:13:41 -05:00
Russell Johnson
40faed1b7d Path: Fix timing of updatePanelVisibility() call
Targeted function call needed to be after `updateBase()` call after the `for` loop.
2020-06-18 19:56:52 -05:00
Russell Johnson
f323e635bd Path: Add new Slot operation
New slotting operation:
- Accepts selection of up to two features.
- Selectable features include: faces, edges, and vertices.
- User may select a single face or edge, or a pair of features.
- The path may be extended at the start and end.
- The path may be reversed.
- The path may be altered to the perpendicular in some cases.
- A unique Slot icon is included.
- Includes simple collision detection with warning message.
2020-06-18 19:56:52 -05:00
Russell Johnson
33a1804050 Path: Add icons to feature tabs
Add Base Geometry, Heights, Depths, and Operation icons on the tabs in the Tasks Window editor.
2020-06-18 15:54:14 -05:00
Russell Johnson
56f6736923 Path: Add icon reference to UI panel 2020-06-18 15:54:14 -05:00
wmayer
e1cfaf1298 Gui: [skip ci] handle case if an absolute path to a qss file is set 2020-06-18 12:34:43 +02:00
wmayer
87c0365add Cloud: [skip ci] add missing closing curly brace 2020-06-18 12:33:27 +02:00
Russell Johnson
521b0e46c0 Path: Add operation's label to task panel window title 2020-06-18 01:39:26 -05:00
Russell Johnson
b110ea2818 Path: Cleanup and simplify code 2020-06-18 01:39:26 -05:00
Russell Johnson
939ac2e115 Path: Add ExpandProfile feature
Two new properties, `ExpandProfile` (length) and `ExpandProfileStepOver` (percent) added for new feature.
New feature converts the normal single offset profile into a compound profile containing multiple increasing/decreasing offsets.
The new feature clears a each layer completely before stepping down to the next layer.
Adjust sorting procedure in PathAreaOp due to `ExpandProfile` modifications to open edges code.
2020-06-18 01:39:26 -05:00
Russell Johnson
0f393e2095 Path: Add operation's label to task panel window title 2020-06-18 01:36:54 -05:00
Russell Johnson
0a91704949 Path: Fix error when selection includes vertical faces. 2020-06-18 01:36:54 -05:00
Russell Johnson
86a182c2b8 Path: Add opUpdateDepths() method as in 3D Surface 2020-06-18 01:36:54 -05:00
Russell Johnson
26d121de00 Path: Fix broken InternalFeaturesCut processing 2020-06-18 01:36:54 -05:00
Russell Johnson
1ef278b061 Path: Fix initial guess for FinalDepth with no Base Geometry 2020-06-18 01:36:54 -05:00
Gabriel Wicke
6b3815a766 [path] Implement Ramer-Douglas-Peucker line simplification
Implement an iterative version of the Ramer-Douglas-Peucker line
simplification algorithm
(https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm),
which reduces line complexity to a limited linear deviation from the
original polyline. The ability to reason about linear deflection is the
key improvement over the previous linear implementation.

Worst case complexity is O(n^2), but expected complexity for typical
cases is O(n log n). A potentially faster alternative would be to call
out to libclipper, treating the line as a closed polygon. However, in
practice, performance of this implementation seems good enough. A
complex 3d surface operation optimizes in a few seconds, and reduces
output gcode size from about 220MB with the previous implementation to
10MB.
2020-06-17 20:10:18 -07:00
Yorik van Havre
f05253f882 Draft: snapper.getPoint() does not return object anymore if no snapped object 2020-06-17 14:03:29 +02:00
Jean-Marie Verdun
575df24435 Retab 2020-06-17 13:05:01 +02:00
Jean-Marie Verdun
b393cf67df Add Amazon v4 API support as to take into consideration
the end of life of SHA1 signing from OpenSSL which is used by v2 API
2020-06-17 13:05:01 +02:00
Jean-Marie Verdun
94bfa8af9c Introduce ComputeDigestAmzS3v4 and BuildHeaderAmzS3v4
into the Cloud code (WIP)
2020-06-17 13:05:01 +02:00
Jean-Marie Verdun
cf230c930c Add SHA256 sum function 2020-06-17 13:05:01 +02:00
Jean-Marie Verdun
1883bf560f Add Amazon protocol version as a parameter
as to smooth the transition from SHA-1 to SHA-256 signing
2020-06-17 13:05:01 +02:00
vocx-fc
96d81c77b2 Draft: add prototype function to AngularDimension to link objects
At the moment the user must manually modify `FirstAngle`
and `LastAngle` to obtain a new `Angle`, but since the values
are manually entered the result is not tied to any actual object
in the document.

We introduce a function `measure_two_obj_angles`
to calculate the corresponding parameters from a pair of objects
and their edges.
Currently this function is deactivated because it is intended
for testing purposes only.

This needs to be improved because at the moment it only gives
two possible angles. We should be able to get the four angles
of a two-line intersection. Maybe a new property is required
to indicate the quadrant to choose and display.
2020-06-17 12:53:29 +02:00
vocx-fc
4ef2063715 Draft: organize execute code of the dimension classes
Instead of placing the entire code in the `execute` method,
we use three medthods to extract the `Start` and `End` dimension
points from different combinations of edges.

One method to get the dimension from a single object, from the edge,
either linear or circular; one method to get the dimension
from a single object, from two vertices; one method to measure
the distance between two objects, from two different vertices.
2020-06-17 12:53:29 +02:00
vocx-fc
c042eb7454 Draft: set properties of the Dimension class through functions
There are three classes `DimensionBase`, `LinearDimension`, and
`AngularDimension`, their properties are set only if they don't
already exist.

Provide also better documentation in the tooltips,
and use `setPropertyStatus` to hide and show the intended
properties in the property editor.

The `Support` property is not used at all except as a way to
store an object, so it should probably be removed in the future.
2020-06-17 12:53:29 +02:00
vocx-fc
2877870318 Draft: new make_radial_dimension function for more precision
A single `make_dimension` handles three types of dimensions,
(1) simple linear, (2) linear linked to an object, and (3) linked
to a circular edge.

So, we provide a new function, `make_radial_dimension_obj`,
to handle the third case. In this way we can check the input
parameters much better.

We adjust the `Draft_Dimension` Gui Command accordingly.
2020-06-17 12:53:29 +02:00