Commit Graph

3108 Commits

Author SHA1 Message Date
Mark Ganson TheMarkster
0491fa4ab9 coverity issue cid 305102 2020-07-23 13:55:32 +02:00
Gabriel Wicke
5c6de6dd14 Path: Area based unified projection implementation
Generalize the `extractFaceOffset` method to `getOffsetArea`, which can
handle both face offsetting and projection. Another difference is that
the new method exposes Area's ability to preserve internal holes,
defaulting to preserving. The method is moved to the PathUtils module,
reflecting its generality and fairly wide used across Path.

This method is then used to provide a drop-in alternative to
`FindUnifiedRegions` via a small wrapper in PathSurfaceSupport. The Area
implementation is generally quick, but can fail (throw) in some cases,
so the wrapper is trying the Area method as an optimization first, and
falls back to the full `FindUnifiedRegions` logic if that fails.
2020-07-21 18:34:09 -07:00
sliptonic
7202749809 Merge pull request #3709 from etrombly/3dSurface
[Path] fix two never ending while loops in PathSurfaceSupport
2020-07-21 10:58:48 -05:00
wmayer
433ec2d6e4 Coverity: Copied into fixed size buffer 2020-07-20 17:34:25 +02:00
wmayer
5919874437 Coverity: Invalid printf format string 2020-07-20 17:34:23 +02:00
wmayer
cbb5f99ade PVS: V730 Not all members of a class are initialized inside the constructor 2020-07-18 10:59:27 +02:00
Eric Trombly
fa8f3c2461 fix two never ending while loops in PathSurfaceSupport 2020-07-17 13:59:10 -05:00
Eric Trombly
8ab962ad85 handle offset error in PathPocketShapeGui 2020-07-15 21:31:34 -05:00
Eric Trombly
66b941b5fa handle makeOffset2D exception 2020-07-15 21:31:34 -05:00
Eric Trombly
465de60007 don't generate gcode if op isn't valid. Don't plunge to start height if safe and clearance height are the same. 2020-07-15 19:35:18 -05:00
Eric Trombly
cf95a6ee91 fix attributeError if edge can't be flipped 2020-07-14 18:53:54 -05:00
luz paz
3dfae3ba46 Merged crowdin translations 2020-07-13 14:49:45 +02:00
Yorik van Havre
fbfe821e8c Updated master ts files 2020-07-13 13:20:21 +02:00
sliptonic
be1abcb96b Merge pull request #3688 from etrombly/deleted
[PATH] fix Cannot access attribute 'Document' of deleted object when cancelling PathPocket operation
2020-07-12 16:27:35 -05:00
Eric Trombly
2e251ee967 cleaner fix 2020-07-10 15:42:00 -05:00
Eric Trombly
b4c2082b9e fix deleted object error 2020-07-10 15:42:00 -05:00
sliptonic
fdd4561957 unhide the property for the interpolation surface 2020-07-09 10:47:58 -05:00
Russell Johnson
4b02dace0d Path: Add basic support for arc and circular edges
- Arc and circular slots available using single edge selection.
- `ExtendRadius` property to allow for tool compensation.
- Extend path start and end is available. Value is measured along the arc, not linear.
- Includes collision check for arc and circular slots.
2020-07-02 01:16:22 -05:00
luz.paz
1da81df756 Fix typos [skip-ci]
Found via codespell v1.18.0.dev0  
```
codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,ba,beginn,behaviour,bloaded,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,orgin,orginx,orginy,ot,pard,pres,programm,que,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml
```
2020-06-29 20:52:23 +02:00
sliptonic
a0a4fdb330 Merge pull request #3657 from Russ4262/MillFace_fix
[Path] MillFace - Fix calculation of OpFinalDepth default value
2020-06-29 09:54:04 -05:00
sliptonic
8a85d0b2bd Merge pull request #3645 from Russ4262/BaseGeomList_resize
[Path] Resize the Base Geometry list dynamically
2020-06-29 09:53:18 -05:00
Eric Trombly
6fc8a3cae7 check if pcLineCoords is empty 2020-06-28 19:52:59 -05:00
Eric Trombly
2035e0cfbc fix null reference 2020-06-28 19:52:59 -05:00
Russell Johnson
65f7e24a9e Path: Resize the Base Geometry list dynamically
Make the size of the Base Geometry list dynamically adjust to its contents.
2020-06-27 15:05:00 -05:00
Russell Johnson
9b67e43b12 Path: Fix calculation of OpFinalDepth default value
Remove commented lines.
Modify PathLog.Level assignment for easier readability.
2020-06-27 09:36:14 -05:00
sliptonic
e1bfab226e Merge pull request #3599 from GeneGH/Edits
Path Simulator - Recognition of canned cycle cancellation
2020-06-21 13:22:49 -05:00
sliptonic
274d044ad6 Merge branch 'master' into master 2020-06-21 10:38:47 -05:00
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
sliptonic
9b7319107b [Path] Make jobs delete cleanly.
Deletion of tool controllers now works for toolbits as well
2020-06-19 13:17:17 -05: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
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
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
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