Commit Graph

585 Commits

Author SHA1 Message Date
DeepSOIC
d21f339a0f Part: Extrude, Revolve: fix #2720 - relax action of Solid=true
When facemakers were introduced, Solid property of Revolve and Extrude
was made strict: it calls facemaker if Solid==true, and facemaker would
fail if shape being extruded/revolved is a face.

This is fixed by testing there are no faces in source shape prior to
calling facemaker.
2016-10-04 21:51:58 +03:00
DeepSOIC
7b70711fb3 Part: FaceMaker: check if instance is actually created.
Part::FaceMaker::ConstructFromType() could return null pointer if
abstract class type is supplied.

Here, it is fixed by checking for null pointer in facemaker itself,
rather than in every place  ConstructFromType is being used.
2016-10-04 10:03:19 +02:00
wmayer
c833136cde handle possible crashes with FaceMaker and fix a few coding flaws 2016-10-02 14:47:59 +02:00
DeepSOIC
c72a61641c Part: Py API: deprecate Part.Face.makeOffset 2016-10-01 23:13:44 +03:00
DeepSOIC
c7f975279c Part: Offset2D: rewrite to use FaceMaker
new features supported:
* fill offset in collective mode when result wires are closed
* offsetting faces in collective mode

Remaining TODOs:
- collective offset of open wires in "skin" mode
2016-10-01 23:13:44 +03:00
DeepSOIC
1757f70cdf Part: Py API: add methods to use FaceMakers
* new Part.Shape.Face() constructor footprints with facemaker class
supplied as string mane of C++ class.
* add Part.makeFace method that uses facemaker.
2016-10-01 23:13:44 +03:00
DeepSOIC
da52d8ea70 Part: TopoShape: deprecate solid flag for revolve method 2016-10-01 23:13:44 +03:00
DeepSOIC
199d3edf13 Part: Revolve: port to use FaceMaker
For old documents, default to old behavior. For new objects, default to
use FaceMakerBullseye
2016-10-01 23:13:44 +03:00
DeepSOIC
399cb4bda3 Part: Extrude: port to use FaceMaker
For old documents, default to old behavior. For new objects, default to
use FaceMakerBullseye
2016-10-01 23:13:44 +03:00
DeepSOIC
e898789cba Part: Face: use facemakers
For old documents, default to FaceMakerCheese. For newly created
objects, use FaceMakerBullseye
2016-10-01 23:13:44 +03:00
DeepSOIC
12d33e841f Part: register facemaker classes into typesystem 2016-10-01 23:13:44 +03:00
DeepSOIC
02286a21d1 Part: implement facemakers: FaceMakerCheese, FaceMakerBullseye
FaceMakerCheese: based on code extracted from Part FeatureExtrude,
exactly the same as facemaking code in PartDesign.

FaceMakerBullseye: new facemaker, that supports nesting like hole inside
a face inside a hole of another face...
2016-10-01 23:13:44 +03:00
DeepSOIC
b6db15a5d3 Part: Introduce FaceMaker class
A general class to implement smart making faces from wires (e.g. making
a face from sketch prior to extruding)
2016-10-01 23:13:44 +03:00
wmayer
801ac34258 fix -Wdeprecated in Part & FreeCADGui 2016-09-22 15:32:49 +02:00
wmayer
f944ab3846 replace deprecated auto_ptr with unique_ptr 2016-09-22 13:01:20 +02:00
wmayer
1ce73dda96 fix -Wextra in Part 2016-09-22 11:49:28 +02:00
DeepSOIC
47c745f228 Part: Offset2D: fix save-load instability
Fixes #2699
It was found out that when direction of normal found by FindPlane
depends on if we are using result of offset directly, or after copying.

The fix (workaround) is to copy offset result inside  offset routine, so
that no unstable behavior makes its way to the user.
2016-09-18 18:45:04 +03:00
wmayer
53ca0eb6a3 support offset curve in edge.Curve for occ 7.0 2016-09-15 10:36:44 +02:00
wmayer
9370378ec7 allow to pass parameter range when creating a line from a line 2016-09-09 13:02:15 +02:00
DeepSOIC
e3ca28baa8 Part: add Offset2D feature
derived from Part::Offset, to re-use task dialog easily
2016-09-02 16:26:02 +02:00
DeepSOIC
1f6174e3f2 Part: Offset feature: split off into separate file
withdrew code from PartFeatures.h/.cpp and created FeatureOffset.h/.cpp
2016-09-02 16:26:02 +02:00
DeepSOIC
7f6872817a Part: Py API: deprecate Part.Wire.makeOffset
(code unchanged. Only added deprecation note to documentation)
2016-09-02 16:26:02 +02:00
DeepSOIC
78d32b6405 Part: Py API: add makeOffset2d method to Part.Shape
+ write documentation to makeOffsetShape
2016-09-02 16:26:02 +02:00
DeepSOIC
5318e03561 Part: TopoShape: add makeOffset2D method
Supports:
* offsetting wire, compound of wires.
* offsetting compounds in collective or independent manners
('intersection' parameter)
* two offset modes (parameter 'allowOpenResult')
* filling offset when offsetting one wire, or compound in independent
manner

