Commit Graph

73 Commits

Author SHA1 Message Date
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
sliptonic aeec1c8c88 Path: added a hidden property to store the areaparams
Useful for debugging.
2017-06-15 14:42:30 -03:00
sliptonic b5e233d3aa 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 cc4abd21b9 Path: usecomp setting toggles the availability of the side property 2017-06-15 14:42:30 -03:00
sliptonic c97724ef30 Path: remove Pocket OCC algorithm 2017-06-15 14:42:30 -03:00
Markus Lampert 3368c8682e Moved almost all translate implementations away from QtGui. 2017-06-03 15:37:41 -07:00
sliptonic 34324c6547 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 ffc4fb28aa Path: additional functionality for arch panels 2017-03-21 10:27:51 -03:00
sliptonic 09ac25f089 Path: more bug fixes 2017-03-21 10:27:51 -03:00
sliptonic 493d346bdc 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 b0abdd1c1d PATH: remove old holding tag code and GUI elements 2017-01-13 09:20:04 -06:00
Sebastian Stetter 21b116649e 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
Dan Falck 388ddcf2b2 PATH:units added Gui::InputField to some parms
old spinboxes were not aware of units so I substituted in the custom FreeCAD Gui:InputField on countour, profile, profile edges, and pocket operations.
2016-12-24 17:28:40 -08:00
sliptonic 7c2c541d7a Holding tag bugs
Removed OCC from profile
Add option to suppress profile of perim.
2016-11-13 14:51:36 -06:00
sliptonic 9a3711079c fix for direction/cutside bug 2016-11-04 15:04:32 -05:00
sliptonic cb843391a8 Patch from nahshon
http://forum.freecadweb.org/viewtopic.php?f=15&t=18148&sid=9dcb94b872e170a78e8940bd08880b92&start=10#p143439
2016-11-04 09:19:49 -05:00
sliptonic 5ebb079afb really ugly icons.
Maybe someone with talent will help.
2016-10-24 12:49:57 -02:00
sliptonic df38242063 Edge Profile operation 2016-10-15 15:25:54 -03:00
sliptonic 05ff7e40d5 menu cleanup 2016-10-15 15:25:54 -03:00
sliptonic 2f04ea9586 Drilling handles multiple locations
Jog rates started
Automatically create default tool in new job.
2016-10-15 15:25:54 -03:00
sliptonic bbb7c83d44 Making toolcontrollers selectable from operations 2016-10-15 15:25:54 -03:00
sliptonic 5398c58d6b Tool Library replaces ToolTable Job replaces Project 2016-10-15 15:25:54 -03:00
Yorik van Havre a50bd5dc88 Made Path objects properties translatable - fixes #2524 2016-10-07 22:21:02 -03:00
sliptonic 0ea9cc8c43 Bug fixes:
fixes reparenting bug when dressup is deleted
Engrave wasn't using final depth value
Dragknife Dressup not correctly calculating spin direction or curve intersection
Per Yorik, fix crash if PartGui hasn't been loaded
Allow selection of bottom face for profiling
Bug # 0002615
2016-08-04 14:28:59 -03:00
sliptonic bf46ea4804 Additional fixes for post processing.
comment diameter instead of radius for compensated profile/surface ops
opensbp improved pre processor is more explicit with XY values
cmake copies opensbp postprocessor.
Removed unnecessary file.
2016-07-03 22:41:38 -03:00
sliptonic d1b927767a Fix for bug #2528
Improved handling of comments
2016-07-03 22:41:38 -03:00
Yorik van Havre 24c279f92b Merge remote-tracking branch 'sliptonic/master' 2016-06-13 20:02:32 -03:00
Lorenz Hüdepohl c862fc0065 Path: add plunge angle feature for PathProfile
With the new property "PlungeAngle", one can specify the inclination of
a ramp into the material, instead of plunging straight down. The
original behaviour and default is set to 90.0 degrees. A value of zero
makes the tool descent exactly one layer depth down per turn.
2016-06-13 15:27:21 +02:00