Commit Graph

21502 Commits

Author SHA1 Message Date
Gabriel Wicke
84113fbd17 Path: More ambitious step-over and break optimizations
Extend the work from #3496 to allow the safe optimization of more
complex step transitions.

- Use the actual safePDC path for short step transitions and breaks,
  currently up to 2 cutter diameters. This value is chosen to cover
  basically all typical end step-overs, including those with heavy skew.
  Extending this much further (up to the break even point for a retract &
  rapid) will need some careful thinking for multi pass paths.
- Coordinate offset tolerances with per-operation tessellation
  tolerances, to avoid tessellation artifacts messing up paths by
  causing false retracts.  Such retracts can cause entire steps near
  vertical areas to be falsely skipped, which would cause a major
  deviation from the target model.  By considering per-job tolerances, we
  allow users to safely save computational resources by computing roughing
  operations with lower precision, or selectively increase precision for
  finish passes.
- Refine the default tessellation tolerance to GeometryTolerance / 4.
  This makes sure that the job GeometryTolerance is respected by
  operation defaults.
2020-06-05 18:21:24 -07:00
wmayer
457dba4fee App: [skip ci] avoid that Origin makes persistent any properties of its extension 2020-06-05 18:27:56 +02:00
wmayer
1521b256bc App: [skip ci] implement the private class OriginExtension to simulate a geometric group behaviour 2020-06-05 18:24:17 +02:00
wmayer
229e8dd375 App: implement the private class OriginExtension to simulate a geometric group behaviour 2020-06-05 18:17:40 +02:00
sliptonic
db74aa8cef Merge pull request #3561 from Russ4262/Profile_fixes
[Path] Profile: Fix `_makeIntersectionTags()` for very short edges
2020-06-05 09:09:48 -05:00
sliptonic
63c224a3c4 Merge pull request #3565 from Russ4262/3D_Surface_vertical_face_fix
[Path] 3D Surface: various fixes
2020-06-05 09:08:37 -05:00
Yorik van Havre
1aa5b755a9 Arch: Fixed non-GUI mode of exporters 2020-06-05 14:58:20 +02:00
vocx-fc
c700dc5d05 Draft: improve handling of Part::Vertex when used with PointArray
The `Part::Vertex` object has both `Placement`, and `X`, `Y`, `Z`
properties. The net displacement is the sum of both of these two
properties.

Previously, the `PointArray` would only use the `Placement`
which would produce a seemingly erroneous result
because `X`, `Y`, and `Z` would be ignored.
2020-06-05 13:21:02 +02:00
vocx-fc
565f2b35b4 Draft: move make_text function to its own module
Also perform several improvements such as PEP8 cleanup,
write complete docstring, type checking of the input arguments,
accepting a full placement to modify the position,
and deprecating the older call.

Update the Gui Command as well.
2020-06-05 13:20:35 +02:00
Yorik van Havre
d652b5eaf3 Fixed ImportNURBS icon 2020-06-05 13:19:42 +02:00
Keith Sloan
ea9c61869e fix resize 2020-06-05 13:17:34 +02:00
Keith Sloan
a549960193 Add workbench icon 2020-06-05 13:17:34 +02:00
Keith Sloan
f333d9ca0f resize 2020-06-05 13:17:34 +02:00
vocx-fc
7597dd0564 Draft: move more functions to draftgeoutils.general 2020-06-05 13:15:31 +02:00
vocx-fc
3bdd1310b3 Draft: move functions to draftgeoutils.circles_incomplete 2020-06-05 13:15:31 +02:00
vocx-fc
3476c73b3b Draft: move functions to draftgeoutils.circle_inversion 2020-06-05 13:15:31 +02:00
vocx-fc
0ba43a993e Draft: move functions to draftgeoutils.circles_apollonius 2020-06-05 13:15:31 +02:00
vocx-fc
627e665c5d Draft: move more functions to draftgeoutils.circles, part 2 2020-06-05 13:15:31 +02:00
vocx-fc
6ec6fb2ca1 Draft: move functions to draftgeoutils.circles, part 1 2020-06-05 13:15:31 +02:00
vocx-fc
7eee6ae4f6 Draft: move more functions to draftgeoutils.arcs 2020-06-05 13:15:31 +02:00
vocx-fc
7caa8d4dcf Draft: migrate older properties of PathArray 2020-06-05 13:14:46 +02:00
vocx-fc
f2f22e155b Draft: rename PathArray properties
`PathObj` becomes `PathObject`, `Xlate` becomes `ExtraTranslation`,
and `PathSubs` becomes `PathSubelements`.

Update `make_path_array` function and the Gui Command.
2020-06-05 13:14:46 +02:00
vocx-fc
f1bcffbc16 Draft: hide properties not used in the PathArray
Certain properties do not need to be shown in the property editor
when a particular `AlignMode` is chosen. This keeps the number
of properties displayed organized and easy to manage.
2020-06-05 13:14:46 +02:00
vocx-fc
572788edd7 Draft: set the properties of PathArray through functions 2020-06-05 13:14:46 +02:00
vocx-fc
9dd1c2efa5 Draft: cleanup logic of PathArray proxy object code
Return early from the `execute` method if no base or path exist.

