C# Cad2016二次开发api(三)

直线 Line

属性中文数据类型作用
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

属性中文数据类型作用
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

属性中文数据类型作用
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

椭圆

属性中文数据类型作用
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<Point3d> points = new List<Point3d>();
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

属性中文数据类型作用
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拟合方式Poly2dTypeSimplePoly 无
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水平对齐方式
IsMirroredInYY轴镜像bool是否延Y轴镜像
IsMirroredInXX轴镜像bool是否延X轴镜像
TextStyleId文字样式IdObjectId文字样式的ObjectId
TextStyleName文字样式名称string文字样式的名称
TextString文字内容string单行文字的内容
WidthFactor宽度系数double宽度系数,1为默认
Height字高double字体的高度
Rotation旋转弧度double旋转的弧度(逆时针)
Oblique倾斜弧度double倾斜的弧度(左负右正)
Thickness厚度double厚度
Normal平面法向向量Vector3d所在平面法向向量
IsDefaultAlignment是否默认对齐bool否代表有对齐点
AlignmentPoint文本对齐点Point3d设置某些对齐方式后
的对齐点,代替基点
Position基点位置Point3d原始的基点

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


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

DBText dBText = new DBText();

 

 

 

 

转角标注RotatedDimension

属性中文数据类型作用
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

属性中文数据类型作用
Oblique标注转角double两个标注线的倾斜角
DimLinePoint标注线定位点Point3d标注线经过的点
XLine2Point标注点2Point3d标注终点所在的点
XLine1Point标注点1Point3d标注起点所在的点
方法参数说明
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

属性中文数据类型作用
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

属性中文数据类型作用
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

属性中文数据类型作用
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

属性数据类型说明
HasLeaderbool是否有说明引线
IsPartialbool是否是局部的
ArcSymbolTypeint圆弧样式(默认0)
0=弧长符号在文字前
1=弧长符号在文字上
2=不显示弧长符号
但是我怎么改他都不变
不知道为啥
XLine2PointPoint3d标注终点
XLine1PointPoint3d标注起点
Leader2PointPoint3d额外点2
Leader1PointPoint3d额外点1
CenterPointPoint3d圆心
ArcPointPoint3d标注定位点
ArcEndParamdouble圆弧终点参数
ArcStartParamdouble圆弧起点参数
方法参数说明
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

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


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

坐标标注OrdinateDimension

属性数据类型说明
LeaderEndPointPoint3d引线终点
DefiningPointPoint3d标注点
OriginPoint3d原点
UsingXAxisbool以X坐标为计量
UsingYAxisbool以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);
  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值