Commit Graph

347 Commits

Author SHA1 Message Date
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
Abdullah Tahiri
36f512abce PCH: Path GUI 2019-05-03 23:15:09 +02:00
luz.paz
b7b433e461 Misc. typo and whitespace fixes
Found via `codespell`
2019-04-30 10:15:59 -03:00
Markus Lampert
84b61d8a6c Adding tool tips to pocket extension dialog 2019-04-07 12:20:45 +02:00
Markus Lampert
53995670f4 Fixed colour for visibility and changed selection model to extended. 2019-04-07 12:20:45 +02:00
Markus Lampert
f812d31b5d Added Show All pocket extension checkbox for better UX. 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
0581e71b6d Using offset2D for properly creating the extension 2019-04-07 12:20:42 +02:00
markus
ff65795c24 Basic UI to add extension features. 2019-04-07 12:20:41 +02:00
markus
c4e3209e44 Basic UI for editing pocket shape extensions. 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
sliptonic
27d4863833 tool tips, Gui cleanup 2019-04-05 15:04:02 +02:00
sliptonic
2af9096a0b icon for inactive 2019-04-05 15:04:02 +02:00
sliptonic
6a26e3e484 Path: GUI for fixture support working 2019-04-05 15:04:01 +02:00
sliptonic
18fd78f9f6 Path: ordering works reasonably well
Splitting works reasonably well
2019-04-05 15:04:01 +02:00
sliptonic
bdc869179e Path: UI changes to job edit
.gitignore

More UI work

checkpoint
2019-04-05 15:04:01 +02:00
Markus Lampert
0bc3aee2f5 Enable multiple copies of a model as base object for a job 2019-04-03 15:23:21 +02:00
Yorik van Havre
a3607ce029 Updated translations 2019-03-06 21:50:08 -03:00
Yorik van Havre
512af24397 Revert "Merged crowdin translations" for investigation due to some problems found in the translation files...
This reverts commit cd433358b09117f234dd0a51dc2a6bfa05428867.
2019-03-02 19:17:44 -03:00
Yorik van Havre
bd93bd2494 Merged crowdin translations 2019-02-28 21:53:37 -03:00
wmayer
e23db2e313 PVS: V773 A memory leak is possible 2019-02-17 18:40:06 +01:00
Yorik van Havre
3cc1a327ce Updated master translation files 2019-02-08 19:16:21 -02:00
Yorik van Havre
95dda429eb Updated translations 2019-02-01 13:54:10 -02:00
luz.paz
da6282f57f Crowdin: Experiment to remove obsolete translations from .ts file
Crowdin currently has an issue where typo strings that have been fixed in the FC source haven't been permeating in to the Crowdin UI. This maybe do to discrepency between lupdate and crowdin.  This PR experiments with removing a few lingering obsolete translations in the main .ts file of the Arch and Path WBs. If this works then a follow-up PR will be made to remove all the rest of the obsolete strings.
2019-01-14 19:39:58 +01:00
Markus Lampert
a86f53271c Using fixed size images for qt5/4 compatibility 2019-01-05 12:30:41 +01:00
Markus Lampert
729b5a2221 Setting fixed size for tool images 2019-01-05 12:30:41 +01:00
Yorik van Havre
39d446f60f Updated translations from crowdin 2018-12-23 13:54:30 -02:00
pekkaroi
cf578c8899 Path: PathSurface task panel update 2018-11-04 14:49:21 -03:00
Markus Lampert
e3952867a9 Renamed Path Chamfer op to Deburr. 2018-09-17 10:27:49 +02:00
Markus Lampert
99e844863f Added option to rotate multiple base objects as a compound or individually. 2018-09-17 10:23:41 +02:00
kreso-t
3bde81ec85 Path adaptive operation added 2018-09-11 11:02:33 +02:00
Markus Lampert
18bf6b6cb8 Fixed merge issues 2018-09-11 07:24:37 +02:00
Markus Lampert
4983a69210 Changed base model tab view to a tree view 2018-09-11 07:24:36 +02:00
Markus Lampert
6a7ba537df Added jobs as a selection for the base models. 2018-09-11 07:24:32 +02:00
Markus Lampert
a428183cb1 Added more placement tools for base models. 2018-09-11 07:24:31 +02:00
Markus Lampert
3559414503 Refactored job creation dialog to be re-used for model selection dialog. 2018-09-11 07:24:30 +02:00
Markus Lampert
bb045307e4 Basic job creation dialog with multiple base models. 2018-09-11 07:24:30 +02:00
Markus Lampert
2f2dc9e310 Fixed merge issues 2018-09-02 00:32:22 -07:00
markus
aefa922c2b Added job export dialog to Job Editor. 2018-09-02 00:32:22 -07:00
markus
ca06567043 Redesigned ops defaults to use combo box for op selection and only have one editor visibile at the time. 2018-09-02 00:32:22 -07:00
markus
c70f8923fa PathEdit integration of the setup-sheet editor. 2018-09-02 00:32:22 -07:00
Markus Lampert
3962519087 Added support for property types required for PocketShape settings. 2018-09-02 00:32:22 -07:00
Markus Lampert
8000455ec0 Template export/import of operation settings. 2018-09-02 00:32:22 -07:00
Markus Lampert
5511d2917c Basic property editor framework 2018-09-02 00:32:22 -07:00
Markus Lampert
ed482d7272 UI for operation's setup sheet. 2018-09-02 00:32:22 -07:00
Markus Lampert
6a48072357 Basic UI/editor for the SetupSheet. 2018-09-02 00:32:22 -07:00
markus
9dc6752415 Added button to stock dialog to recreate the stock object. 2018-09-01 21:01:03 +02:00
wmayer
527ce5a0ff CMP0050: make Path module aware of cmake policy 2018-08-20 19:33:12 +02: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