Commit Graph

89 Commits

Author SHA1 Message Date
sliptonic
d4623baf0a Expose PocketLastStepOver property
Property can be useful to fine tune the last stepover for some shapes
2022-03-23 15:10:34 -05:00
Markus Lampert
934b0aaa07 Consistent black formatting of all Path python files 2022-02-28 21:06:16 -08:00
Markus Lampert
8583894284 Remove pylint annotations and script 2022-02-28 21:02:45 -08:00
Russell Johnson
9227b4ab24 Path: Fix open edge zero value start point
forum mention at https://forum.freecadweb.org/viewtopic.php?f=15&t=64882
This fix applies a small value to start points for open edges when either the x or y start point value is roughly zero.
2022-02-12 11:21:30 -06:00
sliptonic
889ad4f634 AreaOp translation cleanup 2022-01-26 18:36:06 -06:00
sliptonic
9c5e4e2340 Black
Black (surface)

waterline black

propertybag black
2022-01-26 18:36:06 -06:00
sliptonic
d5f17a7106 Add property to split arcs into G1/G0 segements 2022-01-19 14:00:55 -06:00
sliptonic
4d91ea271d rename function.
'job' has a meaning in Path.  sort_jobs doesn't sort jobs, it sorts hole locations.
2022-01-16 12:57:49 -06:00
Russell Johnson
16015f66e3 Path: Remove first-draft rotational code Path
Remove all first-draft rotational-related code from Path workbench to make way for more stable, long-term integration of a rotational indexing capability.
2021-05-27 10:04:31 -05:00
Russell Johnson
df7638435f Path: Remove Expand Profile feature from Profile op 2021-01-29 19:36:14 -06:00
Russell Johnson
d3c3a11d90 Path: Delete irrelevant code 2020-11-13 16:34:59 -06:00
Russell Johnson
a273bef210 Path: Fix div by zero error
Fix MillFace div by zero error reported in forum at https://forum.freecadweb.org/viewtopic.php?f=15&t=51415.
Rotational-related variables were exposed to non-rotational code block.  They have been moved into correct rotational code block.
2020-11-13 16:34:59 -06:00
Russell Johnson
9f13c8c23b Path: LGTM cleanup 2020-11-13 16:34:59 -06:00
Russell Johnson
7fb8f1149a Path: Improve accuracy of isFaceUp() method
This method is used in rotational operations and some standard operations to identify if a face's normal-direction Z value is +1.0
2020-11-13 16:07:18 -06:00
luz paz
b75cd3dd52 Path: Fix header uniformity and remove trailing whitespace
This PR fixes header uniformity across all Path files. It also removes all trailing whitespace.
2020-11-05 19:57:21 +01:00
sliptonic
e813c5adfd Merge pull request #3763 from Russ4262/PocketShape_fix_t4411
Path: PocketShape - Fixes ticket #4411
2020-08-04 10:40:53 -05:00
Russell Johnson
c7d34929ad Path: Fix reference to undefined ns, and adjust comments
This `ns` fix might need further attention after testing.  The section to which it pertains deals with optimizing rotations between ops with similar rotational axes.
2020-08-02 13:27:32 -05:00
Russell Johnson
986775ec1a Path: Fix InverseAngle feature
The `ReverseDirection` property is now hidden by default.  It should not be necessary due to recent implementation of `isFaceUp()` method.
2020-08-02 13:27:32 -05:00
Russell Johnson
0697686695 Path: PocketShape - Fixes ticket #4411
Existing code to determine if shape volume indeed existed, failed.
Added additional pre-check for existing edges in shape to determine if shape geometry indeed exists.
In forum:
[Ticket #4411 - Can only generate pocket once for this shape, then it fails.](https://forum.freecadweb.org/viewtopic.php?style=3&f=15&t=49035).
2020-08-02 13:27:32 -05:00
Eric Trombly
465de60007 don't generate gcode if op isn't valid. Don't plunge to start height if safe and clearance height are the same. 2020-07-15 19:35:18 -05:00
Russell Johnson
939ac2e115 Path: Add ExpandProfile feature
Two new properties, `ExpandProfile` (length) and `ExpandProfileStepOver` (percent) added for new feature.
New feature converts the normal single offset profile into a compound profile containing multiple increasing/decreasing offsets.
The new feature clears a each layer completely before stepping down to the next layer.
Adjust sorting procedure in PathAreaOp due to `ExpandProfile` modifications to open edges code.
2020-06-18 01:39:26 -05:00
Gabriel Wicke
cc84287515 Path: Opt into automatic git newline normalization
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.
2020-05-31 08:33:29 -07:00
Russell Johnson
39636cac21 Path: Initiate unification of ProfileFaces and ProfileEdges operations
ProfileFaces now accepts and processes faces and edges.
Full functionality is maintained (so far as tested) with respect to original operations.
2020-05-10 18:19:42 -05:00
Eric Trombly
396f03ea9b pass endVectorin PathAreaOp and clean up gcode generation 2020-04-24 20:05:39 -05:00
Eric Trombly
7fe094ac02 add lazyloader support
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
2020-04-13 21:14:34 -05:00
luz.paz
cafed2a137 [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
9239c67ec7 Path: Remove unnecessary comments
PathAreaOp
PathProfileFaces
2020-03-26 10:43:32 -05:00
Russell Johnson
7cbd3bf793 Path: Improve rotational transitions between operations
Check previous and next operations for rotation, and eliminate rotational reset if can be done.
2020-03-26 10:43:32 -05:00
Russell Johnson
9bdbfc2a69 Fix failed Job creation due EnableRotation property error
PathAreaOp:   Add SetupProperties() function
PathPocketBase:   Modify SetupProperties() function to include return from same in PathAreaOp.
PathPocketShape:  remove blank indents
PathProfileBase:  Modify SetupProperties() function to include return from same in PathAreaOp.
PathProfileFaces:  fix `EnableRotation` issue
2020-03-21 11:05:46 -05:00
Patrick Felixberger
3d1bd5f095 Code clean up 2020-03-16 18:30:30 +01:00
Russell Johnson
022c14d75b 4th-axis fixes and improvements
Fix rotational orientation of pockets.  Need to apply same fix to ProfileFaces.
Fix final depth issue based upon error in rotational orientation fixed here.
Add property, `LimitDepthToFace` to facilitate easier pockets and face profiling on rotational-enabled operations.
Hide rotational support properties when operations do not use rotation.
Remove unnecessary property, `B_AxisErrorOverride`, and delete dead code that used it.
2020-03-14 11:36:21 -05: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
e82b24550b ProfileEdges: New feature - profile open edges
Open edges, exterior or interior, can now be used to generate paths.

The new feature behaves as though the parent face is vertically oriented (standing).  It is preferred that the user select upper (top) edges.  Selecting bottom edges in some cases may not produce a path.

Path ends calculations might need slight adjustment in the code.  Path ends are *near* perpendicular to ends of edge.

Cut direction seems sporadic, but the `Direction` property will switch the direction of cut.  The `CW` and `CCW` direction labels might not align with the actual direction.  Additional algorithm modification is necessary to enforce fidelity to the labels.

Existing properties, `UseComp` and `OffsetExtra` are observed with open faces.  Negative values for `OffsetExtra` have not been tested - only zero and positive.
2020-02-25 19:13:07 -06: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
Daniel Wood
bdcccc08b1 Add coolant feature to Ops 2019-08-28 19:40:08 +01:00
Russell Johnson
082c44464b 3D Pocket: upgrade to adaptive start and finish
apply algorithms to some pockets to eliminate air milling and adapt start and finish heights and paths to top and bottom of certain pockets.
Depth correction & flake8 formatting
use list to track successive cuts so variations of settings are tracked and applied correctly
Apply faceType specific depth calculations
Planar face requires one depth source, non-planar requires a different source.
2019-07-21 21:21:24 -05:00
Russell Johnson
4e7e9a55e7 4th-axis rotation analysis Z-orientation fix
orientation == 'Z' was failing in some cases due to undefined "axis" variable. "axis" declaration was commented out in an earlier commit. Declaration now restored for all orientations.
2019-07-12 01:17:26 -05:00
luz.paz
752e74c396 Misc. typo fixes
Found via `codespell -q 2`
2019-07-11 19:17:07 +02:00
sliptonic
0a1067801e Merge pull request #2313 from sliptonic/lgtm3
Additional LGTM cleanup of post processors and unneeded imports
2019-07-02 09:17:27 -05:00
Markus Lampert
ed8911c9b7 Addressed pylint warnings for PathAreaOp 2019-07-01 15:49:38 -07:00
sliptonic
02b68f36fb Path: lgtm cleanup PathAreaOp 2019-07-01 17:18:15 -05: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
05249b2123 Removed redundant log message 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
d4a311de19 Path: PEP8 and Proxy changes. 2019-06-17 09:17:38 -05:00
Russell Johnson
77d1f8968d Delete disabled code blocks
within guiMessage() method
2019-06-15 12:19:17 -05:00
Russell Johnson
4cff627468 added missing self.stockBB instantiation
job boundbox object was missing in opSetDefaultValues()
2019-06-15 12:05:58 -05:00
Russell Johnson
236e1daeb5 Isolate FreeCADGui dependency
Thanks @mlampert and @sliptonic for assisting in tracking down the error via unit test analysis.
FreeCADGui usage has to be behind an 'if FreeCAD.GuiUp:` test
2019-06-13 15:42:56 -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