Commit Graph

16932 Commits

Author SHA1 Message Date
vocx-fc
d93e8518b0 Draft: clean up code, PEP8, and docstrings for DraftLink
This class was created by realthunder during the `LinkMerge`,
in 8cd9339b8c, to demonstrate how to use the `App::Link`
objects to create Link aware arrays.

It is used by `draftobject.array` (ortho, polar, circular)
and `draftobject.patharray` to create respective Link arrays.

This class is a bit mysterious. We need more documentation
on how the properties are being set, and how the code interacts
with the arrays that use it.
2020-06-03 14:47:44 +02:00
vocx-fc
3e67b469d4 Draft: clean up CircularArray code
Avoid `Draft.py` in the `make_circular_array` function because
it creates a circular dependency.

Use function to find the object in `make_circular_array`.

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 interactively from the Python console.

Clean up the GuiCommand and task panel code, and avoid printing
messages to the terminal, as this is already done
by the make function.
2020-06-03 14:46:15 +02:00
vocx-fc
1ad8b16a81 Draft: clean up PolarArray code
Avoid `Draft.py` in the `make_polar_array` function because
it creates a circular dependency.

Use function to find the object in `make_polar_rarray`.

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 interactively from the Python console.

Clean up the GuiCommand and task panel code, and avoid printing
messages to the terminal, as this is already done
by the make function.
2020-06-03 14:46:15 +02:00
vocx-fc
604e70fd20 Draft: clean up OrthoArray code
Avoid `Draft.py` in the `make_ortho_array` function because
it creates a circular dependency.

Use internal functions to abstract the orthogonal arrays.
The `_make_ortho_array` is a simple wrapper over the general
`make_array` function.

The result is four variants:
- `make_ortho_array`
- `make_ortho_array2d`, without the Z component
- `make_rect_array`, strictly rectangular components
- `make_rect_array2d`, strictly rectangular without the Z component

Also use functions to perform checking of the inputs,
whether these are vectors, numbers (integer and floats)
or integers.

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.

Clean up the GuiCommand and task panel code, and avoid printing
messages to the terminal, as this is already done
by the make function.
2020-06-03 14:46:15 +02:00
vocx-fc
6d1fdebca3 Draft: clean up make_array function 2020-06-03 14:46:15 +02:00
vocx-fc
22c9f9a762 Draft: migrate PointList property to PointObject in PointArray
Use the `onDocumentRestored` method to check for the old
property.

Also modify the position of the base object in the draft test
script.
2020-06-03 14:44:00 +02:00
vocx-fc
96736db93a Draft: add new options to the make_point_array function
It supports a new parameter `extra` that is used
to provide `ExtraPlacement` for the copies of the array.

Adjust the GuiCommand properly.
2020-06-03 14:44:00 +02:00
vocx-fc
eaea9bed6f Draft: add additional displacement property for PointArray
The displacement is added to the position already defined by
the point, in order to impart an additional shift in the copy.

The rotation is also added to the original shape's rotation
by multiplying the quaternions.

