Commit Graph

79 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 1031644fab improve doc string of Part.sortEdges 2019-06-20 14:41:50 +02:00
wmayer 1b26173580 use INCH instead of IN when setting units for STEP or IGES export 2019-06-13 12:40:01 +02:00
wmayer f6ee90557d also support shapetype parameter in Part.makeRevolution() if first argument is an edge 2019-05-12 11:33:38 +02:00
Abdullah Tahiri a56658489b Part: Make 3rd party libraries into PCH 2019-05-02 07:09:22 +02:00
wmayer 43bdef67d6 continue PCH on Part module 2019-05-01 16:10:38 +02:00
wmayer e02695b91f Replace Base::Exception with appropriate subclass 2018-11-14 19:45:20 +01:00
Markus Lampert 0b40519f3f Changed all catch types to references for polymorphic exceptions. 2018-08-08 15:45:30 +02:00
wmayer 840c9e8b3c prepare for PyCXX 7.0 2018-04-18 19:20:50 +02:00
wmayer a8a9650816 harmonize show() function of Part, Mesh, Fem, Path and Points modules 2017-09-29 00:35:48 +02:00
Markus Lampert 6bbefe94f5 Added optional name parameter to Part.show() 2017-09-28 23:22:11 +02:00
wmayer 29f2d818af add missing header file 2017-09-28 18:34:40 +02:00
wmayer 76264ec1c7 expose BRepFeat_SplitShape to Python 2017-09-28 12:55:24 +02:00
tomate44 f8585e71c1 add MaxDegree setting to Part.Loft 2017-09-18 12:07:00 +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
Richard Crozier 56e023a37a AppPartPy.cpp: improved docstrings for Part.makeLine and Part.makePolygon 2017-05-11 20:01:37 +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
wmayer ed23c0d3c4 py3: ported Part to python3 2017-03-01 16:38:53 +01:00
Zheng, Lei 2c249e8356 Part: fixed missing export declare of sort_Edges 2017-01-20 18:30:56 +08:00
Zheng, Lei eb0f89f477 Part: exported Part::sort_Edges
Fixed export of Part::shape2pyshape
2017-01-20 17:46:47 +08:00
Zheng, Lei e381b2332a Added Part.sortEdges
Unlike Part.__sortEdges__ which only return a list of connected edges,
and discard the rest. Part.sortEdges return a list of list of
connected edges, which includes all input edges.
2017-01-03 16:59:16 +08: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 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
wmayer f3f0f5bd2e fix Coverity issues 2016-08-20 15:41:33 +02:00
Wolfgang E. Sanyer 7f4a437cc2 This commit adds getShape and setShape to TopoShape 2016-08-06 23:42:55 +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
wmayer bca7a1866e + port to OCC 7.0 2016-05-14 16:53:27 +02:00
wmayer b10f838687 + simplify porting of Part module to Python3 2016-01-20 22:05:53 +01:00
wmayer c8e241c9f3 + PLate surface approximation 2015-11-19 18:52:19 +01:00
Mateusz Skowroński 43a4a5938c Fix files encoding. Go from ISO8859-1 to UTF-8. 2015-09-21 19:50:49 -03:00
Yorik van Havre 3dfc22231e Part.__sortEdges__ now reorients edges if needed 2015-09-03 11:17:46 -03:00
wmayer b3cbf2b3da + fix Part.__sortEdges__, check for object type in Part.Wire 2015-04-10 18:25:31 +02:00
wmayer f69b38dcde + fix doc string of Part.makeLoft 2015-02-25 21:36:40 +01:00
wmayer d66fc092e1 + better exception handling in Part module 2014-11-04 11:03:51 +01:00
Sebastian Hoogen a53a239f2f issue #1027 use unicode filepaths 2014-10-11 13:32:06 +02:00
Sebastian Hoogen ed66ada1cf issue #1700 replace PyExc_Exception 2014-09-17 11:15:57 +02:00
Sebastian Hoogen 5e51a6cdf7 fixes #0001422: Subclass Exception
inherit Base.FreeCADError form RuntimeError
inherit Part.OCCError from Base.FreeCADError
inherit OCCDomainError from Part.OCCError
inherit OCCRangeError from Part.OCCError
inherit OCCConstructionError from OCCDomainError
inherit OCCDimensionError from OCCDomainError
Added PY_CATCH_OCC macro
replace PyExc_Exception
use FreeCADError in makeWireString
catch exception in BSplineCurve.increasedegree
2014-09-17 11:15:56 +02:00
wmayer 2e6c54eedf + improve the plane fit from REEN module 2014-07-28 16:39:34 +02:00
wmayer 4dee80f4e1 + support to create faces from vertices with shape builder 2014-07-25 13:35:10 +02:00
wmayer f7a42f25b9 + extend makeFilledFace 2014-05-14 13:18:23 +02:00
WandererFan 33a4b6d7ba fixes #1319
allow Part.makeHelix to use 'vertical height' parm
correct lefthanded conical helixes in TopoShape::makeHelix
2014-05-10 11:05:52 +02:00
WandererFan d13946da11 Add function to Close Part.Loft (Gui & scripting) 2014-04-14 16:30:56 +02:00
WandererFan 13cdc443fa Improve geom creation, scaling and translation 2014-03-18 07:57:44 +01:00
WandererFan b3d1b7a2ea 1443: Fix ShapeString user font selection on Windows 2014-02-27 15:18:18 +01:00
wmayer 716629006c + fixes #0001345: orient solids 2014-01-04 13:50:53 +01:00
WandererFan acb8210c96 Add Part.makeLongHelix to work around Mantis #0954 2013-12-29 13:53:01 +01:00
wmayer ae90c159e2 + Add method to Part module to set static values 2013-11-12 12:15:40 +01:00
wmayer 80bbd3f2af 0001022: BRepPrimAPI_MakeRevolution vs BRepPrimAPI_MakeRevol 2013-10-28 15:06:29 +01:00
wmayer 4686118f2a + Make Python API more pythonic 2013-10-11 13:57:05 +02:00