Commit Graph

100 Commits

Author SHA1 Message Date
Russell Johnson
dd03e616d0 Path: LGTM cleanup 2021-09-24 06:40:53 -05:00
sliptonic
b53ec3bd4e Black reformat 2021-09-01 12:56:00 -05:00
sliptonic
ddc4c69e82 black 2021-09-01 12:26:29 -05:00
sliptonic
730159d088 purge archpanel support 2021-09-01 08:34:46 -05:00
Russell Johnson
cfca2a790a Path: Allow parent job assignment
Modifications focus on allowing the creation of operations to include direct provision of parent job.
Path: Remove `useGui` implementation
2021-08-13 19:02:40 -05:00
Russell Johnson
7d4b5f34cc Path: Remove Side assignment to Outside for full model profiles
The profile operation is forcing  cut side to `Outside` when profiling whole models.  This change in code also allows for profiling `Inside` of entire models.  Apart from limiting profiling capabilities of entire models, this override could cause problems with profiling of selected faces or edges in very specific use cases.  Also, this fix removes the property assignment of a key control property within the execution code, which should not happen, apart from feedback properties.
2021-07-16 11:51:00 -05:00
Russell Johnson
16015f66e3 Path: Remove first-draft rotational code Path
Remove all first-draft rotational-related code from Path workbench to make way for more stable, long-term integration of a rotational indexing capability.
2021-05-27 10:04:31 -05:00
Russell Johnson
2b35419e55 Path: LGTM cleanup 2021-02-20 12:32:25 -06:00
Russell Johnson
a961fbee86 Path: Remove unnecessary line return 2021-02-20 12:32:25 -06:00
Russell Johnson
1b3205de20 Path: Add error for incorrect open-edge usage
When profiling open edges, the user must currently select a top edge and then set the Final Depth manually to a value below the selected edge(s).
This fix provides the user with feedback for the empty path generated.
2021-02-20 12:32:25 -06:00
Russell Johnson
215967fe78 Path: Catch error if ofstShape has no Area attribute 2021-02-20 12:32:25 -06:00
Russell Johnson
2b4158addc Path: Fix incorrect empty data type return 2021-02-20 12:32:25 -06:00
Russell Johnson
8e234290ef Path: Catch openEdges error if None 2021-02-20 12:32:25 -06:00
Russell Johnson
b3fc4fcf17 Path: Fix spacing typo 2021-02-20 12:32:25 -06:00
Russell Johnson
d7483f6e85 Path: Fix range() input type per gcc-7 build 2021-02-20 12:32:25 -06:00
Russell Johnson
3a10ed5f27 Path: Fix feature selection and handling
Fix error when working with selections containing edges and faces.  This fix effectively processes edges and only passes faces on to next processing step.  This simplifies the code a bit and changes some `obj.Base` references to `otherBase` to improve readability.
Path: Improve `obj.Base` reading and processing

