Commit Graph

16720 Commits

Author SHA1 Message Date
Gabriel Wicke
72524e9056 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
sliptonic
1d2b2f20f0 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
a785c02dd4 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
0a43d9ecc1 Arch: Fixed non-GUI mode of exporters 2020-06-05 14:58:20 +02:00
vocx-fc
f6378b1c0b 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
286be34765 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
734758d83f Fixed ImportNURBS icon 2020-06-05 13:19:42 +02:00
Keith Sloan
b6d5830cd6 fix resize 2020-06-05 13:17:34 +02:00
Keith Sloan
8eabb65a52 Add workbench icon 2020-06-05 13:17:34 +02:00
Keith Sloan
59e644c346 resize 2020-06-05 13:17:34 +02:00
vocx-fc
aba904f1e2 Draft: move more functions to draftgeoutils.general 2020-06-05 13:15:31 +02:00
vocx-fc
0e82ae26cd Draft: move functions to draftgeoutils.circles_incomplete 2020-06-05 13:15:31 +02:00
vocx-fc
4dc6b975db Draft: move functions to draftgeoutils.circle_inversion 2020-06-05 13:15:31 +02:00
vocx-fc
1ea5b19ea4 Draft: move functions to draftgeoutils.circles_apollonius 2020-06-05 13:15:31 +02:00
vocx-fc
7f9e6ba16b Draft: move more functions to draftgeoutils.circles, part 2 2020-06-05 13:15:31 +02:00
vocx-fc
4c4531a5fd Draft: move functions to draftgeoutils.circles, part 1 2020-06-05 13:15:31 +02:00
vocx-fc
b6adbe98e4 Draft: move more functions to draftgeoutils.arcs 2020-06-05 13:15:31 +02:00
vocx-fc
f955519903 Draft: migrate older properties of PathArray 2020-06-05 13:14:46 +02:00
vocx-fc
17de210655 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
641a7d596a 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
07ee03b928 Draft: set the properties of PathArray through functions 2020-06-05 13:14:46 +02:00
vocx-fc
da2504efdd 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
466751c7a8 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 0db11da9cf.

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
db84309150 Fix qt5:5.15.0 build. 2020-06-05 10:02:56 +02:00
Russell Johnson
452f1d6d9d Path: Add opUpdateDepths() method to fix FinalDepth guess 2020-06-05 00:11:43 -05:00
Russell Johnson
3c87e48b3b 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
c53435cc91 Path: Fix vertical face handling; Correct if ... is not False usage 2020-06-04 20:40:26 -05:00
sliptonic
e3b985e900 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
9c21caa7fe 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
d231382f02 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
f4c97263a5 Mesh: [skip ci] fix regression in PlaneSurfaceFit::Initialize 2020-06-04 19:29:00 +02:00
Russell Johnson
fcd934b498 Path: PathOpGui - Fix Base Geometry import feature
for pre-existing operations
2020-06-04 10:54:43 -05:00
WandererFan
2db99798f6 [TD]Improve section face display 2020-06-04 09:00:22 -04:00
wmayer
7fffe88433 gcc: [skip ci] fix -Waddress 2020-06-04 14:56:20 +02:00
Yorik van Havre
b1c7efa387 Arch: Added Profile command 2020-06-04 12:52:22 +02:00
Bernd Hahnebach
419b2addc0 FEM: constraint electrostatic potential, better addition of attributs 2020-06-04 08:55:09 +02:00
Russell Johnson
1d18ad5e0a Path: Fix for single selected non-planar face 2020-06-04 00:03:31 -05:00
Russell Johnson
c8f654e7a1 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
c7222a51a7 Path: Fix duplication of gcode for Single-pass layer mode.. 2020-06-03 20:13:39 -05:00
Russell Johnson
4b9b1e3c76 Path: Clean up messaging and add translation() usage 2020-06-03 19:00:59 -05:00
Russell Johnson
2fe53c58bf Path: Fix failure to create model STL when selecting faces 2020-06-03 19:00:36 -05:00
Russell Johnson
7ba218f417 Path: Fix paths through model
All cut patterns except Offset were cutting through model.
2020-06-03 18:59:46 -05:00
Russell Johnson
d94ae6e813 Path: Simplify creation of debug objects
Path: Improve debug messages
2020-06-03 18:59:46 -05:00
Russell Johnson
7fd047a9be Path: Make missing connections between UI panel and operation 2020-06-03 18:59:46 -05:00
Russell Johnson
3e83b1d8e5 Path: Add missing cut patterns and organize the enumeration lists 2020-06-03 18:59:46 -05:00
Bernd Hahnebach
c0fa72929a FEM: fluid task panel, use log for a log 2020-06-04 00:29:21 +02:00
Bernd Hahnebach
0bfbe98b14 FEM: mechanical result task panel, small improvements 2020-06-04 00:25:42 +02:00
Bernd Hahnebach
0bfecf7af5 FEM: gmsh view provider, small improvements 2020-06-04 00:15:15 +02:00
Bernd Hahnebach
c8b67c8d39 FEM: ccx tools task panel, add comment 2020-06-04 00:09:47 +02:00
Bernd Hahnebach
20f7d61dec FEM: import module unit test, add missing packages 2020-06-03 23:49:11 +02:00