# CAD二次开发api
**Repository Path**: liu-xiaofan/cadapi
## Basic Information
- **Project Name**: CAD二次开发api
- **Description**: CAD二次开发api介绍
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://space.bilibili.com/2114059610
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 42
- **Created**: 2023-03-12
- **Last Updated**: 2023-03-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 前言
会持续更新CAD二次开发api功能介绍和视频,有问题可以私信联系我,也可以加群交流
[闻人南131的个人空间_哔哩哔哩_bilibili](https://space.bilibili.com/2114059610)

------
## 直线 Line
https://www.bilibili.com/video/BV1Ls4y1o7kh/

| 属性 | 中文 | 数据类型 | 作用 |
| :--------- | -------- | -------- | -------------------------- |
| Length | 长度 | double | 直线的长度 |
| Angle | 角度 | double | 直线的弧度,0~2π |
| Delta | 增量 | Vector3d | 起点到终点的向量 |
| Normal | 法向向量 | Vector3d | 直线所在平面的法向单位向量 |
| Thickness | 厚度 | double | |
| EndPoint | 终点 | Point3d | 直线的终点 |
| StartPoint | 起点 | Point3d | 直线的起点 |
| 方法 | 参数 | 说明 |
| ------------------------------------------------------------ | --------------------------------------------------- | ------------------------------------ |
| [Line( )](#Line1) | 无参数 | 构造函数:声明一条空的直线 |
| [Line](#Line2)
(
Point3d pointer1,
Point3d pointer2
) |
起点
终点
| 构造函数:声明从起点到终点的一条直线 |
```c#
Line line = new Line();
```
```c#
Point3d point1 = new Point3d(0, 0, 0);
Point3d point2 = new Point3d(10, 10, 0);
Line line = new Line(point1, point2);
```
------
## 圆 Circle
https://www.bilibili.com/video/BV1gY411673D/

| 属性 | 中文 | 数据类型 | 作用 |
| :------------ | ------------ | -------- | -------------------------- |
| Diameter | 直径 | double | 圆的直径 |
| Circumference | 周长 | double | 圆的周长 |
| Normal | 单位法向向量 | Vector3d | 圆所在的平面的单位法向向量 |
| Thickness | 厚度 | double | 圆的厚度 |
| Radius | 半径 | double | 圆的半径 |
| Center | 圆心 | Point3d | 圆的圆心 |
| 方法 | 参数 | 说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ---------------------------------- |
| [Circle( )](#Circle1) | 无参数 | 构造函数:声明一个空的圆 |
| [Circle](#Circle2)
(
Point3d center,
Vector3d normal,
double radius
) |
圆心
法向向量
半径
| 构造函数:声明一个确定圆心半径的圆 |
```c#
Circle circle = new Circle();
```
```c#
Point3d center = new Point3d(0, 0, 0);
Vector3d normal = Vector3d.ZAxis;
double radius = 5;
Circle circle = new Circle(center, normal, radius);
```
------
## 圆弧 Arc
https://www.bilibili.com/video/BV1fX4y1S7ad/

| 属性 | 中文 | 数据类型 | 作用 |
| :--------- | -------- | -------- | -------------------------- |
| TotalAngle | 总角度 | double | 圆弧的总弧度 |
| Length | 总长 | double | 圆弧的总长度 |
| Normal | 法向向量 | Vector3d | 圆弧所在平面的单位法向向量 |
| Thickness | 厚度 | double | 圆弧的厚度 |
| EndAngle | 终点角度 | double | 圆心到终点连线的弧度 |
| StartAngle | 起点角度 | double | 圆心到起点连线的弧度 |
| Radius | 半径 | double | 圆弧的半径 |
| Center | 圆心 | Point3d | 圆弧的圆心 |
**注意事项**:当Normal为-Z轴方向时,虽然圆弧任是根据右手定则逆时针的,但是从用户视角,圆弧变成了顺时针,圆弧起始弧度判断也从X轴变成了-X轴,在读取一些图纸中的圆弧时,需注意Normal方向。
| 方法 | 参数 | 说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| [Arc( )](#Arc1) | 无参数 | 构造函数:声明一个空的圆弧 |
| [Arc](#Arc2)
(
Point3d center,
double radius,
double startAngle,
double endAngle
) |
圆心
半径
起点角度
终点角度
| 构造函数:声明一个确定
圆心半径的起点终点的圆弧 |
| [Arc](#Arc3)
(
Point3d center,
Vector3d normal,
double radius,
double startAngle,
double endAngle
) |
圆心
法向向量
半径
起点角度
终点角度
| 构造函数:声明一个确定
圆心半径的起点终点的圆弧,
并且设置法向向量,可以控制圆弧的顺逆时针 |
```c#
Arc arc = new Arc();
```
```C#
Point3d center = Point3d.Origin;
double radius = 5;
double startAngle = 0;
double endAngle = Math.PI / 3;
Arc arc = new Arc(center, radius, startAngle, endAngle);
```
```c#
Point3d center = Point3d.Origin;
Vector3d normal = -Vector3d.ZAxis;
double radius = 5;
double startAngle = 0;
double endAngle = Math.PI / 3;
Arc arc = new Arc(center, normal, radius, startAngle, endAngle);
```
------
## 椭圆 Ellipse
https://www.bilibili.com/video/BV1HL41117dS/

| 属性 | 中文 | 数据类型 | 作用 |
| :---------- | -------- | -------- | -------------------------- |
| MinorRadius | 短轴半径 | double | 椭圆短轴的半径 |
| MajorRadius | 长轴半径 | double | 椭圆长轴的半径 |
| IsNull | 是否为空 | bool | 判断椭圆是否为空 |
| EndParam | 终点参数 | double | 椭圆终点的参数 |
| StartParam | 起点参数 | double | 椭圆起点的参数 |
| EndAngle | 终点角度 | double | 椭圆终点的弧度 |
| StartAngle | 起点角度 | double | 椭圆起点的弧度 |
| RadiusRatio | 半径比例 | double | 短轴半径/长轴半径 |
| MinorAxis | 短轴向量 | Vector3d | 椭圆短轴的向量 |
| MajorAxis | 长轴向量 | Vector3d | 椭圆长轴的方向 |
| Normal | 法向向量 | Vector3d | 椭圆所在平面的单位法向向量 |
| Center | 圆心 | Point3d | 椭圆的圆心 |
| 方法 | 参数 | 说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------------- |
| [Ellipse( )](#Ellipse1) | 无参数 | 构造函数:声明一个空的椭圆 |
| [Ellipse](#Ellipse2)
(
Point3d center,
Vector3d unitNormal,
Vector3d majorAxis,
double radiusRatio,
double startAngle,
double endAngle
) |
圆心
法向向量
长轴向量
半径比例
起始弧度
终止弧度
| 构造函数:声明一个确定参数的椭圆 |
| void [Set](#Ellipse3)
(
Point3d center,
Vector3d unitNormal,
Vector3d majorAxis,
double radiusRatio,
double startAngle,
double endAngle
) |
圆心
法向向量
长轴向量
半径比例
起始弧度
终止弧度
| 给一个椭圆设置参数 |
| double [GetParameterAtAngle](#Ellipse4)
(
double angle
) |
角度
| 获取指定角度处的参数 |
| double [GetAngleAtParameter](#Ellipse5)
(
double value
) |
参数
| 获取指定参数处的角度 |
```c#
Ellipse ellipse = new Ellipse();
```
```c#
Point3d center = new Point3d(0, 0, 0);
Vector3d unitNormal= Vector3d.ZAxis;
Vector3d majorAxis = new Vector3d(10, 0, 0);
double radiusRatio = 0.5;
double startAngle = 0;
double endAngle = Math.PI * 2;
Ellipse ellipse = new Ellipse(center, unitNormal, majorAxis, radiusRatio, startAngle, endAngle);
```
```c#
Ellipse ellipse = new Ellipse();
Point3d center = new Point3d(0, 0, 0);
Vector3d unitNormal = Vector3d.ZAxis;
Vector3d majorAxis = new Vector3d(10, 0, 0);
double radiusRatio = 0.5;
double startAngle = Math.PI / 3;
double endAngle = Math.PI / 3 * 2;
ellipse.Set(center, unitNormal, majorAxis, radiusRatio, startAngle, endAngle);
```
```C#
double value = ellipse.GetParameterAtAngle(Math.PI / 3);
```
```C#
double angle = ellipse.GetAngleAtParameter(2);
```
------
## 多段线 Polyline
https://www.bilibili.com/video/BV11g4y1E7iH/
| 属性 | 中文 | 数据类型 | 作用 |
| :--------------- | ------------ | -------- | ------------------------------------------------ |
| Length | 长度 | double | 多段线的长度 |
| HasWidth | 是否有宽度 | bool | 多段线是否有宽度 |
| HasBulges | 是否有凸度 | bool | 多段线是否有圆弧 |
| NumberOfVertices | 节点数 | int | 多段线的节点数量 |
| IsOnlyLines | 是否只有直线 | bool | 多段线是否全部由直线组成 |
| Normal | 法向向量 | Vector3d | 多段线所在平面的单位法向向量 |
| ConstantWidth | 全局宽度 | double | 多段线的全局宽度,宽度一致 |
| Thickness | 厚度 | double | 多段线的厚度 |
| Elevation | 高程 | double | 多段线的高程,即Z坐标 |
| Plinegen | 普林根 | bool | 关闭时节点会打断线型
打开时节点不会打断线型 |
| Closed | 是否闭合 | bool | 多段线是否闭合 |
| 方法 | 参数 | 说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| [Polyline( )](#Polyline1) | 无参数 | 构造函数:声明一个空的多段线 |
| [Polyline](#Polyline2)
(
int vertices
) |
节点数
| 构造函数:声明一个确定节点
数的多段线 |
| void [ConvertFrom](#Polyline3)
(
Entity entity,
bool transferId
) |
转化源
是否传递ID
| 从别的Entity转成Polyline
(目前只发现可以从
Polyline2d转) |
| Polyline2d [ConvertTo](#Polyline4)
(
bool transferId
) |
是否传递ID
| 把Polyline转成Polyline2d
参数涉及IdMapping
(目前我还不懂嘿嘿嘿) |
| Point3d [GetPoint3dAt](#Polyline5)
(
int value
) |
节点索引
| 获取指定节点索引处的点
注意索引不要超出 |
| SegmentType [GetSegmentType](#Polyline6)
(
int index
) |
段落索引
| 获取指定索引处的段落
的类型(线、圆弧等等) |
| LineSegment2d [GetLineSegment2dAt](#Polyline7)
(
int index
) |
段落索引
| 获取指定索引处的段落
的二维线段 |
| CircularArc2d [GetArcSegment2dAt](#Polyline8)
(
int index
) |
段落索引
| 获取指定索引处的段落
的二维圆弧 |
| LineSegment3d [GetLineSegmentAt](#Polyline9)
(
int index
) |
段落索引
| 获取指定索引处的段落
的三维线段 |
| CircularArc3d [GetArcSegmentAt](#Polyline10)
(
int index
) |
段落索引
| 获取指定索引处的段落
的三维圆弧 |
| bool [OnSegmentAt](#Polyline11)
(
int index,
Point2d pt2d,
double value
) |
段落索引
二维点
不知道
| 判断一个点是否在指定
索引的段落上
第三个参数不知道啥意思 |
| void [AddVertexAt](#Polyline12)
(
int index,
Point2d pt,
double bulge,
double startWidth,
double endWidth
) |
节点索引
二维点
凸度
起始宽度
终止宽度
| 在指定索引的节点添加一个点 |
| void [RemoveVertexAt](#Polyline13)
(
int index
) |
节点索引
| 删除指定索引的节点 |
| Point2d [GetPoint2dAt](#Polyline14)
(
int index
) |
节点索引
| 获取指定索引处节点的
二维点 |
| void [SetPointAt](#Polyline15)
(
int index,
Point2d pt
) |
节点索引
二维点
| 修改指定索引处节点的
二维点 |
| double [GetBulgeAt](#Polyline16)
(
int index
) |
节点索引
| 获取指定索引处节点的
凸度 |
| void [SetBulgeAt](#Polyline17)
(
int index,
double bulge
) |
节点索引
凸度
| 设置指定索引处节点的
凸度 |
| double [GetStartWidthAt](#Polyline18)
(
int index
) |
节点索引
| 获取指定索引处节点的
起始宽度 |
| double [GetEndWidthAt](#Polyline19)
(
int index
) |
节点索引
| 获取指定索引处节点的
终止宽度 |
| void [SetStartWidthAt](#Polyline20)
(
int index,
double startWidth
) |
节点索引
起始宽度
| 设置指定索引处节点的
起始宽度 |
| void [SetEndWidthAt](#Polyline21)
(
int index,
double endWidth
) |
节点索引
终止宽度
| 设置指定索引处节点的
终止宽度 |
| void [MinimizeMemory](#Polyline22)() | 无参数 | 最小化内存 |
| void [MaximizeMemory](#Polyline23)() | 无参数 | 最大化内存 |
| void [Reset](#Polyline24)
(
bool reuse,
int vertices
) | 不知道 | 清空多段线 |
```c#
Polyline polyline = new Polyline();
```
```c#
int vertices = 5;
Polyline polyline = new Polyline(vertices);
```
```c#
Polyline polyline = new Polyline();
polyline.ConvertFrom(polyline2D, false);
```
```c#
Polyline2d polyline2D = polyline.ConvertTo(false);
```
```c#
List points = new List();
for (int i = 0; i < polyline.NumberOfVertices; i++)
{
Point3d point3D = polyline.GetPoint3dAt(i);
points.Add(point3D);
}
```
```c#
int index = 1;
SegmentType segmentType = polyline.GetSegmentType(index);
```
```c#
int index = 1;
LineSegment2d lineSegment2D = polyline.GetLineSegment2dAt(index);
```
```c#
int index = 1;
CircularArc2d circularArc2D = polyline.GetArcSegment2dAt(index);
```
```c#
int index = 1;
LineSegment3d lineSegment3D=polyline.GetLineSegmentAt(index);
```
```c#
int index = 1;
CircularArc3d circularArc3D=polyline.GetArcSegmentAt(index);
```
```c#
Point3d pt3d = polyline.GetPointAtDist(1200);
Point2d pt2d = new Point2d(pt3d.X, pt3d.Y);
double vaule = 60;
bool b = polyline.OnSegmentAt(index, pt2d, vaule);
```
```c#
Polyline polyline = new Polyline();
polyline.AddVertexAt(0, new Point2d(0, 0), 0, 0, 0);
polyline.AddVertexAt(1, new Point2d(10, 0), 0, 0, 0);
polyline.AddVertexAt(1, new Point2d(5, 5), 0, 2, 1);
```
```c#
polyline.RemoveVertexAt(1);
```
```c#
Point2d point2D = polyline.GetPoint2dAt(1);
```
```c#
Point2d point2D = new Point2d(5, 5);
polyline.SetPointAt(1, point2D);
```
```c#
double bulge = polyline.GetBulgeAt(0);
```
```c#
polyline.SetBulgeAt(0, 2);
```
```c#
double startWidth=polyline.GetStartWidthAt(0);
```
```c#
double endWidth = polyline.GetEndWidthAt(0);
```
```c#
polyline.SetStartWidthAt(0, 2);
```
```c#
polyline.SetEndWidthAt(0, 2);
```
```c#
polyline.MinimizeMemory();
```
```c#
polyline.MaximizeMemory();
```
```c#
polyline.Reset(true, 1);
```
------
## 多线 Mline
https://www.bilibili.com/video/BV1xs4y1V7SM/
| 属性 | 中文 | 数据类型 | 作用 |
| :--------------- | ------------ | ------------------ | -------------------------------- |
| NumberOfVertices | 节点数 | int | 多线的节点数 |
| SupressEndCaps | 抑制终点封口 | bool | 是否抑制终点的封口 |
| SupressStartCaps | 抑制起点封口 | bool | 是否抑制起点的封口 |
| IsClosed | 是否封闭 | bool | 多线是否封闭 |
| Normal | 法向向量 | Vector3d | 多线所在平面的
单位法向向量 |
| Scale | 比例 | double | 比例,两根线的间距 |
| Justification | 对正 | MlineJustification | 对正模式 |
| Style | 样式 | ObjectId | 多线的样式 |
| 方法 | 参数 | 说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| [Mline](#Mline1)( ) | 无参数 | 构造函数:声明一个空的多线 |
| void [AppendSegment](#Mline2)
(
Point3d newVertex
) |
新的点
| 在多线末尾增加一个点 |
| void [RemoveLastSegment](#Mline3)
(
Point3d lastVertex
) |
最后的点
| 移除最后一个点,参数无所谓 |
| void [MoveVertexAt](#Mline4)
(
int index,
Point3d newPosition
) |
节点索引
新的点
| 移动指定索引处的节点 |
| int [Element](#Mline5)
(
Point3d pt
) | | **未知方法,知道的联系我** |
| Point3d [VertexAt](#Mline6)
(
int index
) |
节点索引
| 获得指定索引处的节点 |
| Point3d [GetClosestPointTo](#Mline7)
(
Point3d givenPoint,
Vector3d normal,
bool extend,
bool excludeCaps
) |
三维点
向量
是否延长
排除封口
| 点到多线的最近点,
相当于取点在向量上的射线
与多线求最近点
如果延长,则可以取延长线
上的最近点
排除封口的话会忽略封口,
求到两根线的最近点 |
| Point3d [GetClosestPointTo](#Mline8)
(
Point3d givenPoint,
bool extend,
bool excludeCaps
) |
三维点
是否延长
排除封口
| 点到多线的最近点,
如果延长,则可以取延长线
上的最近点
排除封口的话会忽略封口,
求到两根线的最近点 |
```c#
Database database = HostApplicationServices.WorkingDatabase;
string name = "STANDARD";
ObjectId objectId = ObjectId.Null;
using (Transaction trans = database.TransactionManager.StartTransaction())
{
DBDictionary ss = (DBDictionary)database.MLStyleDictionaryId.GetObject(OpenMode.ForRead);
foreach (var item in ss)
{
if (item.Key.ToUpper() == name)
{
objectId = item.Value;
}
}
}
Mline mline = new Mline();
mline.Style = objectId;
mline.Normal = Vector3d.ZAxis;
```
```c#
Point3d point3D1 = new Point3d(0, 0, 0);
Point3d point3D2 = new Point3d(10, 10, 0);
mline.AppendSegment(point3D1);
mline.AppendSegment(point3D2);
```
```c#
Point3d lastVertex = new Point3d();
mline.RemoveLastSegment(lastVertex);
```
```c#
Point3d newPosition = new Point3d(10, 20, 0);
mline.MoveVertexAt(1, newPosition);
```
```c#
未知。希望你的补充
```
```c#
Point3d point3D = mline.VertexAt(1);
```
```c#
Point3d pt = new Point3d(0, 5, 0);
Vector3d vector3D = new Vector3d(-1, -1, 0);
var po = mline.GetClosestPointTo(pt, vector3D, false, false);
```
```c#
Point3d pt = new Point3d(0, 5, 0);
var po = mline.GetClosestPointTo(pt, false, false);
```
------
## 三维多段线 Polyline3d

| 属性 | 中文 | 数据类型 | 作用 |
| :------- | ---- | ---------- | -------------- |
| Length | 长度 | double | 多段线的长度 |
| PolyType | 类型 | Poly3dType | 多段线的类型 |
| Closed | 闭合 | bool | 多段线是否闭合 |
| 方法 | 参数 | 说明 |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ---------------------------------------------------------- |
| [Polyline3d](#Polyline3d1)( ) | 无参数 | 构造函数:声明一条空的
三维多段线 |
| [Polyline3d](#Polyline3d2)
(
Poly3dType type,
Point3dCollection vertices,
bool closed
) |
多段线类型
点集
是否闭合
| 构造函数:声明一条给定类型
确定点集和闭合的三维多段线 |
| void [ConvertToPolyType](#Polyline3d3)
(
Poly3dType newVal
) |
多段线类型
| 转化多段线类型 |
| void [Straighten](#Polyline3d4)( ) | 无参数 | 去除多段线类型 |
| void [SplineFit](#Polyline3d5)
(
Poly3dType value,
int segments
) |
多段线类型
段数
| 修改多段线类型,设置段数,
段数越多,越平滑 |
| void [SplineFit](#Polyline3d6)( ) | 无参数 | 多段线类型为设置为三次 |
| ObjectId [AppendVertex](#Polyline3d7)
(
PolylineVertex3d vertexToAppend
) |
多段线节点
| 给多段线增加一个点 |
| ObjectId [InsertVertexAt](#Polyline3d8)
(
ObjectId indexVertexId,
PolylineVertex3d newVertex
) |
插入点的id
新多段线点
| 在指定点插入新的点
(需有插入点的id) |
| void [InsertVertexAt](#Polyline3d9)
(
PolylineVertex3d indexVertex,
PolylineVertex3d newVertex
) |
插入处的点
新多段线点
| 在指定点插入新的点 |
| IEnumerator [GetEnumerator](#Polyline3d10)( ) | 无参数 | 枚举器(不知道咋用,
只知道可以foreach遍历每个点) |
```c#
Polyline3d polyline3D = new Polyline3d();
```
```c#
Poly3dType poly3DType = Poly3dType.SimplePoly;
Point3dCollection point3DCollection = new Point3dCollection();
point3DCollection.Add(new Point3d(0, 0, 0));
point3DCollection.Add(new Point3d(10, 0, 0));
point3DCollection.Add(new Point3d(10, 10, 0));
bool isClosed = true;
Polyline3d polyline3D = new Polyline3d(poly3DType, point3DCollection, isClosed);
```
```c#
Poly3dType poly3DType = Poly3dType.CubicSplinePoly;
polyline3D.ConvertToPolyType(poly3DType);
```
```c#
polyline3D.Straighten();
```
```c#
polyline3D.SplineFit(Poly3dType.QuadSplinePoly, 3);
```
```c#
polyline3D.SplineFit();
```
```c#
PolylineVertex3d polylineVertex3D = new PolylineVertex3d(new Point3d(10, 10, 0));
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans=db.TransactionManager.StartTransaction())
{
polyline3D = polyline3D.ObjectId.GetObject(OpenMode.ForWrite) as Polyline3d;
polyline3D.AppendVertex(polylineVertex3D);
trans.Commit();
}
```
```c#
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans= db.TransactionManager.StartTransaction())
{
polyline3D = polyline3D.ObjectId.GetObject(OpenMode.ForWrite) as Polyline3d;
int n = 0;
foreach (ObjectId item in polyline3D)
{
if (n == 1)
{
PolylineVertex3d polylineVertex3D = new PolylineVertex3d(new Point3d(20, 10, 0));
polyline3D.InsertVertexAt(item, polylineVertex3D);
break;
}
n++;
}
trans.Commit();
}
```
```c#
int n = 0;
foreach (PolylineVertex3d item in polyline3D)
{
if (n == 1)
{
PolylineVertex3d polylineVertex3D = new PolylineVertex3d(new Point3d(20, 10, 0));
polyline3D.InsertVertexAt(item, polylineVertex3D);
break;
}
n++;
}
```
```c#
foreach (PolylineVertex3d item in polyline3D)
{
}
```
------
## 二维多段线 Polyline2d
| 属性 | 中文 | 数据类型 | 作用 |
| :------------------- | -------- | ---------- | ------------------------------------------------------------ |
| Length | 长度 | double | 多段线的长度 |
| ConstantWidth | 全局宽度 | double | 多段线的全局宽度 |
| LinetypeGenerationOn | 线型生成 | bool | 关闭时节点会打断线型
打开时节点不会打断线型 |
| Elevation | 高程 | double | 多段线的标高(z轴) |
| Normal | 法向向量 | Vector3d | 单位法向向量 |
| Thickness | 厚度 | double | 多段线的厚度 |
| DefaultEndWidth | | double | |
| DefaultStartWidth | | double | |
| Closed | 闭合 | bool | 多段线是否闭合 |
| PolyType | 拟合方式 | Poly2dType | SimplePoly 无
FitCurvePoly 曲线拟合
QuadSplinePoly 二次
QuadSplinePoly 三次 |
| 方法 | 参数 | 说明 |
| ------------------------------------------------------------ | -------------------------------------------------- | -------------------------------- |
| Polyline2d( ) | 无参数 | 构造函数:声明一条空的二维多段线 |
| Polyline2d
(
Poly2dType type,
Point3dCollection vertices,
double elevation,
bool closed,
double startWidth,
double endWidth,
DoubleCollection bulges
) | | |
| void ConvertToPolyType
(
Poly2dType newVal
) |
拟合方式
| 转换拟合方式 |
| void Straighten( ) | 无参数 | |
| void SplineFit
(
Poly2dType value,
int segments
) | | |
| void SplineFit( ) | | |
| void CurveFit( ) | | |
| void NonDBAppendVertex
(
Vertex2d vertexToAppend
) | | |
| ObjectId AppendVertex
(
Vertex2d vertexToAppend
) | | |
| ObjectId InsertVertexAt
(
ObjectId vertexId,
Vertex2d newVertex
) | | |
| void InsertVertexAt
(
Vertex2d indexVertex,
Vertex2d newVertex
) | | |
| IEnumerator GetEnumerator( ) | | |
| Point3d VertexPosition
(
Vertex2d vertex
) | | |