`obj.Base` is first read in `self._processEdges()`.  All edges are identified and processed there.  Remaining features are saved in `remainingObjBaseFeatures` to be processed in the next section of the Profile code.
Path: Change `if` to `elif`
2021-02-20 12:32:25 -06:00
Russell Johnson
91dd729d4e Path: Fix error for undefined profileshape variable 2021-02-20 12:32:25 -06:00
Russell Johnson
8f4f304635 Path: Fix open-edge profiling for micro bit usage 2021-02-20 12:32:25 -06:00
Russell Johnson
45dab6b589 Path: Change HandleMultipleFeatures default value to Collectively
This fixes error when attempting to profile loop of vertical faces, thus maintaining original Profile Faces behavior by default for vertical looped face set.
2021-02-20 12:32:25 -06:00
Russell Johnson
0b9a160331 Path: Apply LazyLoader for DraftGeomUtils module 2021-02-20 12:32:25 -06:00
Russell Johnson
df7638435f Path: Remove Expand Profile feature from Profile op 2021-01-29 19:36:14 -06:00
luz paz
ea0ce293f7 Fix typos [skip ci]
Found via `codespell v2.1.dev0`  
```
codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,byteorder,calculater,cancelled,cancelling,cas,cascade,click,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,ist,kilometre,lod,mantatory,methode,metres,millim,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,./ChangeLogpios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml
```
2020-12-19 16:35:16 +01:00
luz paz
b75cd3dd52 Path: Fix header uniformity and remove trailing whitespace
This PR fixes header uniformity across all Path files. It also removes all trailing whitespace.
2020-11-05 19:57:21 +01:00
Russell Johnson
88f0ea629d Path: Fixes ticket #4471 2020-10-22 10:55:51 -05:00
Russell Johnson
5eb5434c6a Path: Fix rotational error for certain situations
Error discovered during recent troubleshooting of Pocket_Shape with rotation.
Initial application of new operation yields path, but subsequent changes and applications failed due to `if ...` statement removed here for the fix.
2020-10-03 13:56:46 -05:00
Russell Johnson
d2981fb09a Path: Remove FinalDepth limitation for internal profile operation
Requested in forum at https://forum.freecadweb.org/viewtopic.php?f=15&t=50341
2020-10-01 22:51:33 -05:00
Russell Johnson
4e6741a027 Path: Add debug feedback and comment 2020-10-01 22:49:48 -05: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
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
fabe64cbcd Path: Fix _makeIntersectionTags() for very short edges
The 0.25 constant used might need to be modified later.  Or, the entire `_makeIntersectionTags()` method might need to be improved if other micro-edge use cases cause failure.
2020-06-04 13:15:10 -05:00
Russell Johnson
29a1ba60f6 Path: Improve open-edges, messaging, Final Depth initial guess and more
Open-edges will now work in simple cases where user selects bottom edge, without requiring adjustment to Final Depth.  This will speed up procedural usage of the operation for open edges by re-enabling the `select-edge_create_OK` work flow.
The guessing procedure for Final Depth based on Base Geometry selected is fixed in `UpdateDepths()` method.
Improvements to user messages.
Remove unnecessary code and comments.
Improve debugging feedback.
2020-05-21 22:44:50 -05:00
Russell Johnson
ffc353f294 Path: Fix for .extrude() vector roughly zero 2020-05-13 21:55:06 -05:00
Russell Johnson
edbe6c4f2f Path: Additional fixes and improvements to unified Profile operation 2020-05-10 23:07:53 -05:00
Russell Johnson
5d91213292 Path: Consolidate Contour, ProfileFaces, and ProfileEdges
No geometry selection defaults to Contour operation.
Path: Add new unified `Profile` operation modules
2020-05-10 18:19:42 -05:00
Markus Lampert
1e76c99250 Renamed PathProfile to PathProfileFaces for consistency; moved common depth calculation for ops with BaseGeometry into PathAreaOp. 2017-08-22 10:16:57 -03:00
Markus Lampert
50711c1ba4 Converted PathProfile to be based on PathAreaOp. 2017-08-22 10:16:57 -03:00
Markus Lampert
f234968191 Turned tracking off for profile. 2017-08-19 13:30:03 +02:00
Markus Lampert
2ac4d134eb Process holes before the perimeter for Arch.PanelSheets 2017-07-28 10:07:58 -03:00
sliptonic
ddb2001dcb Path: Change Profile 'side' enumeration to inside/outside
left/right was too ambiguous
correct profile direction set
2017-07-10 19:17:41 -03:00
sliptonic
48337e03c1 Path: fix #3048 Visibility on recompute is now preserved 2017-07-10 19:17:41 -03:00
sliptonic
444fc18bcc Path: implement jointype for contour and profile fix #3116
Not implemented in the task panel.  Settings are only available in the property pane.
2017-07-10 19:17:41 -03:00
sliptonic
023c5d8608 Path: Make PathProfile verbose 2017-07-10 19:17:41 -03:00
sliptonic
e8b93ef656 Path: cleanup start points
Make sure we're storing path parms for debugging
2017-07-07 16:42:06 -05:00
Markus Lampert
9e7eb3bc2c Fixed spelling error in profile. 2017-07-04 10:41:35 +02:00
sliptonic
266fb0b70f Path: Adding Apply buttons
Give user more control of when long
running updates are executed in task
panels
2017-06-28 21:46:44 +02:00
sliptonic
a5a88e5b59 Path: remove obsolete code from cmake
also refactored depthparams and fixes to depths
on various operations
2017-06-28 21:46:44 +02:00
sliptonic
8b804d71ae path: more collision support
Made depthparams an iterable.
2017-06-28 21:46:44 +02:00
sliptonic
17b16a7286 Path: adding cancel buttons to operations 2017-06-28 21:46:44 +02:00
sliptonic
2147798063 Path: fix potential crash bug. 2017-06-18 17:32:16 +02:00