Commit Graph

46 Commits

Author SHA1 Message Date
sliptonic
617c619d2f remove unnecessary imports. normalize debug log levels 2019-06-21 13:01:01 -05:00
sliptonic
2f456424cd Path: fix proxy error 2019-06-19 10:21:17 -05:00
sliptonic
082c1e71f1 Path: PEP8 and Proxy changes. 2019-06-17 09:17:38 -05:00
Russell Johnson
c79beacfc0 Remove unnecessary comment 2019-06-13 12:34:33 -05:00
Russell Johnson
183228cc25 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
73e00617d1 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
a7202f151f Improve code structure; correct 4th-axis depth issues 2019-06-13 10:55:30 -05:00
Russell Johnson
5bbb59501a 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
ec12ffae0c Path: source comment typo fixes
Found via `codespell`
2019-05-30 19:57:25 +02:00
Russell Johnson
3d2a8504c8 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
82d213dfe0 Fixed ExtensionCorners initial value and added it to setup parameters. 2019-04-07 12:20:45 +02:00
Markus Lampert
737fc7a4ec Persiste ExtensionCorners state for consistent UI 2019-04-07 12:20:45 +02:00
Markus Lampert
7d850af8f6 Use expression for pocket extension default length 2019-04-07 12:20:44 +02:00
Markus Lampert
dfff9a6c33 Added support for global extend corners 2019-04-07 12:20:44 +02:00
Markus Lampert
6dfe0b2d2c Switched extension UI to tree view dependent on the base objects. 2019-04-07 12:20:43 +02:00
Markus Lampert
5fb5596a31 Use start point proximity to determine which wire to select for the extension. 2019-04-07 12:20:42 +02:00
markus
0581e71b6d Using offset2D for properly creating the extension 2019-04-07 12:20:42 +02:00
markus
700c9ab2e7 Fixed UI to update dirty state correctly 2019-04-07 12:20:42 +02:00
markus
1e34da7ba3 Add extension faces to removal shape generation. 2019-04-07 12:20:42 +02:00
markus
61392a54dc Simple visualisation of removal shape extensions. 2019-04-07 12:20:42 +02:00
markus
b44e7572be Added extracting the wire of an extension 2019-04-07 12:20:41 +02:00
markus
ff65795c24 Basic UI to add extension features. 2019-04-07 12:20:41 +02:00
markus
756f316831 Added UI page pocket extension; changed selection agent. 2019-04-07 12:20:41 +02:00
Markus Lampert
a907a103cd Use removeSplitter to get a single face for the removal shape construction. 2018-12-23 11:07:31 -02:00
Markus Lampert
0b1ae8c5e5 Fixed merge issues 2018-09-11 07:24:35 +02:00
Markus Lampert
0603448a92 Operation setting support for all pocket ops. 2018-09-02 00:32:22 -07:00
Markus Lampert
353ec4a646 Added name parameter to operation proxy constructor. 2018-09-02 00:32:22 -07:00
Markus Lampert
1beaceb289 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
9cd8ac46f7 Add job as parameter to opSetDefaultValues 2018-09-02 00:32:22 -07:00
Markus Lampert
e0cae49c49 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
ecc9725a56 Revert "Get the outline of the syntesized shape for PocketShape before extruding."
This reverts commit 7f87e71896e340e184265cb8972fc4392b33ace8.
2018-08-09 17:24:37 -03:00
Markus Lampert
f492909234 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
bf46c47616 Removed PathGeom class and moved functionality into module interface. 2018-06-19 21:38:20 -07:00
Markus Lampert
97799f0e9e 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
8193455890 Setting obj.removalshape to the first one if there are any for convenience. 2017-10-02 01:21:13 +02:00
Markus Lampert
c33b6610ce Added more cleanup to the pocket shape face before extrusion - greatly improves stability. 2017-10-02 01:21:13 +02:00
Markus Lampert
b86878d2c9 Fixed face combining and moved to PathGeom. 2017-10-02 01:21:13 +02:00
Markus Lampert
7e16f7fa4a Added automatic depth calculation into PathOp.execute. 2017-09-28 11:27:47 -07:00
Markus Lampert
0c1f3c1e46 Fixed pocket depth calculation in case no base object is specified. 2017-09-28 11:27:46 -07:00
Markus Lampert
01b0225c4e Added loop detection for vertical faces and enhanced usability of loop select command accordingly. 2017-09-28 11:27:46 -07:00
Markus Lampert
6b0f36f189 Extended edge-loop-selection command become active if there is a single edge selected and that edge is only part of one wire in the horizontal plane. 2017-09-28 11:27:46 -07:00
Markus Lampert
931662b3db Basic support for loop of vertical faces for PathPocketShape. 2017-09-28 11:27:46 -07:00
Markus Lampert
d8ef665eb1 Added support for selecting the wall of a cylinder for pockets. 2017-09-28 11:27:46 -07:00
Markus Lampert
b222c99372 Combine all touching/overlapping faces of a pocket into a single face for machining. 2017-09-28 11:27:46 -07:00
Markus Lampert
969de51e51 Basic pocket generation from horizontal faces. 2017-09-28 11:27:46 -07:00
Markus Lampert
b8030be95f Added copy of pocket op back into the UI. 2017-09-28 11:27:46 -07:00