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.
- Only apply aggressive optimizations to short horizontal moves within
cutter diameter. The safe model STL does not accurately reflect stock
state, so using it for determining long distance move safe heights is
not safe. There would be a high chance of hitting the stock at rapid
speeds.
Thankfully, the vast majority of step-overs tend to be short, so are
still optimized.
- For short moves, only allow completely lift-free transitions when
there is (almost) no Z change, and the min safe travel height does not
rise above the same level.
Otherwise, lift to the max of end points and min safe travel height
first, then move horizontally. A future optimization would be to
directly use the drop scan for transition path generation.
Converted _planarMakePathGeom() into independent class, PathGeometryGenerator, as preparation to share common code with Waterline.
Implementation of new class within existing code.
Added new cut pattern: Offset. It is ported from Waterline.
Fix _processRotationalOp() arguments and erroneous call thereto.
Fix isOnLineSegment() usage.
Fix transition between profile edge and clearing.
Fix _planarSinglepassProcess() method.
Fix `ProfileEdges` feature.
Fix Y-axis rotation error in G-code and display.
Fix error handling of `import ocl` test.
Raise `import ocl` test in code sequence.
Convert ocl.Point scan results and handling to FreeCAD.Vector() type throughout `Rotational` scan code.
Change properties group from `Rotational` to `Rotation`.
Make operation property details accessible through class.
Relocate Draft import to dependent function.
Improve property visibility in Data tab.
Issue warning for Rotational scans if faces are selected.
Compact setup() function.
LGTM cleanup throughout.
Delete unnecessary comments.
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
Fix grammar mistake.
Fix Gcode comment formatting.
Fix application of `Optimize Step Over Transitions` by adjusting the offset tolerance for creating the offset cut area for the operation.
Fix math error in circular based cut patterns for small diameter cutters.
Identification of bugs begins in the forum at https://forum.freecadweb.org/viewtopic.php?style=3&f=15&t=41997&start=210.
Path: Lower SampleInterval minimum to 0.0001mm
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
New feature: Limit 3D Surface op to selected faces.
Disabled the IgnoreWaste feature, until it can be made compatible with new features.
New feature: Face avoidance using new `AvoidLastXFaces` property.
New cut patterns: `Circular` and `CircularZigZag`. New patterns include customizable center point and optional optimizations. Implemented G2/G3 gcode commands.
New feature: Safe travel for transitional paths. New methods to allow safe travel over stock, cut area, and avoided features.
New feature: Start point for operation. Choose a custom XY start point for the operation.
Restructure code to improve management and prepare for separation of the `Waterline` algorithm into an independent operation in the PathWB.
New feature: `ProfileEdges`. Allows the user to profile the edges(boundary) of the selected face(s) with or without cutting the entire face area.
Add my name to the `Credits` tab in the `About FreeCAD` documentation.
Added new feature and property: `CutPatternReversed`. This will make Circular, Line, and ZigZag patterns work in reverse order - outside to inside.
PathSurface: Add select-face(s) feature and other improvements
New feature: Limit 3D Surface op to selected faces.
Disabled the IgnoreWaste feature, until it can be made compatible with new features.
New feature: Face avoidance using new `AvoidLastXFaces` property.
New cut patterns: `Circular` and `CircularZigZag`. New patterns include customizable center point and optional optimizations. Implemented G2/G3 gcode commands.
New feature: Safe travel for transitional paths. New methods to allow safe travel over stock, cut area, and avoided features.
New feature: Start point for operation. Choose a custom XY start point for the operation.
Restructure code to improve management and prepare for separation of the `Waterline` algorithm into an independent operation in the PathWB.
New feature: `ProfileEdges`. Allows the user to profile the edges(boundary) of the selected face(s) with or without cutting the entire face area.
Add my name to the `Credits` tab in the `About FreeCAD` documentation.
The code was trying to iterate over a `range(0, pntsPerLine)`, but
pntsPerLine was a float resulting from a division.
Convert pntsPerLine to an int, and only ignore waste if this was
successful.
Found via ` codespell -q 3 -I ../fc-word-whitelist.txt -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig* -L pard,wallthicknessOn`
codespell version 1.15.0.dev0
* PathSurface: Add StepDown support
Add StepDown support for PathSurface operation.
A low-level optimization algorithm is included.
* Update PageOpSurfaceEdit.ui
* PathSurface: Activate CompletionMode input
Update code to use CompletionMode selection from user.
* PathSurfaceGui: Add Completion Mode selection box
Add Completion Mode selection box for user input.
* PathSurface: Use depth_params() for step control
Implemented PathUtils.depth_params() for control of step downs to maintain consistency throughout PathWB.
Suggested by Sliptonic.
* PathSurface: Improve stability - Rev3
Organized code better, improved path optimization algorithm
* PathSurface: Add XY rotational surfacing
Add options to perform 3D surfacing by rotating object around X or Y axis.
* PathSurface: update setup function
Add properties to setup function
* PathSurface: Remove extraneous code
removed commented lines that consume processing time
* PathSurface: Correct nxt.z point assignment
Corrected error in nxt.z value assignment. Was assigning value to pnt.z instead of nxt.z
* PathSurface: Update 4th axis operation
Provided both parallel and perpendicular to axis scans when performing rotational operation.
* PathSurface: Corrected Y-axis rotation to gcode
Inverted Y-axis scan values in gcode to produce correct result
* PathSurface: Adjust gcode feed rates
Adjust feed rates for axial rotations
* PathSurface: Implement waterline alternative
Used OCL dropcutter scan as data base for python algorithm to extract a waterline. Waterline also incorporates step down feature.
* PathSurface: Update to 3m-Usable
stability improvements
fixed step on multi-pass 4th axis scans
initiate code to accommodate cut modes: zigzag, line
initiate code to accommodate offset cutter on 4th axis scans to simulate a tilted cutter for ball end mills
* PathSurface: Update 3m-Usable_r1
change instantiated static class attributes from value None, to 0.0
* PathSurface: Revert to 3i-Usable_r1
Further testing needed for 3m-Usable release
* PathSurface: Update to Rev. 3s Usable
fixed step over in rotational scans
start/stop indexes
tilt cutter adaptation for ball end mill
cut pattern: zigzag, line partially implemented
ignore waste option initiated for planar scans
cut mode partially implemented: conventional & climb
* PathSurface: Update to Rev. 3t Usable
Corrected rotational errors
corrected cutter tilt rotation
added "ignore waste" feature for planar surface operation
* Implement 4th-axis feature
Implement 4th-axis feature:
add gcode commands for rotation
re-compute operation heights, to consider rotation radii
* Deleted reference to undeclared variable
* Added missing class attributes/variables
* Added missing class variables/attributes
* Relocate class variables to higher class
* Remove references to undeclared variables
relocated class variables here
delete references to undeclared variables
* Correct rotation direction for normal-to-Y faces
* Remove X oriented 180 degree rotation adjustment
Probable error in FreeCAD gcode renderer, producing incorrect B axis rotation
* Update 4th-axis integration
Address FC error with B axis rotation rendering: user input to override error for visual alignment with model.
Correct pocket depths with Final Depth input enforced.
Add Reverse Direction flag input for reversing direction of pocket: necessary in some use cases.
NOTE: 4th-axis throws errors with Extension Corners feature. EC feature needs 4th-axis rotation integration when calculating extensions for a particular part feature/face.
General testing needed.
* PathSurface: Add StepDown support
Add StepDown support for PathSurface operation.
A low-level optimization algorithm is included.
* Update PageOpSurfaceEdit.ui
* PathSurface: Activate CompletionMode input
Update code to use CompletionMode selection from user.
* PathSurfaceGui: Add Completion Mode selection box
Add Completion Mode selection box for user input.
* PathSurface: Use depth_params() for step control
Implemented PathUtils.depth_params() for control of step downs to maintain consistency throughout PathWB.
Suggested by Sliptonic.
* PathSurface: Improve stability - Rev3
Organized code better, improved path optimization algorithm
* PathSurface: Add XY rotational surfacing
Add options to perform 3D surfacing by rotating object around X or Y axis.
* PathSurface: update setup function
Add properties to setup function
* PathSurface: Remove extraneous code
removed commented lines that consume processing time
* PathSurface: Correct nxt.z point assignment
Corrected error in nxt.z value assignment. Was assigning value to pnt.z instead of nxt.z
* PathSurface: Update 4th axis operation
Provided both parallel and perpendicular to axis scans when performing rotational operation.
* PathSurface: Corrected Y-axis rotation to gcode
Inverted Y-axis scan values in gcode to produce correct result
* PathSurface: Adjust gcode feed rates
Adjust feed rates for axial rotations
* PathSurface: Implement waterline alternative
Used OCL dropcutter scan as data base for python algorithm to extract a waterline. Waterline also incorporates step down feature.
* PathSurface: Update to 3m-Usable
stability improvements
fixed step on multi-pass 4th axis scans
initiate code to accommodate cut modes: zigzag, line
initiate code to accommodate offset cutter on 4th axis scans to simulate a tilted cutter for ball end mills
* PathSurface: Update 3m-Usable_r1
change instantiated static class attributes from value None, to 0.0
* PathSurface: Revert to 3i-Usable_r1
Further testing needed for 3m-Usable release
* PathSurface: Update to Rev. 3s Usable
fixed step over in rotational scans
start/stop indexes
tilt cutter adaptation for ball end mill
cut pattern: zigzag, line partially implemented
ignore waste option initiated for planar scans
cut mode partially implemented: conventional & climb
* PathSurface: Update to Rev. 3t Usable
Corrected rotational errors
corrected cutter tilt rotation
added "ignore waste" feature for planar surface operation
* Implement 4th-axis feature
Implement 4th-axis feature:
add gcode commands for rotation
re-compute operation heights, to consider rotation radii
* Deleted reference to undeclared variable
* Added missing class attributes/variables
* Added missing class variables/attributes
* Relocate class variables to higher class
* Remove references to undeclared variables
relocated class variables here
delete references to undeclared variables
* Remove X oriented 180 degree rotation adjustment
Probable error in FreeCAD gcode renderer, producing incorrect B axis rotation
* Correct rotation direction for normal-to-Y faces
* Update 4th-axis integration
Address FC error with B axis rotation rendering: user input to override error for visual alignment with model.
Correct pocket depths with Final Depth input enforced.
Add Reverse Direction flag input for reversing direction of pocket: necessary in some use cases.
NOTE: 4th-axis throws errors with Extension Corners feature. EC feature needs 4th-axis rotation integration when calculating extensions for a particular part feature/face.
General testing needed.
* Apply XYZ Model translations to paths; Add rotation axis selection property
* Spelling correction
ln 110
* Geometry list box: shrink height
560 to 400 height
* Update 4th-axis integration
Clean up code
Add comments for visionary elements
Apply axis selection to opHeights rotational calculations
* Update 4th-axis integration
Prepare sorting of vertical faces per axis_angle grouping, just as horizontal faces are sorted, for analysis as connected shapes
* Reset to FreeCAD master current
* Reset to current FreeCAD master version
* Update PathPocketBase.py
* Reset to current FreeCAD master
* Corrected __created__ date
* Convert all print() to PathLog.debug()
* Convert print() to PathLog.debug(); Clean up code
Use PathLog.debug over print() for troubleshooting
Clean up large commented sections of code.
* Convert print() to PathLog.debug(); combine duplicate methods
* Update last modified stamp
* Update last mofified timestamp
Also, removed commented-out code
* Typo corrected: "selt." to "self."
Discovered in https://api.travis-ci.org/v3/job/526456071/log.txt
on 30 April 2019 while searching for errors related to failure of PR #2114
* Restore initialization of self.depthparams
PR is failing Travis CI build test. Previous deletion of this code appears to be the reason.
See report at: https://api.travis-ci.org/v3/job/526492709/log.txt
* Convert tuple sizes from other PathWB ops
* B-axis rotation: render correction
* Revert "rebase to FC master 2019-05-02"
* Correct depthparams opOnDocumentRestored() issue
* Relocate "UseRotation" property from PathAreaOp.py
* Improve meshFromShape() calculation per @sliptonic
faster mesh creation
helps smooth jagged lines in path results
* Part: Make 3rd party libraries into PCH
* PartDesign: 3rdParty to PCH
* Sketcher: PCH
* PartDesign: PCH GUI
* Sketcher: GUI PCH
* Travis windows build (#2110)
Travis windows build
* Travis: enable clcache debug
* disable travis clcache debug
* respect user settings for dialog used in merge-document command
* msbuild verbose and logo
* Travis force wait 60 minutes
* Travis: Use & between vars sourcing and msbuild
* Travis: Move building to external batch script (#2131)
* Travis: Move building to external batch script
* Travis: double quotes to escape route
* Travis: use cmd.exe to call batch file
* Crowdin: fix grammatical error + whitespace
https://crowdin.com/translate/freecad/569/en-fi#6498705
* Crowdin: experiment to fix crowdin 'ghost' strings
The following translation strings still perpetuate after updating crowdin translations. This commit experiments with removing their source counterparts in the FC .ts files. I'm not sure why they are not rendered obsolete by the normal operations.
* https://crowdin.com/translate/freecad/6766/en-en#6499472
* https://crowdin.com/translate/freecad/6766/en-en#6573450
* fix for edit tracker draw styles
* deleted commented code
* Travis: filter out
* AddonManager: allow to add custom repositories
* Revert "rebase to FC master 2019-05-02"
* Draft: Fixed Draft text justification
* Arch: Fixed bug in arch windows creation
* Arch: Fixed export of windows colors to IFC
* Draft: Fixed 0.18.1 bug in DXF importer
* Arch: Fixed wrong exported objects in IFC export
* Arch: Fixed export of sites to IFC
* Start: Fixed bad default icon in start page
* Correct depthparams opOnDocumentRestored() issue
* Relocate "UseRotation" property from PathAreaOp.py
* Improve meshFromShape() calculation per @sliptonic
faster mesh creation
helps smooth jagged lines in path results
* Relocate "UseRotation" property in PathAreaOp.py
* Syntax correction
Travis CI python 3.7 build test fails regularly due to syntax error at this point
* Correct rebase issue: PR #2114
* Correct rebase issue: PR #2114
* Correct rebase issue: PR #2114
* Correct rebase issue: PR #2114
* Correct rebase issue: PR #2114
* Correct rebase issue: PR #2114
* path pep8 cleanup
* Multi-face geometry selection repaired
Previous version broke ability to select process multiple faces selected by user in geometry tab in operation task window.
Also performed some syntax cleaning per PEP8 linter
* Update script version info