Not supported yet (planned):
* filling offset when offset in collective manner (intersection= true)
* offsetting planar faces
2016-09-02 16:26:02 +02:00
DeepSOIC
98418a4e0c Part: Extrude: improvements
* split Dir into Dir+Length; added second Length
* support for parametric linked direction: to arbitrary edge, and to
normal
* options: reverse, symmetric
* second taper angle
* changed offset join mode for tapered extrusion on OCCT7
2016-09-01 11:46:18 +02:00
DeepSOIC
f3a3bd14fb [breaking] Part: Revolve: fix forgotten check for reverseness of axis link
I didn't know BRepAdaptor_Curve does not take shape orientation
(reverseness) into account.

The commit can break existing projects. If revolution feature was
created with axis linked to reversed edge, and angle span is not 360,
the revolution direction will now swap. The chances of this situation
are pretty low, and revolution supports axis linkage for not long yet.
So I hope it won't cause any noticeable trouble.

--DeepSOIC
2016-09-01 11:46:18 +02:00
wmayer
6e284fc9ea fix crash when saving a document after aborting a pending transaction 2016-08-31 17:58:55 +02:00
wmayer
4ba53881b5 fix Coverity issues 2016-08-22 15:33:54 +02:00
wmayer
e8b36592c0 fix Coverity issues 2016-08-21 18:46:40 +02:00
wmayer
f3f0f5bd2e fix Coverity issues 2016-08-20 15:41:33 +02:00
wmayer
006de1ab19 issue #0002666: Error on Save File 2016-08-12 13:33:48 +02:00
wmayer
1c1f0dfe49 fix various compiler warnings 2016-08-09 13:16:26 +02:00
DeepSOIC
507b39e3fc Part: use the just-added methods to make properties read-only 2016-08-08 21:48:50 +03:00
DeepSOIC
779b7eedb2 Part: Revolve: add support for axis link and midplane
Changes on the App side only.
Added two properties:
* AxisLink (accepts an edge - line or arc of circle)
* Symmetric (for distributing the revolution symmetrically in both
directions)
2016-08-08 19:34:27 +03:00
DeepSOIC
433bd375f3 Part: make Fusion and Common able to fuse arrays
If Fusion or Common features get only one argument, and the shape is a
compound, the children of the compound are treated as list of arguments.
2016-08-07 12:15:08 +02:00
Wolfgang E. Sanyer
7f4a437cc2 This commit adds getShape and setShape to TopoShape 2016-08-06 23:42:55 +02:00
wmayer
461c0b1f7b fix TopoShape::getFacesFromSubelement 2016-08-04 15:22:30 +02:00
wmayer
1e2e24b652 + rename methods in Vector3 class
+ add convenience methods Cross and Dot to Vector3 class
+ fix bug in DistanceToLineSegment in Vector3 class
2016-07-30 15:14:47 +02:00
maito78
8fe7c94452 Add parameter at given distance method for curves 2016-07-29 22:40:19 +02:00
DeepSOIC
c069987e41 Part: add BOPTools package as member of Part Py module 2016-07-29 14:18:01 +03:00
DeepSOIC
87b7c86197 Part: add BOPTools package
Containing implementation of new JoinConnect, as well as new splitting
tools: BooleanFragments, Slice and XOR.
2016-07-29 14:16:54 +03:00
wmayer
bff60f36a7 fix build failure with occ 6.9.0 2016-07-17 16:18:12 +02:00
tomate44
2bed80b57e fix VDegree
fix for getVDegree that was returning UDegree
2016-07-15 11:27:24 +02:00
wmayer
bdb359df39 + GFA is available since OCC 6.9.0, raise an AttributeError otherwise 2016-07-14 15:16:02 +02:00
wmayer
161f418824 + expose OCC version number to Python 2016-07-14 14:11:54 +02:00
WandererFan
3b96cbbeb6 wmayer patch for Win & OCC7 compat 2016-07-11 15:32:16 +02:00
DeepSOIC
ca0a640aed Part: TopoShapePy: made Solid constructor accept CompSolid
Part.Solid(shape) now accepts compsolid as input, and creates a solid by
joining the compsolid.

Same done to Part.makeSolid().

+ change exception handling to expose the error message.
2016-07-04 14:58:53 +03:00
DeepSOIC
885fecb1ea Part: TopoShapePy: add generalFuse method 2016-07-04 14:57:50 +03:00
DeepSOIC
c8ebc7f9c2 Part: TopoShape: add generalFuse method (GFA)
OCC's Generaal Fuse Algorithm
2016-07-04 14:55:38 +03:00
DeepSOIC
32f5466df4 Part: AttachmentEditor: withdraw code to use Show module 2016-06-20 01:19:02 +03:00