Commit Graph

72 Commits

Author SHA1 Message Date
wmayer
c0ca04adf9 activate pCH on Part module 2019-04-28 15:33:25 +02:00
Abdullah Tahiri
6e33785049 Part: Rearrange inheritance not to use ArcPy
============================================

Inheritance:

Geometry
- GeomPoint
- GeomCurve (GeometryCurvePy)
- - GeomBoundedCurve (BoundedCurvePy)
- - - GeomBezierCurve (BezierCurvePy)
- - - GeomBSplineCurve (BSplineCurvePy)
- - - GeomTrimmedCurve (TrimmedCurvePy)
- - - - GeomArcOfConic (ArcOfConicPy)
- - - - - GeomArcOfCircle (ArcOfCirclePy)
- - - - - GeomArcOfEllipse (ArcOfEllipsePy)
- - - - - GeomArcOfHyperbola (ArcOfHyperbolaPy)
- - - - - GeomArcOfParabola (ArcOfParabolaPy)
- - - - GeomLineSegment (LineSegmentPy)
- - GeomConic
- - - GeomCircle
- - - GeomEllipse
- - - GeomHyperbola
- - - GeomParabola
- - GeomLine
- - GeomOffsetCurve

* Note: ArcPy is also a twinclass of c++ GeomTrimmedCurve, Python ArcPy derives from Python TrimmedCurvePy.

Same functionality as before:

>>> geometries = ActiveSketch.Geometry
>>> line = geometries[1]
>>> arc = geometries[2]
>>> line
<Line segment (-97.4389,42.4463,0) (-80.7887,44.5569,0) >
>>> arc
ArcOfCircle (Radius : 19.3111, Position : (-74.6914, -23.2165, 0), Direction : (0, 0, 1), Parameter : (1.82335, 2.71597))
>>> line.FirstParameter
0.0
>>> line.LastParameter
16.783437032695776
>>> line.setParameterRange(0,20)
>>> line.LastParameter
20.0
>>> arc.StartPoint
Vector (-79.51683708894876, -4.517938119394778, 0.0)
>>> arc.EndPoint
Vector (-92.27963885411512, -15.243140671641918, 0.0)
>>> arc.setParameterRange(1.5,3)
>>> arc
ArcOfCircle (Radius : 19.3111, Position : (-74.6914, -23.2165, 0), Direction : (0, 0, 1), Parameter : (1.5, 3))
>>> geometries[1] = line
>>> geometries[2] = arc
>>> ActiveSketch.Geometry = geometries
>>> ActiveSketch.solve()
0
>>>
2019-02-11 19:13:55 +01:00
Abdullah Tahiri
52cfac509a Part: Python Bounded Curve (bring in accordance with c++)
Inheritance correspondence:

