Commit Graph

60 Commits

Author SHA1 Message Date
Patrick Felixberger
fa58336c7c Clean up 2020-03-11 22:49:28 +01:00
Patrick Felixberger
c094889aac Fixed broken final depth calculation for rotational axis in pocket, profile and drill; Added EnableRotation to GUI; Fix some weird gcode generation 2020-03-11 21:16:21 +01:00
Russell Johnson
6af211fbd5 Restore manual override of FinalDepth values
Manual entries of FinalDepth values are now respected, even if below the calculated bottom of selected geometry.
Affected modules include PathPocketShape, PathPocket, PathCircularHoleBase, and PathAreaOp-based operations.

Fix format syntax issues
2020-02-14 19:38:35 -06:00
Markus Lampert
a33af45aa2 Fixed extension generation for arcs if the length is larger than the arc radius and the direction is an inset. 2020-01-03 19:00:15 -08:00
Markus Lampert
4d88018edf Sorting edges before making a wire is required for all edges to be included, issue #4219 2020-01-03 19:00:15 -08:00
Russell Johnson
2836cb22a7 Fix PocketShape pop-up issue
Commented out calls to guiMessage() defined in PathAreaOp.py.
Changed PathLog() levels for same messages.
Removed unnecessary comments.
2019-09-07 18:10:57 -05:00
Markus Lampert
fe9e341835 Fixing additional warnings after merge 2019-07-01 15:49:31 -07:00
Markus Lampert
f34ac89266 switched to pylint3 and fixed additional warnings 2019-07-01 15:32:54 -07:00
Markus Lampert
7abb496144 addressed pylint warnings for PathPocket family 2019-07-01 15:32:54 -07:00
Russell Johnson
1ac8f4cfe9 4th-axis update (#2311)
Improve property creation
Improve property setup
Implement PathLog.debug() for troubleshooting.
Improve default property values.
Remove unused and incomplete method
Remove unnecessary comments; fix final depth issue
4th-axis improvements
rotation method improvements
remove extra comment blocks
fix incorrect variable references
fix -0.0 re-introduction after initial filter
negative zero re-introduced causes problems with naming method for temp clones
Update faceRotationAnalaysis() method
update opFeatures()
Commented out call to PathOp.FeatureRotation
This feature not yet implemented.
delete call to removed method - self.reportThis()
Remove unnecessary comments
2019-07-01 09:30:58 -05:00
Markus Lampert
aa15a6cf4a Cover entire hole if pockeet extension is bigger than hole. 2019-06-29 18:16:56 -07:00
Markus Lampert
4fb0b04a39 Fixed extensions for round holes. 2019-06-29 18:16:56 -07:00
Markus Lampert
70d8be5b3c Fixed document restoration logic. 2019-06-29 18:16:56 -07:00
luz.paz
e0377f8e4f Misc. typo and whitespace fixes
Found via `codespell`
2019-06-28 11:39:36 -03:00
sliptonic
b55c210f39 remove unnecessary imports. normalize debug log levels 2019-06-21 13:01:01 -05:00
sliptonic
fbb138653a Path: fix proxy error 2019-06-19 10:21:17 -05:00
sliptonic
d4a311de19 Path: PEP8 and Proxy changes. 2019-06-17 09:17:38 -05:00
Russell Johnson
c1970aa5e3 Remove unnecessary comment 2019-06-13 12:34:33 -05:00
Russell Johnson
4df89e0e3d Misc. fixes
Clean up code, improve comments, improve user feedback.
Improve temp clone management.
Correct depth issue with self.finDep
Add comment descriptions for new methods
Clean up comments and contribution information
Initiate recognition of type()==SurfaceOfExtrusion
Adopt standard PathGeom.isRoughly() and .Tolerance rather than idependent precision settings
2019-06-13 10:55:32 -05:00
Russell Johnson
a160aab486 Fixes for depths and AttemptInverseAngle
Depth correction to obj.FinalDepth.Value in single feature operations
Fix AttemptInverseAngle to be uni-directional
Clean up debug and other user provided feedback
2019-06-13 10:55:31 -05:00
Russell Johnson
4c69b48dc6 Improve code structure; correct 4th-axis depth issues 2019-06-13 10:55:30 -05:00
Russell Johnson
4ec63d537d Fix for 'reposition of job model' error
Re-structured 4th-axis implementation, completely; new structure will be easier to implement in other PathWB tools.
Changed basis for rotational pockets from job model to temporary per-rotation clones.
2019-06-13 10:55:28 -05:00
luz.paz
aedb888ae3 Path: source comment typo fixes
Found via `codespell`
2019-05-30 19:57:25 +02:00
Russell Johnson
aaae829704 Path: Integrate 4th-axis feature to PathPocketShape and 3D Surface ops (#2114)
* 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
2019-05-06 21:29:08 -05:00
Markus Lampert
902298711c Fixed ExtensionCorners initial value and added it to setup parameters. 2019-04-07 12:20:45 +02:00
Markus Lampert
ae7ffd2be3 Persiste ExtensionCorners state for consistent UI 2019-04-07 12:20:45 +02:00
Markus Lampert
d38a4087de Use expression for pocket extension default length 2019-04-07 12:20:44 +02:00
Markus Lampert
0367c28fbc Added support for global extend corners 2019-04-07 12:20:44 +02:00
Markus Lampert
b01d10055b Switched extension UI to tree view dependent on the base objects. 2019-04-07 12:20:43 +02:00
Markus Lampert
9002cd1356 Use start point proximity to determine which wire to select for the extension. 2019-04-07 12:20:42 +02:00
markus
10428fd3cb Using offset2D for properly creating the extension 2019-04-07 12:20:42 +02:00
markus
fbdc3dad54 Fixed UI to update dirty state correctly 2019-04-07 12:20:42 +02:00
markus
cfe27f7d39 Add extension faces to removal shape generation. 2019-04-07 12:20:42 +02:00
markus
1c74eee9df Simple visualisation of removal shape extensions. 2019-04-07 12:20:42 +02:00
markus
c8dc0e344d Added extracting the wire of an extension 2019-04-07 12:20:41 +02:00
markus
159f5ae931 Basic UI to add extension features. 2019-04-07 12:20:41 +02:00
markus
79def8b235 Added UI page pocket extension; changed selection agent. 2019-04-07 12:20:41 +02:00
Markus Lampert
3969dd52aa Use removeSplitter to get a single face for the removal shape construction. 2018-12-23 11:07:31 -02:00
Markus Lampert
e098c7f1f7 Fixed merge issues 2018-09-11 07:24:35 +02:00
Markus Lampert
7d8ed6fd70 Operation setting support for all pocket ops. 2018-09-02 00:32:22 -07:00
Markus Lampert
ebe76319b8 Added name parameter to operation proxy constructor. 2018-09-02 00:32:22 -07:00
Markus Lampert
ee49b9874d Prototype objects for operations and the ability to create them through the regular proxy instantiation. 2018-09-02 00:32:22 -07:00
Markus Lampert
070d17e4e4 Add job as parameter to opSetDefaultValues 2018-09-02 00:32:22 -07:00
Markus Lampert
04807fddd7 Add UseOutline property to PocketShape in order to mill full pockets and not have to add all sub-shapes. 2018-08-18 21:55:26 +02:00
Markus Lampert
1160e04afe Revert "Get the outline of the syntesized shape for PocketShape before extruding."
This reverts commit 135ede46fe.
2018-08-09 17:24:37 -03:00
Markus Lampert
135ede46fe Get the outline of the syntesized shape for PocketShape before extruding.
This greatly improves the robustness of the algorithm and gives PathArea less chances to mess it up.
2018-07-06 22:08:46 -07:00
Markus Lampert
b24e95b7c1 Removed PathGeom class and moved functionality into module interface. 2018-06-19 21:38:20 -07:00
Markus Lampert
eaa7b6f591 Fixed all ops to use Op...Depth in order to not mess with the expressions. 2017-10-22 11:24:58 -07:00
Markus Lampert
86d9191023 Setting obj.removalshape to the first one if there are any for convenience. 2017-10-02 01:21:13 +02:00
Markus Lampert
af892cc44a Added more cleanup to the pocket shape face before extrusion - greatly improves stability. 2017-10-02 01:21:13 +02:00