AMCAX Kernel
Geometry kernel for CAD/CAE/CAM
九韶内核 1.0.0.0
载入中...
搜索中...
未找到
几何约束求解器

2D 约束求解

约束元素类型

约束元素类型包括:点,线段,圆,椭圆,椭圆弧,抛物线弧。接下来,我们将介绍如何创建这些约束元素。

AMCAX::GCS::Point2d p1{ 1., 2. };
AMCAX::GCS::Status status1 = gcsSystem.Create2dPoint(handlePoint1, p1);
std::cout << status1 << std::endl;
GCSSystem 的包装器
定义 AMCAXGCS.h:288
Status Create2dPoint(GCSWVarGeomHandle &h, const Point2d &point)
在二维空间中创建一个点
GCSVarGeomHandle 的包装器
定义 AMCAXGCS.h:210
二维点
定义 AMCAXGCS.h:102

线段

AMCAX::GCS::Point2d p1{ 1., 2. };
AMCAX::GCS::Status status1 = gcsSystem.Create2dPoint(handlePoint1, p1);
AMCAX::GCS::Point2d p2{ 3., 4. };
gcsSystem.Create2dPoint(handlePoint2, p2);
AMCAX::GCS::Status status2 = gcsSystem.Create2dLine(handleLine, handlePoint1, handlePoint2);
std::cout << status2 << std::endl;
Status Create2dLine(GCSWVarGeomHandle &h, const GCSWVarGeomHandle &point0, const GCSWVarGeomHandle &point1)
在二维空间中创建线段

AMCAX::GCS::Point2d center{ 0., 0. };
gcsSystem.Create2dPoint(handlecenter, center);
AMCAX::GCS::Status status3 = gcsSystem.Create2dCircle(handleCircle, handlecenter, 2.);
std::cout << status3 << std::endl;
Status Create2dCircle(GCSWVarGeomHandle &h, const GCSWVarGeomHandle &center, double radius)
在二维空间中创建圆

椭圆

AMCAX::GCS::GCSWVarGeomHandle handleEllipse, h_center;
gcsSystem.Create2dPoint(h_center, { 0,0 });
AMCAX::GCS::Vector2d majorAxis{ 1.,0. };
AMCAX::GCS::Vector2d minorAxis{ 0.,1. };
AMCAX::GCS::Status status4 = gcsSystem.Create2dEllipse(handleEllipse, h_center, majorAxis, 2., minorAxis, 1.);
std::cout << status4 << std::endl;
Status Create2dEllipse(GCSWVarGeomHandle &h, const GCSWVarGeomHandle &center, const Vector2d &majorAxis, double majorRadius, const Vector2d &minorAxis, double minorRadius)
在二维空间中创建椭圆
二维向量
定义 AMCAXGCS.h:110

椭圆弧

AMCAX::GCS::Vector2d majorAxis{ 1.,0. };
AMCAX::GCS::Vector2d minorAxis{ 0.,1. };
AMCAX::GCS::GCSWVarGeomHandle handleArcOfEllipse;
AMCAX::GCS::GCSWVarGeomHandle handleArcOfEllipsestart;
AMCAX::GCS::GCSWVarGeomHandle handleArcOfEllipseend, h_center1;
gcsSystem.Create2dPoint(h_center1, { 0,0 });
AMCAX::GCS::Point2d start{ 2., 0. };
AMCAX::GCS::Point2d end{ -2., 0. };
gcsSystem.Create2dPoint(handleArcOfEllipsestart, start);
gcsSystem.Create2dPoint(handleArcOfEllipseend, end);
double range = M_PI;
gcsSystem.Create2dPoint(handleArcOfEllipsestart, start);
gcsSystem.Create2dPoint(handleArcOfEllipseend, end);
AMCAX::GCS::Status status5 = gcsSystem.Create2dArcOfEllipse(handleArcOfEllipse, h_center1, majorAxis, 2., minorAxis, 1., handleArcOfEllipsestart, handleArcOfEllipseend, range);
std::cout << status5 << std::endl;
Status Create2dArcOfEllipse(GCSWVarGeomHandle &h, const GCSWVarGeomHandle &center, const Vector2d &majorAxis, double majorRadius, const Vector2d &minorAxis, double minorRadius, const GCSWVarGeomHandle &start, const GCSWVarGeomHandle &end, double range=0)
在二维空间中创建椭圆弧

抛物线弧

AMCAX::GCS::GCSWVarGeomHandle handleArcOfParabola;
AMCAX::GCS::GCSWVarGeomHandle handleArcOfParabolafocus;
AMCAX::GCS::GCSWVarGeomHandle handleArcOfParabolavertex;
AMCAX::GCS::GCSWVarGeomHandle handleArcOfParabolastart;
AMCAX::GCS::GCSWVarGeomHandle handleArcOfParabolaend;
AMCAX::GCS::Point2d focus{ 1., 0. };
AMCAX::GCS::Point2d vertex{ 0., 0. };
AMCAX::GCS::Point2d apstart{ 1., 2. };
AMCAX::GCS::Point2d apend{ 1., -2. };
gcsSystem.Create2dPoint(handleArcOfParabolafocus, focus);
gcsSystem.Create2dPoint(handleArcOfParabolavertex, vertex);
gcsSystem.Create2dPoint(handleArcOfParabolastart, apstart);
gcsSystem.Create2dPoint(handleArcOfParabolaend, apend);
AMCAX::GCS::Status status6 = gcsSystem.Create2dArcOfParabola(handleArcOfParabola, handleArcOfParabolafocus, vertex, handleArcOfParabolastart, handleArcOfParabolaend);
std::cout << status6 << std::endl;
Status Create2dArcOfParabola(GCSWVarGeomHandle &h, const GCSWVarGeomHandle &focus, const Point2d &vertex, const GCSWVarGeomHandle &start, const GCSWVarGeomHandle &end)
在二维空间中创建抛物线弧

约束种类

约束种类包括平行、垂直、角度、距离、同心、对称、相等。
建设中。

支持检测冗余约束条件

建设中。

3D约束求解

约束元素类型

约束元素类型包括点、线、平面。
建设中。

约束种类

约束类型包括平行、角度、距离。
建设中。