//==================================================================================================
ConstructionAPI_Point::ConstructionAPI_Point(const std::shared_ptr<ModelAPI_Feature>& theFeature,
const ModelHighAPI_Selection& theObject,
- const bool theIsCircularEdge)
+ const bool theIsCircularEdge,
+ const bool theIsXYZSelection)
: ModelHighAPI_Interface(theFeature)
{
if (initialize())
{
if (theIsCircularEdge) {
setByCenterOfCircle(theObject);
- } else if (theObject.shapeType() == "VERTEX") {
+ } else if (theObject.shapeType() == "VERTEX" && theIsXYZSelection) {
// This is tricky way to get vertex shape.
fillAttribute(theObject, mypointToProject);
GeomShapePtr aShape = mypointToProject->value();
std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(ConstructionAPI_Point::ID());
return PointPtr(new ConstructionAPI_Point(aFeature, theObject, theIsCircularEdge));
}
+
+//==================================================================================================
+PointPtr addPointXYZ(const std::shared_ptr<ModelAPI_Document> & thePart,
+ const ModelHighAPI_Selection& theObject)
+{
+ std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(ConstructionAPI_Point::ID());
+ return PointPtr(new ConstructionAPI_Point(aFeature, theObject, false, true));
+}
const ModelHighAPI_Selection& theObject3);
/// Constructor with values: object and circular edge flag.
+ /// May be used for creation of point by coordinates using selection-vertex.
CONSTRUCTIONAPI_EXPORT
ConstructionAPI_Point(const std::shared_ptr<ModelAPI_Feature>& theFeature,
const ModelHighAPI_Selection& theObject,
- const bool theIsCircularEdge = false);
+ const bool theIsCircularEdge = false,
+ const bool theIsXYZSelection = false);
/// Destructor.
CONSTRUCTIONAPI_EXPORT
const ModelHighAPI_Selection& theObject,
const bool theIsCircularEdge = false);
+/// \ingroup CPPHighAPI
+/// \brief Create Point feature by coordinates using the selected vertex.
+CONSTRUCTIONAPI_EXPORT
+PointPtr addPointXYZ(const std::shared_ptr<ModelAPI_Document> & thePart,
+ const ModelHighAPI_Selection& theObject);
+
#endif /* SRC_CONSTRUCTIONAPI_CONSTRUCTIONAPI_POINT_H_ */
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
+from SketchAPI import *
from salome.shaper import model
model.begin()
partSet = model.moduleDocument()
Part_1 = model.addPart(partSet)
Part_1_doc = Part_1.document()
-Box_1 = model.addBox(Part_1_doc, 10, 10, 10)
-Point_2 = model.addPoint(Part_1_doc, 10, 0, 10)
+
+Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("YOZ"))
+SketchLine_1 = Sketch_1.addLine(10, 10, 0, 10)
+SketchLine_2 = Sketch_1.addLine(0, 10, 0, 0)
+SketchLine_3 = Sketch_1.addLine(0, 0, 10, 0)
+SketchLine_4 = Sketch_1.addLine(10, 0, 10, 10)
+SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchLine_4.endPoint(), SketchLine_1.startPoint())
+SketchConstraintCoincidence_2 = Sketch_1.setCoincident(SketchLine_1.endPoint(), SketchLine_2.startPoint())
+SketchConstraintCoincidence_3 = Sketch_1.setCoincident(SketchLine_2.endPoint(), SketchLine_3.startPoint())
+SketchConstraintCoincidence_4 = Sketch_1.setCoincident(SketchLine_3.endPoint(), SketchLine_4.startPoint())
+SketchConstraintHorizontal_1 = Sketch_1.setHorizontal(SketchLine_1.result())
+SketchConstraintVertical_1 = Sketch_1.setVertical(SketchLine_2.result())
+SketchConstraintHorizontal_2 = Sketch_1.setHorizontal(SketchLine_3.result())
+SketchConstraintVertical_2 = Sketch_1.setVertical(SketchLine_4.result())
+SketchConstraintLength_1 = Sketch_1.setLength(SketchLine_1.result(), 10)
+SketchConstraintLength_2 = Sketch_1.setLength(SketchLine_4.result(), 10)
+SketchProjection_1 = Sketch_1.addProjection(model.selection("VERTEX", "PartSet/Origin"), False)
+SketchPoint_1 = SketchProjection_1.createdFeature()
+SketchConstraintCoincidence_5 = Sketch_1.setCoincident(SketchLine_2.endPoint(), SketchAPI_Point(SketchPoint_1).coordinates())
model.do()
+Extrusion_1 = model.addExtrusion(Part_1_doc, [model.selection("FACE", "Sketch_1/Face-SketchLine_1r-SketchLine_2f-SketchLine_3f-SketchLine_4f")], model.selection(), 10, 0)
+Point_2 = model.addPointXYZ(Part_1_doc, model.selection("VERTEX", "[Extrusion_1_1/Generated_Face&Sketch_1/SketchLine_1][Extrusion_1_1/Generated_Face&Sketch_1/SketchLine_2][Extrusion_1_1/To_Face]"))
model.end()
from GeomAPI import GeomAPI_Vertex