Commit Graph

15 Commits

Author SHA1 Message Date
Zheng, Lei
6da72b9859 Part: changes to Part Module
* Added Part::Feature::getTopoShape/getShape() function that can obtain
  shape from any object with proper implementation of getSubObject(). It
  can even construct compound from group object with proper implementation
  of getSubObjects().

* Modified ViewProviderExt to work on any object, because it now obtain
  the shape using Part::Feature::getShape()

* Modified various Part features to obtain base/tool shapes using
  Part::getShape(), which allows them to be any type of object,
  including Link and groups.

* Modified various Part command to relax type requirement on selected
  objects.

* Add support of link and group to dimension, and add dimension refresh
  command

* Support link and group in simple command command, and add a few more
  copy command variations.

* Add special handling of 'Shape' attribute in PropertyContainerPy and
  use Part::Feature::getShape() to return shape for any object without
  Shape property. This allows many python feature work with any object
  without modification.

* GeometrySurface/CurvePy, add convenience attribute 'Rotation'

* TopoShapePy:

    * Extended support of sub shape attribute, e.g. Compound1, Solid2,
      SubShape3 ('SubShape' is used to access child shape of a compound)

    * makeWires(), new API to sort and return wires given a list of edges.

    * transformed/translated/rotated/scaled(), return a new shape with
      some transformation.

    * findPlane(), find the plane of a planar shape

    * isCoplanar(), check if two shape are coplanar
2019-08-17 15:08:35 +02:00
wmayer
949c86d364 Port to occ7.2:
+ Standard_Failure::Caught() is now marked as deprecated and should be replaced with standard C++ exception handling
2017-09-01 16:27:46 +02:00
Peter Lama
a75a98ef27 Use OCCT Handle macro for Handle_ classes
This is the result of running OCCT's upgrade script provided
with OCCT 7.0. See
https://www.opencascade.com/content/freecad-occt710-and-windows-rtti-data-missing#comment-form
and
https://www.forum.freecadweb.org/viewtopic.php?f=4&t=21405&start=120#p169019
for why this is necessary for OCCT >= 7.1
2017-04-20 12:27:34 +02:00
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
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
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
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
WandererFan
62f00095cd Issue #1508 Solid tickBox for Part.Revolution
Creates Solid for closed Edges & Wires
2014-04-25 10:07:21 +02:00
jriegel
664c1d4862 Integrate Werners & Jans double branch
Move from float to double
Further suggestions for float -> double move
Moved Tools2D from float to double
More suggestions for float->double move from Gui subdirectory
Changes to FEM constraint visuals for float->double move
Suggested changes for float -> double move
Suggestions for Part module moving float -> double
2013-09-24 11:00:57 +02:00
wmayer
f6cf5227ed 0000749: PI was not declared in this scope - compile error 2012-06-14 13:01:07 +02:00
wmayer
f9f668f8fc + fix but that Angle has no effect after creation of revolve feature
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5411 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2012-01-16 21:58:58 +00:00
wmayer
120ca87015 + unify DLL export defines to namespace names
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5000 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-10-10 13:44:52 +00:00