Commit Graph

86 Commits

Author SHA1 Message Date
wmayer
d91bd53e10 Part: [skip ci] include missing header file 2020-04-14 09:37:45 +02:00
Eric Trombly
b631c5600a move getFacets from Path to Part 2020-04-06 06:34:53 -05:00
wandererfan
e3b5b0b177 [Part]Handle CJK font names for ShapeString 2020-02-19 13:11:01 -05:00
luz.paz
53bb216b57 Part: [skip ci] fix header uniformity
This PR fixes header uniformity across all Part WB files
2019-12-22 00:59:47 +01:00
asapelkin
e951094af9 use emplace_back instead of push_back where justified 2019-11-21 14:48:09 +01:00
Zheng, Lei
71c54272a0 Fix various Py::Object leak 2019-10-08 17:53:20 +02:00
wmayer
67b06d7a36 Fix clang compiler warnings:
+ fix -Winconsistent-missing-override
+ fix -Wpessimizing-move (Geometry::clone: moving a temporary object prevents copy elision -> remove std::move call here)
2019-08-17 19:52:32 +02:00
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