C# Cad2016二次开发api(三)

直线 Line

C# Cad2016二次开发api(三)_第1张图片

属性 中文 数据类型 作用
Length 长度 double 直线的长度
Angle 角度 double 直线的弧度,0~2π
Delta 增量 Vector3d 起点到终点的向量
Normal 法向向量 Vector3d 直线所在平面的法向单位向量
Thickness 厚度 double
EndPoint 终点 Point3d 直线的终点
StartPoint 起点 Point3d 直线的起点
方法 参数 说明
Line( ) 无参数 构造函数:声明一条空的直线
Line
(
   Point3d pointer1,
   Point3d pointer2
)


起点
终点
构造函数:声明从起点到终点的一条直线

Line line = new Line();

Point3d point1 = new Point3d(0, 0, 0);
Point3d point2 = new Point3d(10, 10, 0);
Line line = new Line(point1, point2);

圆 Circle

C# Cad2016二次开发api(三)_第2张图片

属性 中文 数据类型 作用
Diameter 直径 double 圆的直径
Circumference 周长 double 圆的周长
Normal 单位法向向量 Vector3d 圆所在的平面的单位法向向量
Thickness 厚度 double 圆的厚度
Radius 半径 double 圆的半径
Center 圆心 Point3d 圆的圆心
方法 参数 说明
Circle( ) 无参数 构造函数:声明一个空的圆
Circle
(
   Point3d center,
   Vector3d normal,
   double radius
)


圆心
法向向量
半径
构造函数:声明一个确定圆心半径的圆

Circle circle = new Circle();

Point3d center = new Point3d(0, 0, 0);
Vector3d normal = Vector3d.ZAxis;
double radius = 5;
Circle circle = new Circle(center, normal, radius);

圆弧 Arc

C# Cad2016二次开发api(三)_第3张图片

属性 中文 数据类型 作用
TotalAngle 总角度 double 圆弧的总弧度
Length 总长 double 圆弧的总长度
Normal 法向向量 Vector3d 圆弧所在平面的单位法向向量
Thickness 厚度 double 圆弧的厚度
EndAngle 终点角度 double 圆心到终点连线的弧度
StartAngle 起点角度 double 圆心到起点连线的弧度
Radius 半径 double 圆弧的半径
Center 圆心 Point3d 圆弧的圆心

注意事项:当Normal为-Z轴方向时,虽然圆弧任是根据右手定则逆时针的,但是从用户视角,圆弧变成了顺时针,圆弧起始弧度判断也从X轴变成了-X轴,在读取一些图纸中的圆弧时,需注意Normal方向。

方法 参数 说明
Arc( ) 无参数 构造函数:声明一个空的圆弧
Arc
(
   Point3d center,
   double radius,
   double startAngle,
  double endAngle
)


圆心
半径
起点角度
终点角度
构造函数:声明一个确定
圆心半径的起点终点的圆弧
Arc
(
   Point3d center,
   Vector3d normal,
   double radius,
   double startAngle,
  double endAngle
)


圆心
法向向量
半径
起点角度
终点角度
构造函数:声明一个确定
圆心半径的起点终点的圆弧,
并且设置法向向量,可以控制圆弧的顺逆时针

Arc arc = new Arc();

Point3d center = Point3d.Origin;
double radius = 5;
double startAngle = 0;
double endAngle = Math.PI / 3;
Arc arc = new Arc(center, radius, startAngle, endAngle);

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

C# Cad2016二次开发api(三)_第4张图片

属性 中文 数据类型 作用
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( ) 无参数 构造函数:声明一个空的椭圆
Ellipse
(
   Point3d center,
   Vector3d unitNormal,
   Vector3d majorAxis,
  double radiusRatio,
  double startAngle,
  double endAngle
)


圆心
法向向量
长轴向量
半径比例
起始弧度
终止弧度
构造函数:声明一个确定参数的椭圆
void Set
(
   Point3d center,
   Vector3d unitNormal,
   Vector3d majorAxis,
  double radiusRatio,
  double startAngle,
  double endAngle
)


圆心
法向向量
长轴向量
半径比例
起始弧度
终止弧度
给一个椭圆设置参数
double GetParameterAtAngle
(
  double angle
)


