Commit Graph

32 Commits

Author SHA1 Message Date
sliptonic
6f941c34d1 lgtm cleanup
fix contradictory tooltip
2020-10-07 16:53:52 -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
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
86a182c2b8 Path: Add opUpdateDepths() method as in 3D Surface 2020-06-18 01:36:54 -05:00
Russell Johnson
33d1d281ec 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
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
Russell Johnson
155f83baa7 Path: Fix duplication of gcode for Single-pass layer mode.. 2020-06-03 20:13:39 -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
Russell Johnson
a1d7cffaee Path: Add missing cut patterns and organize the enumeration lists 2020-06-03 18:59:46 -05:00
Gabriel Wicke
cc84287515 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
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
29dfb5b65c 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
dc8befa478 Path: Move more common methods to PathSurfaceSupport module 2020-04-16 00:35:05 -05:00
Russell Johnson
4cd4b2e879 Path: Comment cleanup; adjust messages; set 2 default values 2020-04-16 00:28:33 -05:00
Russell Johnson
cb796ca2c9 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
aaf1eee7c5 Path: Preparation for making property defaults readable through class 2020-04-16 00:28:18 -05:00
Russell Johnson
eb354c3a1d Path: Improve backwards compatibility capabilities 2020-04-16 00:28:11 -05:00
Russell Johnson
ed85341cd9 Path: Improve property visibility in Data tab 2020-04-16 00:28:04 -05:00
Russell Johnson
a0cecce62e Path: Expose operation's property details to access via class 2020-04-16 00:27:58 -05:00
Russell Johnson
9e9d5ce962 Path: Fix weakness in face analysis for unique OuterWire cases
synced with PathSurface module
2020-04-16 00:27:49 -05:00
Russell Johnson
aa1261dc7d 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
7fe094ac02 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
5ecbc89f30 change isOnLine to isOnLineSegment 2020-04-06 06:34:53 -05:00
Eric Trombly
2b8cd1be42 add changes to Waterline 2020-04-06 06:34:53 -05:00
luz.paz
cafed2a137 [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
ebb383cc6c 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
6644d08191 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
4109f0c7df 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
312f09e81e Path: Add Waterline modules to PathScripts 2020-03-30 22:34:57 -05:00