Commit Graph

36 Commits

Author SHA1 Message Date
Uwe
aa48c2ea44 [Part] Extrusion: simplify code by using full recursion
- the recursion can be done completely by one void
- also add a brief description of this void
2022-01-30 16:53:44 +01:00
Uwe
a3944b8553 [Part] Extrusion: code optimizations
kudos to @marioalexis84
2022-01-30 06:02:37 +01:00
Uwe
b339cd4624 [Part] Extrusion: taper nested wires properly
addendum to commit 2d6bcba90

Now also wires nested by more than one level are supported.
The possible nesting is infinite.
2022-01-30 05:52:43 +01:00
Uwe
23c1fb78bf [Part] Extrude: remove unused variable 2022-01-29 23:18:11 +01:00
Uwe
f061a2cd82 [Part] handle inner wires for Extrude (#5367)
* [Part] handle inner wires for Extrude

this is a PR to make Extrude handle inner wires of sketches.
2022-01-29 21:50:55 +01:00
luz paz
501a5e88c0 Part: fix source comment typo 2022-01-22 16:28:41 +01:00
Uwe
9c828d6efd [Part] Extrusion: just style fixes
to keep following PR diffs small

all changes were automatically done by MSVC
2022-01-20 01:08:35 +01:00
Uwe
0066d6d80d [Part] Extrude: avoid code duplication
more code that is used twice into a subroutine
2022-01-17 16:58:03 +01:00
Uwe
e6d63cecd9 [Part] just style fixes
to keep following PR diffs small

all changes automatically done by MSVC
2022-01-17 01:08:48 +01:00
Uwe
f44c683e0e [Part] sort includes 2022-01-09 21:59:02 +01:00
wmayer
c162037476 LGTM: [skip ci] fix: Large object passed by value 2020-07-24 18:32:31 +02:00
Zheng, Lei
f028ba42ff 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
Abdullah Tahiri
216926233f Part: Make 3rd party libraries into PCH 2019-05-02 07:09:22 +02:00
wmayer
4a80a74680 fixes #0003788: Part-workbench extrude with taper angle delivers a wrong shape 2019-01-25 02:49:09 +01:00
wmayer
9aa6a700d8 Replace Base::Exception with appropriate subclass 2018-11-14 19:45:20 +01:00
luzpaz
5973d8d67e Part: typos 2017-12-25 11:03:11 +01:00
wmayer
0d617f97d6 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
fa4bebf2e0 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
Kunda
9410e751e9 source typo fixes pt4 (only on py3 merged code) 2017-03-02 13:47:21 +01:00
DeepSOIC
2045cb9b4a 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
115c7e4f88 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
da406cddb8 handle possible crashes with FaceMaker and fix a few coding flaws 2016-10-02 14:47:59 +02:00
DeepSOIC
8671edf76c 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
6fb25b9df5 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
wmayer
c2dd2e2b99 fix Coverity issues 2016-08-21 18:46:40 +02:00
Sebastian Hoogen
56c055c269 Set offset mode for extrusion draft 2015-01-20 11:30:13 +01:00
wmayer
01a24a57eb + support compounds of wires or faces for extrusion with tapered angle 2014-07-12 17:44:33 +02:00
wmayer
7bcb9919b7 + Make extrude again working for shapes without wires but edges 2014-03-25 10:16:50 +01:00
wmayer
922d3b5101 + fix some issues 2014-03-15 12:36:07 +01:00
wmayer
792b38ada0 + fixes #0001412: Extruding sketch doesn't make a solid 2014-03-12 18:37:49 +01:00
jriegel
00ea24e07e 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
b3836161e2 Validate face in extrusion feature 2013-03-03 12:24:23 +01:00
wmayer
8ae01022f6 0000910: Circles Extrude Only Surfaces 2012-12-18 14:33:59 +01:00
wmayer
bdf43fcaa4 + support of face for draft angle extrusion
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5360 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-12-29 19:13:16 +00:00
wmayer
60ba9cf5db 0000542: request for 'Draft Angle' option for extrusion
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5359 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
2011-12-29 18:20:59 +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