角度
获取指定角度处的参数
double GetAngleAtParameter
(
  double value
)


参数
获取指定参数处的角度

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 = 0;
double endAngle = Math.PI * 2;
Ellipse ellipse = new Ellipse(center, unitNormal, majorAxis, radiusRatio, startAngle, endAngle);

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);

double value = ellipse.GetParameterAtAngle(Math.PI / 3);

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( ) 无参数 构造函数:声明一个空的多段线
Polyline
(
  int vertices
)


节点数
构造函数:声明一个确定节点
数的多段线
void ConvertFrom
(
  Entity entity,
  bool transferId
)


转化源
是否传递ID
从别的Entity转成Polyline
(目前只发现可以从
Polyline2d转)
Polyline2d ConvertTo
(
  bool transferId
)


是否传递ID
把Polyline转成Polyline2d
参数涉及IdMapping
(目前我还不懂嘿嘿嘿)
Point3d GetPoint3dAt
(
  int value
)


节点索引
获取指定节点索引处的点
注意索引不要超出
SegmentType GetSegmentType
(
  int index
)


段落索引
获取指定索引处的段落
的类型(线、圆弧等等)
LineSegment2d GetLineSegment2dAt
(
  int index
)


段落索引
获取指定索引处的段落
的二维线段
CircularArc2d GetArcSegment2dAt
(
  int index
)


段落索引
获取指定索引处的段落
的二维圆弧
LineSegment3d GetLineSegmentAt
(
  int index
)


段落索引
获取指定索引处的段落
的三维线段
CircularArc3d GetArcSegmentAt
(
  int index
)


段落索引
获取指定索引处的段落
的三维圆弧
bool OnSegmentAt
(
  int index,
  Point2d pt2d,
  double value
)


段落索引
二维点
不知道
判断一个点是否在指定
索引的段落上
第三个参数不知道啥意思
void AddVertexAt
(
  int index,
  Point2d pt,
  double bulge,
  double startWidth,
  double endWidth
)


节点索引
二维点
凸度
起始宽度
终止宽度
在指定索引的节点添加一个点
void RemoveVertexAt
(
  int index
)


节点索引
删除指定索引的节点
Point2d GetPoint2dAt
(
  int index
)


节点索引
获取指定索引处节点的
二维点
void SetPointAt
(
  int index,
  Point2d pt
)


节点索引
二维点
修改指定索引处节点的
二维点
double GetBulgeAt
(
  int index
)


节点索引
获取指定索引处节点的
凸度
void SetBulgeAt
(
  int index,
  double bulge
)


节点索引
凸度
设置指定索引处节点的
凸度
double GetStartWidthAt
(
  int index
)


节点索引
获取指定索引处节点的
起始宽度
double GetEndWidthAt
(
  int index
)


节点索引
获取指定索引处节点的
终止宽度
void SetStartWidthAt
(
  int index,
  double startWidth
)


节点索引
起始宽度
设置指定索引处节点的
起始宽度
void SetEndWidthAt
(
  int index,
  double endWidth
)


节点索引
终止宽度
设置指定索引处节点的
终止宽度
void MinimizeMemory() 无参数 最小化内存
void MaximizeMemory() 无参数 最大化内存
void Reset
(
  bool reuse,
  int vertices
)
不知道 清空多段线

Polyline polyline = new Polyline();

int vertices = 5;
Polyline polyline = new Polyline(vertices);

Polyline polyline = new Polyline();
polyline.ConvertFrom(polyline2D, false);

Polyline2d polyline2D = polyline.ConvertTo(false);

List points = new List();
for (int i = 0; i < polyline.NumberOfVertices; i++)
{
    Point3d point3D = polyline.GetPoint3dAt(i);
    points.Add(point3D);
}

int index = 1;
SegmentType segmentType = polyline.GetSegmentType(index);

int index = 1;
LineSegment2d lineSegment2D = polyline.GetLineSegment2dAt(index);

int index = 1;
CircularArc2d circularArc2D = polyline.GetArcSegment2dAt(index);

int index = 1;
LineSegment3d lineSegment3D=polyline.GetLineSegmentAt(index);

int index = 1;
CircularArc3d circularArc3D=polyline.GetArcSegmentAt(index);