Geometry
- GeomPoint
- GeomCurve (GeometryCurvePy)
- - GeomBoundedCurve (BoundedCurvePy)
- - - GeomBezierCurve (BezierCurvePy)
- - - GeomBSplineCurve (BSplineCurvePy)
- - - GeomTrimmedCurve (ArcPy)
- - - - GeomArcOfConic (ArcOfConicPy)
- - - - - GeomArcOfCircle (ArcOfCirclePy)
- - - - - GeomArcOfEllipse (ArcOfEllipsePy)
- - - - - GeomArcOfHyperbola (ArcOfHyperbolaPy)
- - - - - GeomArcOfParabola (ArcOfParabolaPy)
- - - - GeomLineSegment (LineSegmentPy)
- - GeomConic
- - - GeomCircle
- - - GeomEllipse
- - - GeomHyperbola
- - - GeomParabola
- - GeomLine
- - GeomOffsetCurve
2019-02-11 19:12:50 +01:00
wmayer
cc1bb80f24 fixes 0003020: 2D offset of circle are not in the right place 2019-01-26 22:52:40 +01:00
wmayer
303b7f41cb CMP0050: make Part module aware of cmake policy 2018-08-20 16:54:23 +02:00
wmayer
c6208aa098 add typedef Py::TopoShape for convenience, move shape2pyshape to own file 2017-09-28 12:54:28 +02:00
Bernd Hahnebach
9c965137b1 Part: compound filter, GUI command 2017-02-18 15:57:54 +01:00
Bernd Hahnebach
8f900945ab Part: compound filter, core module 2017-02-18 15:57:54 +01:00
wmayer
19c9a9f819 remove superfluous Qt includes 2016-12-13 14:33:16 +01:00
Stefan Tröger
67d76b309c Port Attacher codde to the extension framework
AttachableObjects are desired in multiple occasions, and the current AttachableObject is not flexible enough to handle all cases. Hence the code is portet to an extension, which gives the needed flexibility.
2016-12-07 06:41:40 +01:00
wmayer
273f3995c0 add class GeomArcOfConic to reduce code duplication 2016-12-04 14:20:56 +01:00
wmayer
4ba8b565dc add class GeomConic to reduce code duplication 2016-12-04 11:36:50 +01:00
wmayer
19237df7bf add class LineSegment 2016-11-30 16:26:21 +01:00
wmayer
0e320ae8cf implement Line2d 2016-11-26 15:30:00 +01:00
wmayer
70240b52f4 fix build failure on Linux 2016-11-23 19:27:41 +01:00
wmayer
6b5dd05d51 use cmake's OBJECTS library option 2016-11-23 15:04:58 +01:00
wmayer
04fd872531 fix build problems on Linux/OSX 2016-11-22 16:16:48 +01:00
wmayer
78a6da83b0 add Python wrappers for Geom2d classes 2016-11-22 14:09:19 +01:00
wmayer
cd761ab804 wrapper for Geom2d package 2016-11-21 18:17:10 +01:00
wmayer
85020ab780 + remove GeomHermiteCurve class and add its methods to GeomBSplineCurve 2016-10-29 15:08:17 +02:00
wmayer
13b7a32596 add support of Hermite curves 2016-10-26 10:28:23 +02:00
DeepSOIC
4b26988cb7 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
68918a881f 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
DeepSOIC
53e7a15df1 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
ca4299230a 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
DeepSOIC
a6f2f2ec22 Part: AttachmentEditor: withdraw code to use Show module 2016-06-20 01:19:02 +03:00
DeepSOIC
7d7cf5c723 Attacher: add general purpose editor UI (python)
Added as PartGui.AttachmentEditor, and Part_EditAttachment gui command
2016-05-18 23:05:51 +02:00
DeepSOIC
7e38a59bac Attacher: Py: create AttachEnginePy
Not very useful at the moment, just created the interface.
2016-05-13 19:54:44 +03:00
DeepSOIC
c040ee7333 Attacher: Py: introduce Py interface of AttachableObject
Small - just the introduction.
Support for Py features based on AttachableObject.
Redirect Part2DObjectPython's father to be AttachableObjectPython.
2016-05-13 19:54:44 +03:00
DeepSOIC
93fff0e65f Sketcher: new attachment engine 2016-04-12 18:12:12 +02:00
jrheinlaender
fb9d56911d Miscellaneous fixes 2016-04-12 18:11:50 +02:00
jrheinlaender
857ede8847 Moved generic Datum class to Part module to avoid Sketcher dependency on PartDesign 2016-04-12 18:11:49 +02:00
jriegel
5b23d06cfe implement active body in PartDesign 2016-04-12 18:11:45 +02:00
jriegel
437bf6d917 Add some commands to assembly 2016-04-12 18:11:44 +02:00
wmayer
027a560fbc + add Python binding to Plate surface 2015-11-19 15:27:35 +01:00
wmayer
c082cc47a1 + Add parametric feature to create face from sketches 2015-11-12 19:44:24 +01:00
wmayer
c2c83a353b + harmonize XercesC cmake variables with official check 2015-07-28 14:17:49 +02:00
wmayer
d2b7b730d3 + replace deprecated PYTHON_INCLUDE_PATH 2015-07-25 18:29:42 +02:00
DeepSOIC
9e73137623 Part: new tools - JoinFeatures (Connect, Embed and Cutout)
Attributions:
Mark (quick61) - icons
Yorik - help with internationalization
Everyone who appeared in forum thread "A new Part tool is being born...
JoinFeatures!" - for endorsement!
http://forum.freecadweb.org/viewtopic.php?f=22&t=11112
2015-06-04 09:47:59 +02:00
wmayer
997e21f749 + integrate biarcs algorithm 2015-04-05 14:10:03 +02:00
Abdullah Tahiri
a551765bbe Part Module New Feature: Hyperbola & ArcOfHyperbola
- Completed Hyperbola c++ implementation and python wrapper
- Created ArOfHyperbola c++ and python wrapper implementation
2014-12-21 00:54:07 +01:00
Abdullah Tahiri
3d87ef6b4f Part Module New Feature: Parabola & ArcOfParabola
- Completed Parabola c++ implementation and python wrapper implementation
- Created ArOfParabola c++ and python wrapper implementation
2014-12-21 00:51:24 +01:00
Abdullah Tahiri
4946eddc6b Sketcher New Feature: Ellipse support
- Ellipse introduction button via (center,majaxis extreme, a point in edge), ellipse is always CCW so that Z axis goes in the positive direction of the sketch
- Backwards compatibility with files of previous versions of ellipse not defining a phi angle
- Art by Jim (all the icons you see and the XPMs shown on creation of an ellipse)
- Element Widget support for ellipses
- Box selection for ellipses
- Point on Ellipse constraint based on the gardener's method based on Ulrich's function proposal (radcan simplified, i.e. with simplify_radical sage function)
- Tangent: Ellipse to Line based on DeepSOIC's geometric formulation (radcan simplified)

Sketcher New Feature: Internal Alignment Constraint
- The element to which internal alignment is applied has to be selected last.
- All other elements are added in the order of priority, taking into account existing elements
- Art by Jim (beautiful icons).

Sketcher New Feature: Tool to show/hide/restore the internal geometry of an element
- New functionality for show/hide internal geometry:
  toggles between hiding all unused internal geometry elements and showing all internal geometry.
  The restore function is implicit to the showing all internal geometry

Sketcher New Feature: Arc of Ellipse support
- Part::Geometry + Python implementation
- ArcOfEllipse creation method
- Art by Jim (all the icons you see and the XPMs shown on creation of arc of ellipse elements)
- Sketcher Element widget for ArcOfEllipse.

Bug fix: Select elements associated to constraints works now for foci internal alignment constraints
2014-12-20 12:33:29 +01:00
Sebastian Hoogen
01cf0f5872 issue #1027 use unicode filepaths 2014-10-11 13:32:06 +02:00
Sebastian Hoogen
af50cbf964 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
6ac93e9d72 Add initial support for different libdir (jobermayr) 2014-05-10 12:57:38 +02:00
wmayer
4b2b243e47 + compile with clang 2014-05-05 16:24:01 +02:00
mdinger
1498e99cef Move python module prefix and suffix properties into macro to be set together 2014-05-03 16:00:30 +02:00
wmayer
a22f68c3db + Remove redefinition of /EHa which causes warnings with QtCreator 2014-04-30 19:21:49 +02:00
wmayer
67edfb895b + Fix prefix of Python extensions built with MinGW 2014-04-30 18:22:52 +02:00