Add method `get_wires` which internally uses `get_wire_from_subelements`
(renamed method), to get the edges from the path object,
and its subelements, if any. If no wires are found
return early from `execute`.

The final rotation applied to the copies will be the base rotation
of the base object's shape. The only exception is when the
`AlignMode` is `'Tangent'`; in this case, it performs
a pre-rotation with the `TangentVector`.
2020-06-05 13:14:46 +02:00
vocx-fc
835f4b424f Draft: clean up code, PEP8, and docstrings in PathArray
Test the inputs to the `make_path_array` function
and return `None` if there is a problem.

Now the make function accepts as input a `"String"` which must be
the `Label` of an object in the document, so it is easier to create
arrays quickly from the Python console.

Add the new parameters to the make function, `align_mode`,
`tan_vector`, `force_vertical`, and `vertical_vector`.
These properties were added to the proxy object in ff323ebdb5.

Add  message deprecating the older call `makePathArray`.

Adjust the GuiCommand accordingly. Now it uses the commit
mechanism of the parent `Modifier` class so that the executed
functions are recorded in the Python console.

Clean up the `PathArray` class as well.
2020-06-05 13:14:46 +02:00
bartoszek
b2882c699b Fix qt5:5.15.0 build. 2020-06-05 10:02:56 +02:00
Russell Johnson
16a65cc720 Path: Add opUpdateDepths() method to fix FinalDepth guess 2020-06-05 00:11:43 -05:00
Russell Johnson
e78c1e6646 Path: Improve FindUnifiedRegion class
Improvements now identify cases where selected faces create a closed loop that creates an internal closed wire to not be processed.
Remove unnecessary comments.
Add debug statements.
2020-06-05 00:11:43 -05:00
Russell Johnson
a167f2229b Path: Fix vertical face handling; Correct if ... is not False usage 2020-06-04 20:40:26 -05:00
sliptonic
aac84ddf0f Merge pull request #3560 from Russ4262/Import_Base_Geometry_fix
Path: PathOpGui - Fix Base Geometry import feature
2020-06-04 13:17:28 -05:00
sliptonic
be7e780c86 Merge pull request #3556 from Russ4262/3D_Surface_Waterline_Fixes
Path: 3D Surface and Waterline fixes per forum identification
2020-06-04 13:17:08 -05:00
Russell Johnson
fabe64cbcd Path: Fix _makeIntersectionTags() for very short edges
The 0.25 constant used might need to be modified later.  Or, the entire `_makeIntersectionTags()` method might need to be improved if other micro-edge use cases cause failure.
2020-06-04 13:15:10 -05:00
wmayer
7ce076b347 Mesh: [skip ci] fix regression in PlaneSurfaceFit::Initialize 2020-06-04 19:29:00 +02:00
WandererFan
9fd502eea7 Merge pull request #3559 from WandererFan/SectionFaceError6
[TD]Improve section face display
2020-06-04 13:25:27 -04:00
Russell Johnson
08e3f0b0d7 Path: PathOpGui - Fix Base Geometry import feature
for pre-existing operations
2020-06-04 10:54:43 -05:00
wmayer
3df91974b8 Gui: [skip ci] fix unicode handling when showing units in status bar 2020-06-04 16:27:58 +02:00
WandererFan
6974598dc1 [TD]Improve section face display 2020-06-04 09:00:22 -04:00
wmayer
3aba2721d1 gcc: [skip ci] fix -Waddress 2020-06-04 14:56:20 +02:00
Yorik van Havre
8f35f7aa14 Arch: Added Profile command 2020-06-04 12:52:22 +02:00
Zheng, Lei
3f2f8ce039 Gui: fix crash on selecting removing object
The crash happens if some code calls Gui::Selection().addSelect() of a
removing object in response to App::Document::signalDeletedObject.
2020-06-04 09:34:27 +02:00
Bernd Hahnebach
86759ddfbf FEM: constraint electrostatic potential, better addition of attributs 2020-06-04 08:55:09 +02:00
Russell Johnson
c82dc128c3 Path: Fix for single selected non-planar face 2020-06-04 00:03:31 -05:00
Russell Johnson
0f4bb388bb Path: Fix error with multi-language usage of QComboBox inputs
The methods here might need to be applied throughout PathWB to allow language translations of GUI combobox inputs.
2020-06-03 21:24:18 -05:00
Russell Johnson
155f83baa7 Path: Fix duplication of gcode for Single-pass layer mode.. 2020-06-03 20:13:39 -05:00
Russell Johnson
9ca855476b Path: Clean up messaging and add translation() usage 2020-06-03 19:00:59 -05:00
Russell Johnson
4e139d5a1e Path: Fix failure to create model STL when selecting faces 2020-06-03 19:00:36 -05:00
Russell Johnson
1d35573917 Path: Fix paths through model
All cut patterns except Offset were cutting through model.
2020-06-03 18:59:46 -05:00
Russell Johnson
bebdf2d006 Path: Simplify creation of debug objects
Path: Improve debug messages
2020-06-03 18:59:46 -05:00
Russell Johnson
523089befa Path: Make missing connections between UI panel and operation 2020-06-03 18:59:46 -05:00