Point3d pt3d = polyline.GetPointAtDist(1200);
Point2d pt2d = new Point2d(pt3d.X, pt3d.Y);
double vaule = 60;
bool b = polyline.OnSegmentAt(index, pt2d, vaule);

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);

polyline.RemoveVertexAt(1);

Point2d point2D = polyline.GetPoint2dAt(1);

Point2d point2D = new Point2d(5, 5);
polyline.SetPointAt(1, point2D);

double bulge = polyline.GetBulgeAt(0); 

polyline.SetBulgeAt(0, 2);

double startWidth=polyline.GetStartWidthAt(0);

double endWidth = polyline.GetEndWidthAt(0);

polyline.SetStartWidthAt(0, 2);

 polyline.SetEndWidthAt(0, 2);

 polyline.MinimizeMemory();

 polyline.MaximizeMemory();

polyline.Reset(true, 1); 

多线 Mline

属性 中文 数据类型 作用
NumberOfVertices 节点数 int 多线的节点数
SupressEndCaps 抑制终点封口 bool 是否抑制终点的封口
SupressStartCaps 抑制起点封口 bool 是否抑制起点的封口
IsClosed 是否封闭 bool 多线是否封闭
Normal 法向向量 Vector3d 多线所在平面的
单位法向向量
Scale 比例 double 比例,两根线的间距
Justification 对正 MlineJustification 对正模式
Style 样式 ObjectId 多线的样式
方法 参数 说明
Mline( ) 无参数 构造函数:声明一个空的多线
void AppendSegment
(
  Point3d newVertex
)


新的点
在多线末尾增加一个点
void RemoveLastSegment
(
  Point3d lastVertex
)


最后的点
移除最后一个点,参数无所谓
void MoveVertexAt
(
  int index,
  Point3d newPosition
)


节点索引
新的点
移动指定索引处的节点
int Element
(
  Point3d pt
)
未知方法,知道的联系我
Point3d VertexAt
(
  int index
)


节点索引
获得指定索引处的节点
Point3d GetClosestPointTo
(
  Point3d givenPoint,
  Vector3d normal,
  bool extend,
  bool excludeCaps
)


三维点
向量
是否延长
排除封口
点到多线的最近点,
相当于取点在向量上的射线
与多线求最近点
如果延长,则可以取延长线
上的最近点
排除封口的话会忽略封口,
求到两根线的最近点
Point3d GetClosestPointTo
(
  Point3d givenPoint,
  bool extend,
  bool excludeCaps
)


三维点
是否延长
排除封口
点到多线的最近点,
如果延长,则可以取延长线
上的最近点
排除封口的话会忽略封口,
求到两根线的最近点

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;

Point3d point3D1 = new Point3d(0, 0, 0);
Point3d point3D2 = new Point3d(10, 10, 0);
mline.AppendSegment(point3D1);
mline.AppendSegment(point3D2);

Point3d lastVertex = new Point3d();
mline.RemoveLastSegment(lastVertex);

Point3d newPosition = new Point3d(10, 20, 0);
mline.MoveVertexAt(1, newPosition);

未知。希望你的补充

Point3d point3D = mline.VertexAt(1);

Point3d pt = new Point3d(0, 5, 0);
Vector3d vector3D = new Vector3d(-1, -1, 0);
var po = mline.GetClosestPointTo(pt, vector3D, false, false);

Point3d pt = new Point3d(0, 5, 0);
var po = mline.GetClosestPointTo(pt, false, false);

三维多段线 Polyline3d

C# Cad2016二次开发api(三)_第5张图片

属性 中文 数据类型 作用
Length 长度 double 多段线的长度
PolyType 类型 Poly3dType 多段线的类型
Closed 闭合 bool 多段线是否闭合
方法 参数 说明
Polyline3d( ) 无参数 构造函数:声明一条空的
三维多段线
Polyline3d
(
  Poly3dType type,
  Point3dCollection vertices,
  bool closed
)


多段线类型
点集
是否闭合
构造函数:声明一条给定类型
确定点集和闭合的三维多段线
void ConvertToPolyType
(
  Poly3dType newVal
)


