Path.Area: change fromShape() 'start' parameter behavior

'start' used to mean the initial resting position of the tool. Now it
is changed to mean the feed start position.

fromShape() has also improved to automatically guess 'retraction' and
'resume_height' parameters if not given, based on input shape boundary.
This commit is contained in:
Zheng, Lei
2017-07-04 10:37:12 +08:00
parent 90334e0478
commit 120b37b0c7
4 changed files with 111 additions and 41 deletions

View File

@@ -122,7 +122,7 @@ public:
"fromShapes(shapes, start=Vector(), return_end=False" PARAM_PY_ARGS_DOC(ARG,AREA_PARAMS_PATH) ")\n"
"\nReturns a Path object from a list of shapes\n"
"\n* shapes: input list of shapes.\n"
"\n* start (Vector()): optional start position.\n"
"\n* start (Vector()): feed start position, and also serves as a hint of path entry.\n"
"\n* return_end (False): if True, returns tuple (path, endPosition).\n"
PARAM_PY_DOC(ARG, AREA_PARAMS_PATH)
);
@@ -415,7 +415,7 @@ private:
try {
bool need_arc_plane = arc_plane==Area::ArcPlaneAuto;
std::list<TopoDS_Shape> wires = Area::sortWires(shapes,&pstart,
&pend, &arc_plane, PARAM_PY_FIELDS(PARAM_FARG,AREA_PARAMS_SORT));
&pend, 0, &arc_plane, PARAM_PY_FIELDS(PARAM_FARG,AREA_PARAMS_SORT));
PyObject *list = PyList_New(0);
for(auto &wire : wires)
PyList_Append(list,Py::new_reference_to(