Commit Graph

32 Commits

Author SHA1 Message Date
sliptonic
dcf9989f12 lgtm cleanup
fix contradictory tooltip
2020-10-07 16:53:52 -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
sliptonic
c238c7fd6f 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
82fbfa95d1 Path: Add opUpdateDepths() method as in 3D Surface 2020-06-18 01:36:54 -05:00
Russell Johnson
ae18b8cac0 Path: Convert SetupProperties() to dynamic code
This method will always synchronize with operation's class properties.
2020-06-16 02:01:30 -05:00
Russell Johnson
06a999759d 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
Russell Johnson
c7222a51a7 Path: Fix duplication of gcode for Single-pass layer mode.. 2020-06-03 20:13:39 -05:00
Russell Johnson
7ba218f417 Path: Fix paths through model
All cut patterns except Offset were cutting through model.
2020-06-03 18:59:46 -05:00
Russell Johnson
d94ae6e813 Path: Simplify creation of debug objects
Path: Improve debug messages
2020-06-03 18:59:46 -05:00
Russell Johnson
3e83b1d8e5 Path: Add missing cut patterns and organize the enumeration lists 2020-06-03 18:59:46 -05:00
Gabriel Wicke
86cd9f2124 Path: Opt into automatic git newline normalization
Avoid spurious diffs from inadvertent newline changes by letting git
normalize newlines in the path module as well, just as a list of other
modules including Draft already do.

This effectively standardizes all checked-in code to Unix newlines, but
checkouts might use CRLF if that is the user preference.
2020-05-31 08:33:29 -07:00
Russell Johnson
00c1038ffd 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
691c3900c1 Path: LGTM cleanup and PEP8 2020-05-21 23:24:17 -05:00
Russell Johnson
374df7838a Path: Relocate common 3D Surface and Waterline methods to support module 2020-05-21 23:24:17 -05:00
Russell Johnson
6f4f24c299 Path: Fix ZigZag pattern; Remove some comments
ZigZag pointset is no longer a tuple to unpack.  Grouped it with Line and Spiral.
2020-04-24 22:36:50 -05:00
Russell Johnson
c3dcf94ffd Path: Move more common methods to PathSurfaceSupport module 2020-04-16 00:35:05 -05:00
Russell Johnson
fa13068220 Path: Comment cleanup; adjust messages; set 2 default values 2020-04-16 00:28:33 -05:00
Russell Johnson
ba88e0eef2 Path: Implement new module PathSurfaceSupport; Add Spiral cut pattern
New module is shared with 3D Surface operation. Module contains PathGeometryGenerator class. More common methods can be moved into the new module.
2020-04-16 00:28:25 -05:00
Russell Johnson
ce42444afa Path: Preparation for making property defaults readable through class 2020-04-16 00:28:18 -05:00
Russell Johnson
2fc634a22a Path: Improve backwards compatibility capabilities 2020-04-16 00:28:11 -05:00
Russell Johnson
ea960770af Path: Improve property visibility in Data tab 2020-04-16 00:28:04 -05:00
Russell Johnson
873b9c0f6f Path: Expose operation's property details to access via class 2020-04-16 00:27:58 -05:00
Russell Johnson
996d4710f5 Path: Fix weakness in face analysis for unique OuterWire cases
synced with PathSurface module
2020-04-16 00:27:49 -05:00
Russell Johnson
04093c3d76 Path: Waterline fixes(5), new IgnoreOuterAbove, and code simplification
Fix module base for getFacets()
Fix isOnLineSegment() usage.
Fix property visibility in Data tab.
Fix missing raise to SafeHeight after clearing layer.
Fix handling of `import ocl` failure
Move Draft import to dependent function
Raise `import ocl` test in code execution
Disable face selection for Waterline and issue warning as intermediate fix. Application of face-selection from 3D Surface requires some modification for use in Waterline.  This work is to be done.  Some existing carryover methods should be usable in current form.
Compact setup() function
Sync some methods with PathSurface in preparation of extracting common methods to independent support module.
Increase SampleInterval range for OCL Dropcutter algorithm.
Convert OCL Dropcutter waterline to use FreeCAD.Vector() points rather than ocl.Point().
Simplify some code and delete unnecessary comments.
LGTM cleanup.
New feature - IgnoreOuterAbove. Ignore the outer-most waterline above this height.  Designed to eliminate the model profile path created in some use cases.
Adjust tooltip language for `Algorithm`
2020-04-16 00:27:40 -05:00
Eric Trombly
24e681c63b add lazyloader support
lazy_loader is copied to Ext now, modified external imports to lazy_load

add a few more imports to be lazy loaded, think the install path is correct now

[TD]"<" symbol embedded in html

revert changes to path modules for testing

use lazyloader in PathAreaOp.py

add back in deferred loading

temp change to print error message in tests

temp change to print error message in tests

add _init__.py to lazy_loader

make install in CMakeLists.txt one line
2020-04-13 21:14:34 -05:00
Eric Trombly
56769f1a27 change isOnLine to isOnLineSegment 2020-04-06 06:34:53 -05:00
Eric Trombly
6bb5873e3e add changes to Waterline 2020-04-06 06:34:53 -05:00
luz.paz
1663fbb1cd [skip ci] Fix typos in Path WB
Found via 
```
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-01 13:28:48 +02:00
Russell Johnson
75d4a66ca1 Path: Synchronize tooltips. Apply DepthOffset. Hide properties.
Sync tooltip text between 3D Surface and Waterline.
Also, apply `DepthOffset` to Experimental Waterline algorithm.
Hide some properties in Data tab.
2020-03-30 23:24:47 -05:00
Russell Johnson
d1e77e2a90 Path: Implement experimental Waterline algorithm
Insert experimental Waterline algorithm that is non-OCL based.  It slices by step-down value, not stepover.
2020-03-30 22:34:57 -05:00
Russell Johnson
186a98a8e2 Path: Restructure initOperation() for backward compatibility
Added initOpProperties() to handle independent creation of properties for backward compatibility and to allow for future storage of enumeration property lists within the operation.
Path: Change from PathSurface code to `Waterline`


Path: Updates and fixes


Path: Simplify code

Remove `Algorithm` and `AreaParams` property usage.
Remove other unused properties.
Simplify setupEditorProperties().
Path: Remove unused methods


Path: Update property initialization and handling

Make properties backward compatible with previous versions of the operation.
Remove references to unused properties due to 3D Surface and Waterline separation.
Path: Insert placeholder for `Experimental` algorithm


Path: Fix missing property and fix syntax

Missing `Algrorithm
2020-03-30 22:34:57 -05:00
Russell Johnson
31e4584142 Path: Add Waterline modules to PathScripts 2020-03-30 22:34:57 -05:00