多段线类型
转化多段线类型
void Straighten( ) 无参数 去除多段线类型
void SplineFit
(
  Poly3dType value,
  int segments
)


多段线类型
段数
修改多段线类型,设置段数,
段数越多,越平滑
void SplineFit( ) 无参数 多段线类型为设置为三次
ObjectId AppendVertex
(
  PolylineVertex3d vertexToAppend
)


多段线节点
给多段线增加一个点
ObjectId InsertVertexAt
(
  ObjectId indexVertexId,
  PolylineVertex3d newVertex
)


插入点的id
新多段线点
在指定点插入新的点
(需有插入点的id)
void InsertVertexAt
(
  PolylineVertex3d indexVertex,
  PolylineVertex3d newVertex
)


插入处的点
新多段线点
在指定点插入新的点
IEnumerator GetEnumerator( ) 无参数 枚举器(不知道咋用,
只知道可以foreach遍历每个点)

Polyline3d polyline3D = new Polyline3d();

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);

Poly3dType poly3DType = Poly3dType.CubicSplinePoly;
polyline3D.ConvertToPolyType(poly3DType);

polyline3D.Straighten();

polyline3D.SplineFit(Poly3dType.QuadSplinePoly, 3);

polyline3D.SplineFit();

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();
}

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();
}

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++;
}

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 二次
CubicSplinePoly三次
方法 参数 说明
Polyline2d( ) 无参数 构造函数:声明一条空的二维多段线
Polyline2d
(
  Poly2dType type,
  Point3dCollection vertices,
  double elevation,
  bool closed,
  double startWidth,
  double endWidth,
  DoubleCollection bulges
)


拟合方式
顶点集
标高
是否闭合
起始宽度
终止宽度
凸度集合
构造函数:声明一条明确属性的
二维多段线
void ConvertToPolyType
(
  Poly2dType newVal
)


拟合方式
转换拟合方式
void Straighten( ) 无参数 拟合方式改成SimplePoly
void SplineFit
(
  Poly2dType value,
  int segments
)


拟合方式
段数
修改拟合方式和段数
void SplineFit( ) 无参数 拟合方式改成CubicSplinePoly
void CurveFit( ) 无参数 拟合方式改成FitCurvePoly
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
)


节点
获得指定节点的Point3d

Polyline2d polyline2D = new Polyline2d();

Point3dCollection pos = new Point3dCollection
{
    new Point3d(0, 0, 0),
    new Point3d(10, 0, 0),
    new Point3d(10, 10, 0),
    new Point3d(20, 10, 0)
};
DoubleCollection doubles = new DoubleCollection
{
    0,
    0,
    0,
    0
};
Polyline2d polyline2D = new Polyline2d(Poly2dType.SimplePoly, pos, 0, false, 0, 0, doubles);

polyline2D.ConvertToPolyType(Poly2dType.FitCurvePoly);

polyline2D.Straighten();

polyline2D.SplineFit(Poly2dType.CubicSplinePoly, 100);

polyline2D.SplineFit();

polyline2D.CurveFit();

Vertex2d vertex2D = new Vertex2d(new Point3d(20, 20, 0), 0, 0, 0, 0);
polyline2D.NonDBAppendVertex(vertex2D);

Vertex2d vertex2D = new Vertex2d(new Point3d(20, 20, 0), 0, 0, 0, 0);
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
    polyline2D.ObjectId.GetObject(OpenMode.ForWrite);
    polyline2D.AppendVertex(vertex2D);
    trans.Commit();
}

Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
    polyline2D.ObjectId.GetObject(OpenMode.ForWrite);
    int n = 0;
    foreach (ObjectId item in polyline2D)
    {
        if (n == 1)
        {
            Vertex2d vertex2D = new Vertex2d(new Point3d(15, 5, 0), 0, 0, 0, 0);
            polyline2D.InsertVertexAt(item, vertex2D);
            break;
        }
        n++;
    }
    trans.Commit();
}

int n = 0;
foreach (Vertex2d item in polyline2D)
{
    if (n == 1)
    {
        Vertex2d vertex2D = new Vertex2d(new Point3d(15, 8, 0), 0, 0, 0, 0);
        polyline2D.InsertVertexAt(item, vertex2D);
        break;
    }
    n++;
}