Implement `onDocumentRestore` to add the new property
to older objects.
2020-06-03 14:44:00 +02:00
vocx-fc
62d5df3508 Draft: clean up code, PEP8, and docstrings for PointArray
Test the inputs to the `make_point_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 a message deprecating the older call `makePointArray`.

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 `PointArray` class as well.
2020-06-03 14:44:00 +02:00
Bernd Hahnebach
8e3938e5a4 FEM: ccx writer, add comment 2020-06-03 13:17:18 +02:00
WandererFan
670b2f3c2c Merge pull request #3551 from WandererFan/PAAngle
[Draft]Path Array tangent rotation direction
2020-06-03 07:14:11 -04:00
Bernd Hahnebach
7148485b91 FEM: ccx writer, fix output number formating 2020-06-03 13:13:34 +02:00
Gabriel Wicke
29b136815f Path: Respect meshing tolerance settings for 3d surfaces
Meshing tolerance settings for 3d surface operations were ignored since
switching to directly using facets from the view tesselation. On complex
3d shapes, this could cause serious meshing artifacts in the generated
paths, serious enough to show up even in path previews.

Additionally, there were occasionally segfaults when a model was not
viewed and thus implicitly tessellated before starting an OCL operation.

This patch switches from using view tessellations to explicitly calling
`tessellate()`. While this is usually more expensive than using the
existing view tessellation, recent changes to parallelize tessellation
have reduced this additional cost significantly.

Note that this diff only restores the use of LinearDeflection, since
that is the main thing we care about in OCL use cases. Angular
deflection is still ignored, but I think this is a good thing for this
case since a highly refined mesh in tiny but heavily curved areas below
the linear deflection threshold just adds unnecessary cost. If there is
agreement on this point, then we can remove the preference for
AngularDeflection from the UI in a follow-up.
2020-06-02 20:54:20 -07:00
Russell Johnson
e9f511e4e6 Path: Fix reference to label in UI panel 2020-06-02 19:59:27 -05:00
sliptonic
acdbf74d56 Merge pull request #3537 from Russ4262/Reuse_Base_Geometry
Path: New feature - import base geometry from existing operations in Job
2020-06-02 18:28:19 -05:00
wandererfan
c203879b50 [Draft]Path Array tangent rotation direction 2020-06-02 13:55:44 -04:00
Abdullah Tahiri
5a9e3358c0 Sketcher: Avoid PointOnObject Autoconstraint on BSpline
=======================================================

fixes #4295

PointOnObject autoconstraint for BSplines is currently not supported, this
commit prevents malformed autoconstraint creation.
2020-06-02 19:08:06 +02:00
mwganson
6883f4687a [Part Design] fix refine feature in Hole feature 2020-06-02 17:44:20 +02:00
Yorik van Havre
d97ee0d4a5 Draft: Added Area and Offset properties to Facebinder 2020-06-02 14:00:25 +02:00
Yorik van Havre
83aaa29bb5 Draft: Fixed translation regression 2020-06-02 13:44:46 +02:00
Yorik van Havre
4d48b2aa38 Arch: Movig utils functions from importIFC to importIFCHelper 2020-06-02 13:39:22 +02:00
vocx-fc
20ec1fe9bd Draft: add use_instead function to warn users about old functions
This can be used to deprecate older definitions
and suggest users to try a different function. This will be used
in the make functions in `draftmake`.
2020-06-02 12:29:50 +02:00
vocx-fc
d80dc23f5b Draft: add find_object function to find objects by label in a document
Also add `find_doc` to be able to test the existence of an
active document before searching for the object.

These can be used in the make functions of most modifier commands.
2020-06-02 12:29:50 +02:00
vocx-fc
84529ec5bc Draft: clean up the utils module a bit, PEP8, style 2020-06-02 12:29:50 +02:00
Harald Geyer
a6b2e11ef8 Arch: IFC import, implementation of IfcIndexedPolyCurve
ArchiCAD uses this entity for footprint annotations even if there are no
arc segments. Thus I need this, but couldn't test the arc part of the
patch.
2020-06-02 12:26:25 +02:00
WandererFan
79c646aa89 Merge pull request #3365 from donovaly/TD-DetailWork
[TD] some Detail View fixes
2020-06-01 20:43:01 -04:00
Abdullah Tahiri
ef51a169e3 Sketcher: Make setposition text unpickable
==========================================

fixes #4272

The setposition text string was being picked interfering with preselection of autoconstraints.

Merit for the solution goes to Werner:
https://forum.freecadweb.org/viewtopic.php?f=10&t=47092&p=404519#p404519
2020-06-01 19:56:01 +02:00
Russell Johnson
cf26f7bb4c Path: New feature - import base geometry from existing operations in Job
This feature allows the user to import base geometry from an existing operation in the same Job.  The imported geometry is still passed through the shape type filter as if it were manually selected in the viewport.
Path: Post-test updates
2020-06-01 11:18:22 -05:00
donovaly
d6f19b5909 Merge branch 'master' of github.com:FreeCAD/FreeCAD into TD-DetailWork 2020-06-01 14:06:56 +02:00
Abdullah Tahiri
45e906ed66 Sketcher: Fix undo on moving geometry
=====================================

fixes #3842
2020-05-31 20:53:07 +02:00
sliptonic
29b77b2857 Merge pull request #3534 from Russ4262/MillFace_Improvement
Path: MillFace - Add `Face Region` method to boundary shape options
2020-05-31 12:48:28 -05:00
sliptonic
3436a8be93 Merge pull request #3512 from Russ4262/Waterline_coolant
Path: Waterline - Add missing `CoolantMode` input to GUI
2020-05-31 12:47:30 -05:00
sliptonic
c1e21090c9 Merge pull request #3506 from gwicke/path_newlines
Path: Opt into automatic git newline normalization
2020-05-31 12:44:47 -05:00
sliptonic
8741856882 Merge pull request #3518 from gwicke/flake8_config
Path: Add .flake8 config for path module
2020-05-31 12:28:41 -05:00
Gabriel Wicke
86cd9f2124 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
wandererfan
b937529c7c [TD]export Svg hatch as bitmap (PDF) 2020-05-31 11:26:56 -04:00
wandererfan
7cb6ebef07 [Part]use BSpline for makeWireString instead of Bezier curves.
- the bezier curves from the font definitions cause checkGeometry
  errors when extruded.  bsplines do not have this problem.
2020-05-31 11:26:22 -04:00
Gabriel Wicke
164b278e50 Merge branch 'master' into flake8_config 2020-05-31 08:24:32 -07:00
sliptonic
2a2182e4d1 Merge pull request #3496 from gwicke/transition_fixes
Path: Fix step transition optimizations
2020-05-31 09:47:52 -05:00
Russell Johnson
dd1e731abc Path: Add new Face Region boundary option.
New option allows access to previously inaccessible faces.
Corrected property label names in UI panel, and added `Face Region` option to boundary shape list.
2020-05-30 20:56:00 -05:00
Russell Johnson
0ed96d6a0f Path: Extend ClearEdges to Perimeter boundary usage. 2020-05-30 20:56:00 -05:00
Russell Johnson
2f1b44997d Path: Code cleanup
Fix `If ... is True:` clauses.
Remove unnecessary doc variables.
2020-05-30 20:56:00 -05:00
Russell Johnson
9ee49e389f Path: Add missing Setup() properties; Visual organization 2020-05-30 20:56:00 -05:00
donovaly
d1b3de217b [TD] TaskDetail: omit problematic slot issue 2020-05-31 02:14:20 +02:00
donovaly
c3c2bfef67 Merge branch 'master' of github.com:FreeCAD/FreeCAD into TD-DetailWork 2020-05-31 00:24:29 +02:00
vocx-fc
b5af1f5114 FEM: fix failing unit test in Elmer meshing (SecondOrderLinear) 2020-05-30 23:30:10 +02:00
Gabriel Wicke
3dc063fe54 Merge branch 'master' into flake8_config 2020-05-30 09:35:43 -07:00
wmayer
fed4265cfe Import: handle OCC versions 7.4.1 and earlier 2020-05-30 11:56:14 +02:00
Gabriel Wicke
22acaf4fdf [import] Hotfix for build failure from bad debug code
Quick fix for a build failure with latest opencascade. Directly use
std::cout instead of custom streams.
2020-05-30 11:49:48 +02:00
Adrian
1f63355c06 Improve Axis Cross behavior and expose parameter to 3D View preferences 2020-05-30 11:17:38 +02:00