Commit Graph

89 Commits

Author SHA1 Message Date
Russell Johnson
05b2b9e28e Path: Fix incorrect empty data type return 2021-02-20 12:32:25 -06:00
Russell Johnson
d90d176a86 Path: Catch openEdges error if None 2021-02-20 12:32:25 -06:00
Russell Johnson
a33a287475 Path: Fix spacing typo 2021-02-20 12:32:25 -06:00
Russell Johnson
b3cfb29038 Path: Fix range() input type per gcc-7 build 2021-02-20 12:32:25 -06:00
Russell Johnson
0718afa5e1 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
b86104b01e Path: Fix error for undefined profileshape variable 2021-02-20 12:32:25 -06:00
Russell Johnson
cda4d12ad2 Path: Fix open-edge profiling for micro bit usage 2021-02-20 12:32:25 -06:00
Russell Johnson
f1f584af2d 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
edab3c6ecc Path: Apply LazyLoader for DraftGeomUtils module 2021-02-20 12:32:25 -06:00
Russell Johnson
ee0d220bc4 Path: Remove Expand Profile feature from Profile op 2021-01-29 19:36:14 -06:00
luz paz
590cbd85e3 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
60c055e62d 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
a7230d4e13 Path: Fixes ticket #4471 2020-10-22 10:55:51 -05:00
Russell Johnson
aebc319ced 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
a8f97febad 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
2a2c727aba Path: Add debug feedback and comment 2020-10-01 22:49:48 -05:00
Gabriel Wicke
670f3b6098 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
5f362e21a5 Path: Cleanup and simplify code 2020-06-18 01:39:26 -05:00
Russell Johnson
8dd767239c 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
d231382f02 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
edda808c3c 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
494bb6cba6 Path: Fix for .extrude() vector roughly zero 2020-05-13 21:55:06 -05:00
Russell Johnson
e5b7a66d92 Path: Additional fixes and improvements to unified Profile operation 2020-05-10 23:07:53 -05:00
Russell Johnson
27c4db9a34 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
6f334e84a5 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
0617d360d0 Converted PathProfile to be based on PathAreaOp. 2017-08-22 10:16:57 -03:00
Markus Lampert
8f080e54d2 Turned tracking off for profile. 2017-08-19 13:30:03 +02:00
Markus Lampert
1e5de4ece0 Process holes before the perimeter for Arch.PanelSheets 2017-07-28 10:07:58 -03:00
sliptonic
4743a7f73b 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
0b0c3b2b2e Path: fix #3048 Visibility on recompute is now preserved 2017-07-10 19:17:41 -03:00
sliptonic
9a15fed386 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
75121febf0 Path: Make PathProfile verbose 2017-07-10 19:17:41 -03:00
sliptonic
4063609e89 Path: cleanup start points
Make sure we're storing path parms for debugging
2017-07-07 16:42:06 -05:00
Markus Lampert
77647237db Fixed spelling error in profile. 2017-07-04 10:41:35 +02:00
sliptonic
5f77eea2aa 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
7532011104 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
ae29107aa9 path: more collision support
Made depthparams an iterable.
2017-06-28 21:46:44 +02:00
sliptonic
b34815746e Path: adding cancel buttons to operations 2017-06-28 21:46:44 +02:00
sliptonic
5305247140 Path: fix potential crash bug. 2017-06-18 17:32:16 +02:00
sliptonic
6da8c1ba94 Path: added a hidden property to store the areaparams
Useful for debugging.
2017-06-15 14:42:30 -03:00
sliptonic
239514e825 Path: fix bug in drilling
hemispherical faces have an odd edge that doesn't have a Curve attribute.
2017-06-15 14:42:30 -03:00
sliptonic
91551520e8 Path: usecomp setting toggles the availability of the side property 2017-06-15 14:42:30 -03:00
sliptonic
f23f728a75 Path: remove Pocket OCC algorithm 2017-06-15 14:42:30 -03:00
Markus Lampert
ea49943a8f Moved almost all translate implementations away from QtGui. 2017-06-03 15:37:41 -07:00
sliptonic
c8c258aa28 Path: Several small bugs related to Arch Panel support in Path.
Sheet tag placement not including the sheet offset
contour not using sheet attributes
Engraving not using sheet attributes
Profile not using transform.
2017-03-21 15:04:53 -05:00
sliptonic
8fa768889b Path: additional functionality for arch panels 2017-03-21 10:27:51 -03:00
sliptonic
d3fb9fbfe2 Path: more bug fixes 2017-03-21 10:27:51 -03:00
sliptonic
fa1f358f52 Path: adapt other operations
# Conflicts:
#	src/Mod/Path/Gui/Resources/panels/DrillingEdit.ui
#	src/Mod/Path/PathScripts/PathDrilling.py
2017-03-21 10:27:51 -03:00
sliptonic
0bf7a2e797 PATH: remove old holding tag code and GUI elements 2017-01-13 09:20:04 -06:00
Sebastian Stetter
57e62d682a PATH: fix for 2805
changed TaskPanels to use unit conversions via FreeCAD.Units
commented out references to segLen since it si used nowhere
2017-01-09 13:24:23 +01:00