Commit Graph

35 Commits

Author SHA1 Message Date
J-Dunn d55a72ee6a [PATH] fix conecutter core dumps
fix improperly passed arguments, trigger assert() in OCL, which causes an ugly core dump.
2021-02-11 19:33:51 +00:00
Russell Johnson bdf4d39793 Path: Fix reference to cutting edge angle in OCL_Tool() class
The class variable name was not corrected with previously committed changes.
The correct cutting edge variable name is located in the __init__() constructor method.
2020-12-18 16:04:28 -06:00
Russell Johnson b94cbb617e Path: Fix unsorted arc order for circular cut pattern in some cases 2020-11-08 22:56:49 -06:00
Russell Johnson 220bf0e396 Path: Fix cut direction when CutPatternReversed is true for Circular 2020-11-08 22:56:49 -06:00
Russell Johnson 4c558f1a30 Path: Restructure code to fix closedGap LGTM issue 2020-11-08 22:56:49 -06:00
Russell Johnson dea85bc999 Path: Some LGTM cleanup 2020-11-08 22:56:49 -06:00
Russell Johnson 604cfaf779 Path: Apply missing CutMode setting when CutPattern = Offset
The `CutMode` toggle had no effect. This fix applies the `CutMode` toggle when the `CutPattern = Offset`.  The indicated `CutMode` may not be accurate depending on the situation, but the toggle will change the cut direction as intended.
2020-11-08 22:56:49 -06: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
J-Dunn 1830c14bb0 Add files via upload
fix 3Dsurface bugs: variable name error and OCL using half tip angle. 
https://forum.freecadweb.org/viewtopic.php?f=15&t=50570
2020-09-27 18:34:31 +01: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
Eric Trombly fa8f3c2461 fix two never ending while loops in PathSurfaceSupport 2020-07-17 13:59:10 -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 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
Russell Johnson 0a91704949 Path: Fix error when selection includes vertical faces. 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 f4e522c95b Path: Initialize OCL_Tool class and implement in OCL-based operations
The purpose of this class is to properly translate both, Legacy and ToolBit, tools into OCL tool types where possible.
message fix
2020-06-16 02:01:30 -05:00
luz.paz 720b0b96d0 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-15 10:11:22 +02:00
Gabriel Wicke 84113fbd17 Path: More ambitious step-over and break optimizations
Extend the work from #3496 to allow the safe optimization of more
complex step transitions.

- Use the actual safePDC path for short step transitions and breaks,
  currently up to 2 cutter diameters. This value is chosen to cover
  basically all typical end step-overs, including those with heavy skew.
  Extending this much further (up to the break even point for a retract &
  rapid) will need some careful thinking for multi pass paths.
- Coordinate offset tolerances with per-operation tessellation
  tolerances, to avoid tessellation artifacts messing up paths by
  causing false retracts.  Such retracts can cause entire steps near
  vertical areas to be falsely skipped, which would cause a major
  deviation from the target model.  By considering per-job tolerances, we
  allow users to safely save computational resources by computing roughing
  operations with lower precision, or selectively increase precision for
  finish passes.
- Refine the default tessellation tolerance to GeometryTolerance / 4.
  This makes sure that the job GeometryTolerance is respected by
  operation defaults.
2020-06-05 18:21:24 -07:00
Russell Johnson e78c1e6646 Path: Improve FindUnifiedRegion class
Improvements now identify cases where selected faces create a closed loop that creates an internal closed wire to not be processed.
Remove unnecessary comments.
Add debug statements.
2020-06-05 00:11:43 -05:00
Russell Johnson a167f2229b Path: Fix vertical face handling; Correct if ... is not False usage 2020-06-04 20:40:26 -05:00
Russell Johnson c82dc128c3 Path: Fix for single selected non-planar face 2020-06-04 00:03:31 -05:00
Russell Johnson 9ca855476b Path: Clean up messaging and add translation() usage 2020-06-03 19:00:59 -05:00
Russell Johnson 4e139d5a1e Path: Fix failure to create model STL when selecting faces 2020-06-03 19:00:36 -05:00
Russell Johnson 1d35573917 Path: Fix paths through model
All cut patterns except Offset were cutting through model.
2020-06-03 18:59:46 -05:00
Russell Johnson bebdf2d006 Path: Simplify creation of debug objects
Path: Improve debug messages
2020-06-03 18:59:46 -05:00
Gabriel Wicke 1acaa5eadf Path: Respect meshing tolerance settings for 3d surfaces
Meshing tolerance settings for 3d surface operations were ignored since
switching to directly using facets from the view tesselation. On complex
3d shapes, this could cause serious meshing artifacts in the generated
paths, serious enough to show up even in path previews.

Additionally, there were occasionally segfaults when a model was not
viewed and thus implicitly tessellated before starting an OCL operation.

This patch switches from using view tessellations to explicitly calling
`tessellate()`. While this is usually more expensive than using the
existing view tessellation, recent changes to parallelize tessellation
have reduced this additional cost significantly.

Note that this diff only restores the use of LinearDeflection, since
that is the main thing we care about in OCL use cases. Angular
deflection is still ignored, but I think this is a good thing for this
case since a highly refined mesh in tiny but heavily curved areas below
the linear deflection threshold just adds unnecessary cost. If there is
agreement on this point, then we can remove the preference for
AngularDeflection from the UI in a follow-up.
2020-06-02 20:54:20 -07:00
Russell Johnson 786d96ae60 Path: Expose property creation process to user access; Code cleanup
Path: EOL syncs with source

PathSurface and PathWaterline modules have incorrect, Windows, line endings and need to be converted to Unix style.
2020-05-21 23:24:17 -05:00
Russell Johnson 49853d5484 Path: LGTM cleanup and PEP8 2020-05-21 23:24:17 -05:00
Russell Johnson 562b834f54 Path: Relocate common 3D Surface and Waterline methods to support module 2020-05-21 23:24:17 -05:00
Russell Johnson 090fe69627 Path: Use lazyloader for importing some modules 2020-05-21 23:24:17 -05:00
Russell Johnson a9ee9af710 Path: Improvements to user messages
Remove some messages.
Implement FreeCAD.Console.Print___() in place of PathLog.___().
Path: fixes
2020-05-21 23:24:17 -05:00
Russell Johnson d4fafcc34c Path: new FindUnifiedRegions class
Improve `HandleMultipleFeatures` processing when set to `Collectively` by implementing new class to refine the processing area, attempting to remove common edges between connected face regions.
2020-05-21 23:24:17 -05:00
luz.paz 06a1099e2b [skip-ci] Fix typos
Found via codespell v1.17.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-04-27 11:29:32 +02:00
Russell Johnson dc8befa478 Path: Move more common methods to PathSurfaceSupport module 2020-04-16 00:35:05 -05:00
Russell Johnson 28abb95ea5 Path: Add new support module for 3D Surface and Waterline 2020-04-16 00:28:33 -05:00