Commit Graph

77 Commits

Author SHA1 Message Date
Eric Trombly
f210d71f18 remove sleep calls, change some for loops to list comp, move isPointOnLine to base vector 2020-04-06 06:34:53 -05:00
luz.paz
1663fbb1cd [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
75d4a66ca1 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
e7b328c6cf Path: Fix bug that fails Multi-pass usage 2020-03-30 22:34:57 -05:00
Russell Johnson
458a6a2244 Path: Four bug fixes per forum discussion
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
2020-03-30 22:34:57 -05:00
Russell Johnson
186a98a8e2 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
luz.paz
65f6347953 [skip ci] Fix typos
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-03-24 11:14:24 +01:00
Russell Johnson
a95a53f6eb Fix application of DepthOffset property 2020-03-18 12:32:45 -05:00
Russell Johnson
71de5955a9 Expose linear and angular deflection for mesh conversion 2020-03-18 12:21:37 -05:00
Russell Johnson
2b094f0160 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.

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.
2020-03-18 12:21:37 -05:00
Markus Lampert
81bbb0066d Removed dead code for debugging shortcut warnings. 2020-01-03 23:13:55 -08:00
mlampert
4b9e145fc0 Merge branch 'master' into feature/tool-bit-poc 2019-12-03 18:56:16 -08:00
luz.paz
ea0868a433 Fix typos and some trailing whitespace
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,currenty,dof,doubleclick,dum,eiter,elemente,feld,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
```
2019-12-03 12:22:59 +01:00
Markus Lampert
1dc9a9afc4 Added Ballend and Bullnose shapes and consolidated shape names. 2019-11-28 17:31:37 -08:00
Markus Lampert
a5d1203980 Added ToolController creation 2019-11-28 17:31:35 -08:00
Gabriel Wicke
d851fd58d5 [path] Fix ignoreWasteFlag option
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.
2019-11-01 17:12:42 -03:00
Daniel Wood
55ba721155 Add coolant feature to Ops 2019-08-28 19:40:08 +01:00
sliptonic
617c619d2f remove unnecessary imports. normalize debug log levels 2019-06-21 13:01:01 -05:00
sliptonic
c8e945a3ab Path: normalize proxy stratements
remove bare exceptions
2019-06-21 13:01:01 -05:00
brad
8e372108b5 Path: lgtm Cleanup 2019-06-10 10:50:06 -05:00
luz.paz
ec12ffae0c Path: source comment typo fixes
Found via `codespell`
2019-05-30 19:57:25 +02:00
luz.paz
659d17129a FIx some user and non-user facing typos
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
2019-05-12 16:59:26 +02:00
Russell Johnson
5b9dccc690 Enable cutter and FC to OCL cutter translation
Enable self.cutter attribute
Without, 3D Surface op is non-functional
2019-05-10 22:40:32 -05: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
cclauss
a8a02e881d Drop depencence on six module 2019-01-07 15:51:34 +01:00
cclauss
00d8f39840 Fix file, long, raw_input, and xrange for Python 3 2019-01-07 15:42:37 +01:00
luz.paz
cfbfa9dc6b Misc. typo, grammar, and whitespace fixes
[skip ci]
2018-11-27 15:02:58 -03:00
pekkaroi
cf578c8899 Path: PathSurface task panel update 2018-11-04 14:49:21 -03:00
pekkaroi
f25db4278d generalized optimization algorithm 2018-11-04 14:49:21 -03:00
pekkaroi
14df76cbc2 Path: Optimize output of OCL dropcutter algo. 2018-11-04 14:49:21 -03:00
luz.paz
360e581672 Misc. typo and whitespace fixes
ref: https://forum.freecadweb.org/viewtopic.php?f=3&t=30988#p256964
along with other misc. fixes
2018-09-19 17:26:03 +02:00
Markus Lampert
1d49765dc5 Added support for multi base model to Surface op. 2018-09-11 07:24:36 +02:00
Markus Lampert
6328e4790d Fixed surface settings. 2018-09-02 00:32:22 -07:00
Markus Lampert
c5defd4941 Partial operation settings support for Surface op. 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
9cd8ac46f7 Add job as parameter to opSetDefaultValues 2018-09-02 00:32:22 -07:00
markus
828f6756c4 Hiding all/most properties that are supposed to be hidden on document restore again. 2018-09-01 21:01:04 +02:00
sliptonic
ca2a38f02a Using PropertyVectorDistance
per yorik: https://forum.freecadweb.org/viewtopic.php?f=3&t=29787#p244785
2018-07-19 12:06:09 -03:00
sliptonic
59a3650fb5 Fix for coverity CID 168953
Make test for ocl not conditional.
2018-07-15 16:28:16 -03:00
pekkaroi
1e981e53cc Change StepOver to PropertyPercent 2018-07-07 14:11:08 -03:00
pekkaroi
cb47eb8712 Path: Surface op improvements for drop cutter algo 2018-07-07 14:11:08 -03:00
Markus Lampert
0d28d59fd1 Removed PathPreferences class and moved functionality into the module interface. 2018-06-19 21:53:41 -07:00
luz.paz
0720c5e233 Crowdin: Path string fixes 2018-04-25 11:03:10 +02: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
sliptonic
a13b75cf5a Path: refactor Surface 2017-09-19 11:12:31 +02:00
Markus Lampert
dd23476a49 Restored icons for profile ops; cleaned up accel keys. 2017-08-22 10:16:58 -03:00
sliptonic
5f77eea2aa Path: Adding Apply buttons
Give user more control of when long
running updates are executed in task
panels
2017-06-28 21:46:44 +02:00
sliptonic
7532011104 Path: remove obsolete code from cmake
also refactored depthparams and fixes to depths
on various operations
2017-06-28 21:46:44 +02:00
sliptonic
b34815746e Path: adding cancel buttons to operations 2017-06-28 21:46:44 +02:00
Markus Lampert
af699ab7e2 Replaced default context argument with explicit call for pylupdate to pick up the strings and contexts. 2017-06-03 15:37:41 -07:00