//IEnumerator enumerator = polyline2D.GetEnumerator();
//var obj = enumerator.Current;
//enumerator.MoveNext();
foreach (var item in polyline2D)
{

}

foreach (Vertex2d item in polyline2D)
{
    Point3d point3D = polyline2D.VertexPosition(item);
}

单行文字DBText

属性 中文 数据类型 作用
Justify 对齐点 AttachmentPoint 对齐方式
VerticalMode 垂直对齐方式 TextVerticalMode 垂直对齐方式
HorizontalMode 水平对齐方式 TextHorizontalMode 水平对齐方式
IsMirroredInY Y轴镜像 bool 是否延Y轴镜像
IsMirroredInX X轴镜像 bool 是否延X轴镜像
TextStyleId 文字样式Id ObjectId 文字样式的ObjectId
TextStyleName 文字样式名称 string 文字样式的名称
TextString 文字内容 string 单行文字的内容
WidthFactor 宽度系数 double 宽度系数,1为默认
Height 字高 double 字体的高度
Rotation 旋转弧度 double 旋转的弧度(逆时针)
Oblique 倾斜弧度 double 倾斜的弧度(左负右正)
Thickness 厚度 double 厚度
Normal 平面法向向量 Vector3d 所在平面法向向量
IsDefaultAlignment 是否默认对齐 bool 否代表有对齐点
AlignmentPoint 文本对齐点 Point3d 设置某些对齐方式后
的对齐点,代替基点
Position 基点位置 Point3d 原始的基点

C# Cad2016二次开发api(三)_第6张图片

C# Cad2016二次开发api(三)_第7张图片

C# Cad2016二次开发api(三)_第8张图片

C# Cad2016二次开发api(三)_第9张图片

C# Cad2016二次开发api(三)_第10张图片

C# Cad2016二次开发api(三)_第11张图片

C# Cad2016二次开发api(三)_第12张图片

方法 参数 说明
DBText( ) 无参数 构造函数
int CorrectSpelling( ) 无参数 拼写错误?(不知道咋用)
void AdjustAlignment
(
  Database alternateDatabaseToUse
)


试试
不懂
void ConvertFieldToText( ) 无参数 不懂
string getTextWithFieldCodes( ) 无参数 不懂

DBText dBText = new DBText();






转角标注RotatedDimension

C# Cad2016二次开发api(三)_第13张图片

属性 中文 数据类型 作用
Rotation 文字倾斜 double 文字所在的线的切斜角
Oblique 标注转角 double 两个标注线的倾斜角
DimLinePoint 标注线定位点 Point3d 标注线经过的点
XLine2Point 标注终点 Point3d 标注终点所在的点
XLine1Point 标注起点 Point3d 标注起点所在的点
方法 参数 说明
RotatedDimension( ) 无参数 构造函数
RotatedDimension
(
  double rotation,
  Point3d line1Point,
  Point3d line2Point,
  Point3d dimensionLinePoint,
  string dimensionText,
  ObjectId dimensionStyle
)


倾斜角
标注起点
标注终点
标注线定位点
标注文字替换
标注样式
构造函数
RotatedDimension rotatedDimension = new RotatedDimension();
double rotation = Math.PI / 6;
Point3d line1Point = new Point3d(0, 0, 0);
Point3d line2Point = new Point3d(100, 0, 0);
Point3d dimensionLinePoint = new Point3d(50, 30, 0);
string dimensionText = "150";
Document doc = Application.DocumentManager.MdiActiveDocument;
ObjectId dimensionStyle = doc.Database.DimStyleTableId;
RotatedDimension rotatedDimension = new RotatedDimension(rotation, line1Point, line2Point, dimensionLinePoint,dimensionText, dimensionStyle);

对齐标注AlignedDimension

C# Cad2016二次开发api(三)_第14张图片

属性 中文 数据类型 作用
Oblique 标注转角 double 两个标注线的倾斜角
DimLinePoint 标注线定位点 Point3d 标注线经过的点
XLine2Point 标注点2 Point3d 标注终点所在的点
XLine1Point 标注点1 Point3d 标注起点所在的点
方法 参数 说明
AlignedDimension( ) 无参数 构造函数
AlignedDimension
(
  Point3d line1Point,
  Point3d line2Point,
  Point3d dimensionLinePoint,
  string dimensionText,
  ObjectId dimensionStyle
)


