#include <SketchPlugin_ConstraintPerpendicular.h>
#include <SketchPlugin_ConstraintRadius.h>
#include <SketchPlugin_ConstraintRigid.h>
+#include <SketchPlugin_ConstraintSplit.h>
#include <SketchPlugin_ConstraintTangent.h>
#include <SketchPlugin_ConstraintVertical.h>
#include <SketcherPrs_Tools.h>
//--------------------------------------------------------------------------------------
void SketchAPI_Sketch::setValue(
- const std::shared_ptr<ModelAPI_Feature> & theConstraint,
+ const std::shared_ptr<ModelHighAPI_Interface> & theConstraint,
const ModelHighAPI_Double & theValue)
{
// TODO(spo): check somehow that the feature is a constraint or eliminate crash if the feature have no real attribute VALUE
- fillAttribute(theValue, theConstraint->real(SketchPlugin_Constraint::VALUE()));
+ fillAttribute(theValue, theConstraint->feature()->real(SketchPlugin_Constraint::VALUE()));
// theConstraint->execute();
}
}
//--------------------------------------------------------------------------------------
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setAngle(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::addSplit(const ModelHighAPI_Reference& theFeature,
+ const ModelHighAPI_RefAttr& thePoint1,
+ const ModelHighAPI_RefAttr& thePoint2)
+{
+ std::shared_ptr<ModelAPI_Feature> aFeature = compositeFeature()->addFeature(SketchPlugin_ConstraintSplit::ID());
+ fillAttribute(theFeature, aFeature->reference(SketchPlugin_Constraint::VALUE()));
+ fillAttribute(thePoint1, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
+ fillAttribute(thePoint2, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
+ //aFeature->execute();
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
+}
+
+//--------------------------------------------------------------------------------------
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setAngle(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2,
const ModelHighAPI_Double & theValue)
fillAttribute(theLine2, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
fillAttribute(theValue, aFeature->real(SketchPlugin_Constraint::VALUE()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setAngleComplementary(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setAngleComplementary(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2,
const ModelHighAPI_Double & theValue)
fillAttribute(theLine2, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
// fillAttribute(theValue, aFeature->real(SketchPlugin_Constraint::VALUE()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setAngleBackward(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setAngleBackward(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2,
const ModelHighAPI_Double & theValue)
fillAttribute(theLine2, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
// fillAttribute(theValue, aFeature->real(SketchPlugin_Constraint::VALUE()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setCoincident(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setCoincident(
const ModelHighAPI_RefAttr & thePoint1,
const ModelHighAPI_RefAttr & thePoint2)
{
fillAttribute(thePoint1, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(thePoint2, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setCollinear(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setCollinear(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2)
{
fillAttribute(theLine1, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(theLine2, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setDistance(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setDistance(
const ModelHighAPI_RefAttr & thePoint,
const ModelHighAPI_RefAttr & thePointOrLine,
const ModelHighAPI_Double & theValue)
fillAttribute(thePointOrLine, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
fillAttribute(theValue, aFeature->real(SketchPlugin_Constraint::VALUE()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setEqual(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setEqual(
const ModelHighAPI_RefAttr & theObject1,
const ModelHighAPI_RefAttr & theObject2)
{
fillAttribute(theObject1, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(theObject2, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setFillet(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setFillet(
const std::list<ModelHighAPI_RefAttr> & thePoints,
const ModelHighAPI_Double & theRadius)
{
fillAttribute(thePoints, aFeature->data()->refattrlist(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(theRadius, aFeature->real(SketchPlugin_Constraint::VALUE()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setFixed(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setFixed(
const ModelHighAPI_RefAttr & theObject)
{
std::shared_ptr<ModelAPI_Feature> aFeature =
compositeFeature()->addFeature(SketchPlugin_ConstraintRigid::ID());
fillAttribute(theObject, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setHorizontal(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setHorizontal(
const ModelHighAPI_RefAttr & theLine)
{
std::shared_ptr<ModelAPI_Feature> aFeature =
compositeFeature()->addFeature(SketchPlugin_ConstraintHorizontal::ID());
fillAttribute(theLine, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setLength(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setLength(
const ModelHighAPI_RefAttr & theLine,
const ModelHighAPI_Double & theValue)
{
fillAttribute(theLine, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(theValue, aFeature->real(SketchPlugin_Constraint::VALUE()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setMiddlePoint(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setMiddlePoint(
const ModelHighAPI_RefAttr & thePoint,
const ModelHighAPI_RefAttr & theLine)
{
fillAttribute(thePoint, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(theLine, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setParallel(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setParallel(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2)
{
fillAttribute(theLine1, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(theLine2, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setPerpendicular(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setPerpendicular(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2)
{
fillAttribute(theLine1, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(theLine2, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setRadius(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setRadius(
const ModelHighAPI_RefAttr & theCircleOrArc,
const ModelHighAPI_Double & theValue)
{
fillAttribute(theCircleOrArc, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(theValue, aFeature->real(SketchPlugin_Constraint::VALUE()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setTangent(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setTangent(
const ModelHighAPI_RefAttr & theLine,
const ModelHighAPI_RefAttr & theCircle)
{
fillAttribute(theLine, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
fillAttribute(theCircle, aFeature->refattr(SketchPlugin_Constraint::ENTITY_B()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
-std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setVertical(
+std::shared_ptr<ModelHighAPI_Interface> SketchAPI_Sketch::setVertical(
const ModelHighAPI_RefAttr & theLine)
{
std::shared_ptr<ModelAPI_Feature> aFeature =
compositeFeature()->addFeature(SketchPlugin_ConstraintVertical::ID());
fillAttribute(theLine, aFeature->refattr(SketchPlugin_Constraint::ENTITY_A()));
aFeature->execute();
- return aFeature;
+ return InterfacePtr(new ModelHighAPI_Interface(aFeature));
}
//--------------------------------------------------------------------------------------
class ModelHighAPI_Double;
class ModelHighAPI_Integer;
class ModelHighAPI_RefAttr;
+class ModelHighAPI_Reference;
class ModelHighAPI_Selection;
class SketchAPI_Arc;
class SketchAPI_Circle;
const ModelHighAPI_Integer & theNumberOfObjects,
bool theFullValue = false);
+ /// Add split
+ SKETCHAPI_EXPORT
+ std::shared_ptr<ModelHighAPI_Interface> addSplit(
+ const ModelHighAPI_Reference& theFeature,
+ const ModelHighAPI_RefAttr& thePoint1,
+ const ModelHighAPI_RefAttr& thePoint2);
+
/// Set angle
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setAngle(
+ std::shared_ptr<ModelHighAPI_Interface> setAngle(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2,
const ModelHighAPI_Double & theValue);
/// Set complementary angle
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setAngleComplementary(
+ std::shared_ptr<ModelHighAPI_Interface> setAngleComplementary(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2,
const ModelHighAPI_Double & theValue);
/// Set backward angle (= 360 - angle)
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setAngleBackward(
+ std::shared_ptr<ModelHighAPI_Interface> setAngleBackward(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2,
const ModelHighAPI_Double & theValue);
/// Set coincident
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setCoincident(
+ std::shared_ptr<ModelHighAPI_Interface> setCoincident(
const ModelHighAPI_RefAttr & thePoint1,
const ModelHighAPI_RefAttr & thePoint2);
/// Set collinear
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setCollinear(
+ std::shared_ptr<ModelHighAPI_Interface> setCollinear(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2);
/// Set distance
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setDistance(
+ std::shared_ptr<ModelHighAPI_Interface> setDistance(
const ModelHighAPI_RefAttr & thePoint,
const ModelHighAPI_RefAttr & thePointOrLine,
const ModelHighAPI_Double & theValue);
/// Set equal
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setEqual(
+ std::shared_ptr<ModelHighAPI_Interface> setEqual(
const ModelHighAPI_RefAttr & theObject1,
const ModelHighAPI_RefAttr & theObject2);
/// Set fillet
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setFillet(
+ std::shared_ptr<ModelHighAPI_Interface> setFillet(
const std::list<ModelHighAPI_RefAttr> & thePoints,
const ModelHighAPI_Double & theRadius);
/// Set fixed
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setFixed(
+ std::shared_ptr<ModelHighAPI_Interface> setFixed(
const ModelHighAPI_RefAttr & theObject);
/// Set horizontal
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setHorizontal(
+ std::shared_ptr<ModelHighAPI_Interface> setHorizontal(
const ModelHighAPI_RefAttr & theLine);
/// Set length
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setLength(
+ std::shared_ptr<ModelHighAPI_Interface> setLength(
const ModelHighAPI_RefAttr & theLine,
const ModelHighAPI_Double & theValue);
/// Set middle
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setMiddlePoint(
+ std::shared_ptr<ModelHighAPI_Interface> setMiddlePoint(
const ModelHighAPI_RefAttr & thePoint,
const ModelHighAPI_RefAttr & theLine);
/// Set parallel
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setParallel(
+ std::shared_ptr<ModelHighAPI_Interface> setParallel(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2);
/// Set perpendicular
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setPerpendicular(
+ std::shared_ptr<ModelHighAPI_Interface> setPerpendicular(
const ModelHighAPI_RefAttr & theLine1,
const ModelHighAPI_RefAttr & theLine2);
/// Set radius
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setRadius(
+ std::shared_ptr<ModelHighAPI_Interface> setRadius(
const ModelHighAPI_RefAttr & theCircleOrArc,
const ModelHighAPI_Double & theValue);
/// Set tangent
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setTangent(
+ std::shared_ptr<ModelHighAPI_Interface> setTangent(
const ModelHighAPI_RefAttr & theLine,
const ModelHighAPI_RefAttr & theCircle);
/// Set vertical
SKETCHAPI_EXPORT
- std::shared_ptr<ModelAPI_Feature> setVertical(
+ std::shared_ptr<ModelHighAPI_Interface> setVertical(
const ModelHighAPI_RefAttr & theLine);
/// Set constraint value
SKETCHAPI_EXPORT
void setValue(
- const std::shared_ptr<ModelAPI_Feature> & theConstraint,
+ const std::shared_ptr<ModelHighAPI_Interface> & theConstraint,
const ModelHighAPI_Double & theValue);
// TODO(spo): rename to selectFaces() or faces() (or add faces() -> list to SWIG)
TestFillet.py
TestRectangle.py
TestProjection.py
+ TestSplit.py
TestHighload.py
TestSnowflake.py)
--- /dev/null
+import model
+
+from ModelAPI import *
+
+SketchPointId = 'SketchPoint'
+SketchLineId = 'SketchLine'
+SketchArcId = 'SketchArc'
+SketchConstraintCoincidenceId = 'SketchConstraintCoincidence'
+SketchConstraintParallelId = 'SketchConstraintParallel'
+SketchConstraintTangentId = 'SketchConstraintTangent'
+SketchConstraintEqualId = 'SketchConstraintEqual'
+
+# Test split on line with one point
+model.begin()
+partSet = model.moduleDocument()
+Part_1 = model.addPart(partSet)
+Part_1_doc = Part_1.document()
+Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
+SketchLine_1 = Sketch_1.addLine(0, 50, 100, 50)
+SketchPoint_1 = Sketch_1.addPoint(50, 50)
+SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchPoint_1.coordinates(), SketchLine_1.result()[0])
+Sketch_1.addSplit(SketchLine_1, SketchPoint_1.coordinates(), SketchLine_1.endPoint())
+model.do()
+
+Sketch_1_feature = featureToCompositeFeature(Sketch_1.feature())
+idList = []
+for index in range(Sketch_1_feature.numberOfSubs()):
+ idList.append(Sketch_1_feature.subFeature(index).getKind())
+
+assert(idList.count(SketchLineId) == 2)
+assert(idList.count(SketchPointId) == 1)
+assert(idList.count(SketchConstraintCoincidenceId) == 2)
+assert(idList.count(SketchConstraintParallelId) == 1)
+# Test end
+
+# Test split on line with two points
+Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
+SketchLine_1 = Sketch_1.addLine(0, 50, 100, 50)
+SketchPoint_1 = Sketch_1.addPoint(25, 50)
+SketchPoint_2 = Sketch_1.addPoint(75, 50)
+SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchPoint_1.coordinates(), SketchLine_1.result()[0])
+SketchConstraintCoincidence_2 = Sketch_1.setCoincident(SketchPoint_2.coordinates(), SketchLine_1.result()[0])
+Sketch_1.addSplit(SketchLine_1, SketchPoint_1.coordinates(), SketchPoint_2.coordinates())
+model.do()
+
+Sketch_1_feature = featureToCompositeFeature(Sketch_1.feature())
+idList = []
+for index in range(Sketch_1_feature.numberOfSubs()):
+ idList.append(Sketch_1_feature.subFeature(index).getKind())
+
+assert(idList.count(SketchLineId) == 3)
+assert(idList.count(SketchPointId) == 2)
+assert(idList.count(SketchConstraintCoincidenceId) == 4)
+assert(idList.count(SketchConstraintParallelId) == 2)
+# Test end
+
+# Test split on circle with two points
+Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
+SketchCircle_1 = Sketch_1.addCircle(50, 50, 50)
+SketchPoint_1 = Sketch_1.addPoint(50, 0)
+SketchPoint_2 = Sketch_1.addPoint(50, 100)
+SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchPoint_1.coordinates(), SketchCircle_1.result()[0])
+SketchConstraintCoincidence_2 = Sketch_1.setCoincident(SketchPoint_2.coordinates(), SketchCircle_1.result()[0])
+Sketch_1.addSplit(SketchCircle_1, SketchPoint_1.coordinates(), SketchPoint_2.coordinates())
+model.do()
+
+Sketch_1_feature = featureToCompositeFeature(Sketch_1.feature())
+idList = []
+for index in range(Sketch_1_feature.numberOfSubs()):
+ idList.append(Sketch_1_feature.subFeature(index).getKind())
+
+assert(idList.count(SketchArcId) == 2)
+assert(idList.count(SketchPointId) == 2)
+assert(idList.count(SketchConstraintCoincidenceId) == 2)
+assert(idList.count(SketchConstraintTangentId) == 1)
+# Test end
+
+# Test split on arc with one point
+Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
+SketchArc_1 = Sketch_1.addArc(50, 50, 0, 50, 100, 50, True)
+Sketch_1.setFixed(SketchArc_1.startPoint())
+Sketch_1.setFixed(SketchArc_1.endPoint())
+Sketch_1.setRadius(SketchArc_1, 50)
+SketchPoint_1 = Sketch_1.addPoint(50, 100)
+SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchPoint_1.coordinates(), SketchArc_1.result()[0])
+Sketch_1.addSplit(SketchArc_1, SketchPoint_1.coordinates(), SketchArc_1.endPoint())
+model.do()
+
+Sketch_1_feature = featureToCompositeFeature(Sketch_1.feature())
+idList = []
+for index in range(Sketch_1_feature.numberOfSubs()):
+ idList.append(Sketch_1_feature.subFeature(index).getKind())
+
+assert(idList.count(SketchArcId) == 2)
+assert(idList.count(SketchPointId) == 1)
+assert(idList.count(SketchConstraintCoincidenceId) == 2)
+assert(idList.count(SketchConstraintEqualId) == 1)
+assert(idList.count(SketchConstraintTangentId) == 1)
+# Test end
+
+# Test split on arc with two points
+Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
+SketchArc_1 = Sketch_1.addArc(50, 50, 0, 50, 100, 50, True)
+Sketch_1.setFixed(SketchArc_1.startPoint())
+Sketch_1.setFixed(SketchArc_1.endPoint())
+Sketch_1.setRadius(SketchArc_1, 50)
+SketchPoint_1 = Sketch_1.addPoint(25, 93.301270189222)
+SketchPoint_2 = Sketch_1.addPoint(75, 93.301270189222)
+SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchPoint_1.coordinates(), SketchArc_1.result()[0])
+SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchPoint_2.coordinates(), SketchArc_1.result()[0])
+Sketch_1.addSplit(SketchArc_1, SketchPoint_1.coordinates(), SketchPoint_2.coordinates())
+model.do()
+
+Sketch_1_feature = featureToCompositeFeature(Sketch_1.feature())
+idList = []
+for index in range(Sketch_1_feature.numberOfSubs()):
+ idList.append(Sketch_1_feature.subFeature(index).getKind())
+
+assert(idList.count(SketchArcId) == 3)
+assert(idList.count(SketchPointId) == 2)
+assert(idList.count(SketchConstraintCoincidenceId) == 4)
+assert(idList.count(SketchConstraintEqualId) == 2)
+assert(idList.count(SketchConstraintTangentId) == 2)
+# Test end
+
+model.end()
+
+assert(model.checkPythonDump())