标注起点
标注终点
标注线定位点
标注文字替换
标注样式
构造函数
AlignedDimension alignedDimension = new AlignedDimension();
Point3d line1Point = new Point3d(0, 0, 0);
Point3d line2Point = new Point3d(100, 0, 0);
Point3d dimensionLinePoint = new Point3d(50, 30, 0);
string dimensionText = "";
Document doc = Application.DocumentManager.MdiActiveDocument;
ObjectId dimensionStyle = doc.Database.DimStyleTableId;
AlignedDimension alignedDimension = new AlignedDimension(line1Point, line2Point, dimensionLinePoint, dimensionText,
dimensionStyle);

角度标注LineAngularDimension2

C# Cad2016二次开发api(三)_第15张图片

属性 中文 数据类型 作用
XLine2End 标注线2终点 Point3d 标注线2终点
XLine2Start 标注线2起点 Point3d 标注线2起点
XLine1End 标注线1终点 Point3d 标注线1终点
XLine1Start 标注线1起点 Point3d 标注线1起点
ArcPoint 标注线定位点 Point3d 标注线定位点
方法 参数 说明
LineAngularDimension2( ) 无参数 构造函数
LineAngularDimension2
(
  Point3d line1Start,
  Point3d line1End,
  Point3d line2Start,
  Point3d line2End,
  Point3d arcPoint,
  string dimensionText,
  ObjectId dimensionStyle
)


标注线1起点
标注线1终点
标注线2起点
标注线2终点
标注线定位点
文字替换
标注样式
构造函数
LineAngularDimension2 lineAngularDimension2 = new LineAngularDimension2();
Point3d line1Start = new Point3d(0, 0, 0);
Point3d line1End = new Point3d(0, 50, 0);
Point3d line2Start = new Point3d(10, 0, 0);
Point3d line2End = new Point3d(50, 50, 0);
Point3d arcPoint = new Point3d(30, 80, 0);
string dimensionText = "";
Document doc = Application.DocumentManager.MdiActiveDocument;
ObjectId dimensionStyle = doc.Database.DimStyleTableId;
LineAngularDimension2 lineAngularDimension2 = new LineAngularDimension2(line1Start,line1End,line2Start,line2End, arcPoint,
dimensionText, dimensionStyle);

半径标注RadialDimension

C# Cad2016二次开发api(三)_第16张图片

C# Cad2016二次开发api(三)_第17张图片

属性 中文 数据类型 作用
ChordPoint 标注线定位点 Point3d 标注线定位点
Center 圆心 Point3d 圆心
LeaderLength 引线长度 double 引线长度
方法 参数 说明
RadialDimension( ) 无参数 构造函数
RadialDimension
(
  Point3d center,
  Point3d chordPoint,
  double leaderLength,
  string dimensionText,
  ObjectId dimensionStyle
)


原点
标注线定位点
引线长度
文字替换
标注样式
构造函数
RadialDimension radialDimension = new RadialDimension();
Point3d center = new Point3d(0, 0, 0);
Point3d chordPoint = new Point3d(50, 50, 0);
double leaderLength = 100;
string dimensionText = "";
Document doc = Application.DocumentManager.MdiActiveDocument;
ObjectId dimensionStyle = doc.Database.DimStyleTableId;
RadialDimension radialDimension = new RadialDimension(center, chordPoint, leaderLength, dimensionText,
dimensionStyle);
AddEntity(radialDimension);

直径标注DiametricDimension

C# Cad2016二次开发api(三)_第18张图片

C# Cad2016二次开发api(三)_第19张图片

属性 中文 数据类型 作用
FarChordPoint 远弦点 Point3d 远弦点
ChordPoint 近弦点 Point3d 近弦点
LeaderLength 引线长度 double 引线长度
方法 参数 说明
DiametricDimension( ) 无参数 构造函数
DiametricDimension
(
  Point3d chordPoint,
  Point3d farChordPoint,
  double leaderLength,
  string dimensionText,
  ObjectId dimensionStyle
)


近弦点
远弦点
引线长度
文字替换
标注样式
构造函数
DiametricDimension diametricDimension = new DiametricDimension();
Point3d chordPoint = new Point3d(50, 0, 0);
Point3d farChordPoint = new Point3d(-50, 0, 0);
double leaderLength = 20;
string dimensionText = "";
Document doc = Application.DocumentManager.MdiActiveDocument;
ObjectId dimensionStyle = doc.Database.DimStyleTableId;
DiametricDimension diametricDimension = new DiametricDimension(chordPoint, farChordPoint,leaderLength,
dimensionText,dimensionStyle);
AddEntity(diametricDimension);

弧长标注ArcDimension

属性 数据类型 说明
HasLeader bool 是否有说明引线
IsPartial bool 是否是局部的
ArcSymbolType int 圆弧样式(默认0)
0=弧长符号在文字前
1=弧长符号在文字上
2=不显示弧长符号
但是我怎么改他都不变
不知道为啥
XLine2Point Point3d 标注终点
XLine1Point Point3d 标注起点
Leader2Point Point3d 额外点2
Leader1Point Point3d 额外点1
CenterPoint Point3d 圆心
ArcPoint Point3d 标注定位点
ArcEndParam double 圆弧终点参数
ArcStartParam double 圆弧起点参数
方法 参数 说明
ArcDimension
(
  Point3d centerPoint,
  Point3d xLine1Point,
  Point3d xLine2Point,
  Point3d arcPoint,
  string dimensionText,
  ObjectId dimensionStyle
)


圆心
标注起点
标注终点
标注线定位点
文字替代
标注样式
构造函数
Point3d centerPoint = new Point3d(0, 0, 0);
Point3d xLine1Point = new Point3d(0, 50, 0);
Point3d xLine2Point = new Point3d(50, 0, 0);
Point3d arcPoint = new Point3d(70, 70, 0);
string dimensionText = "";
Document doc = Application.DocumentManager.MdiActiveDocument;
ObjectId dimensionStyle = doc.Database.DimStyleTableId;
ArcDimension arcDimension = new ArcDimension(centerPoint, xLine1Point, xLine2Point, arcPoint, dimensionText,
dimensionStyle);
AddEntity(arcDimension);

折弯标注RadialDimensionLarge

属性 数据类型 说明
OverrideCenter Point3d 中心位置代替点
JogPoint Point3d 折弯坐标
ChordPoint Point3d 标记定位点
Center Point3d 圆心
JogAngle double 折弯角度(设置了无效
不知道为啥子)
方法 参数 说明
RadialDimensionLarge( ) 无参数 构造函数
RadialDimensionLarge
(
  Point3d center,
  Point3d chordPoint,
  Point3d overrideCenter,
  Point3d jogPoint,
  double jogAngle,
  string dimensionText,
  ObjectId dimensionStyle
)


圆心
标注定位点
中心位置代替点
折弯坐标
标注样式
文字替代
标注样式
构造函数

坐标标注OrdinateDimension

C# Cad2016二次开发api(三)_第20张图片

属性 数据类型 说明
LeaderEndPoint Point3d 引线终点
DefiningPoint Point3d 标注点
Origin Point3d 原点
UsingXAxis bool 以X坐标为计量
UsingYAxis bool 以Y坐标为计量
方法 参数 说明
OrdinateDimension( ) 无参数 构造函数
OrdinateDimension
(
  bool useXAxis,
  Point3d definingPoint,
  Point3d leaderEndPoint,
  string dimText,
  ObjectId dimStyle
)


以X坐标为计量
标注点
引线终点
文字替换
标注样式
构造函数
OrdinateDimension ordinateDimension = new OrdinateDimension();
bool useXAxis = true;
Point3d definingPoint = new Point3d(50, 20, 0);
Point3d leaderEndPoint = new Point3d(70, 50, 0);
string dimensionText = "";
Document doc = Application.DocumentManager.MdiActiveDocument;
ObjectId dimensionStyle = doc.Database.DimStyleTableId;
OrdinateDimension ordinateDimension = new OrdinateDimension(useXAxis, definingPoint, leaderEndPoint,
dimensionText,dimensionStyle);

你可能感兴趣的:(CAD二次开发,算法)