C# Cad2016二次开发api(三)

news2025/4/6 18:33:43

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1381660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Memory Wall in Neural Network Inference

Memory Wall in Neural Network Inference 神经网络推理的瓶颈在于访存带宽&#xff0c;通常无法发挥出加速器的全部算力。本文总结了目前常用的推理加速器及其设计&#xff0c;并分析了常用神经网络的访存瓶颈。文章大部分内容参考自Computer Architecture: A Quantitative A…

JavaScript基础(26)_dom增删改练习

<!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><title>DOM增删改练习</title><link rel"stylesheet" href"../browser_default_style/reset.css"><style>table {borde…

软件测试|Selenium StaleElementException异常的原因与方法

简介 在使用Selenium进行Web自动化测试时&#xff0c;我们可能会遇到StaleElementException异常。这个异常通常在我们操作一个之前已经找到的元素时抛出&#xff0c;但该元素已经不再处于DOM树中&#xff0c;导致元素过时&#xff08;stale&#xff09;。本文将介绍StaleEleme…

C++11 左右值引用、移动语义

右值引用和移动语义 什么是左值&#xff1f;什么是左值引用&#xff1f; 左值是一个表示数据的表达式(如变量名或解引用的指针)&#xff0c;我们可以获取它的地址可以对它赋值&#xff0c;左值可以出现赋值符号的左边&#xff0c;右值不能出现在赋值符号左边。定义时const修饰…

SpringSecurity入门demo(二)表单认证

上一篇博客集成 Spring Security&#xff0c;使用其默认生效的 HTTP 基本认证保护 URL 资源&#xff0c;下面使用表单认证来保护 URL 资源。 一、默认表单认证&#xff1a; 代码改动&#xff1a;自定义WebSecurityConfig配置类 package com.security.demo.config; import or…

基于python的基金分析可视化系统

项目背景&#xff1a; 随着金融市场的发展和人们对财富管理的重视&#xff0c;越来越多的人开始参与基金投资。然而&#xff0c;由于市场上基金产品众多且复杂&#xff0c;投资者往往难以快速准确地获取基金信息和进行分析&#xff0c;从而导致投资决策不够科学和有效。为了解决…

PyCharm安装使用教程2024

简介 PyCharm是一种PythonIDE&#xff08;Integrated Development Environment&#xff0c;集成开发环境&#xff09;&#xff0c;带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具&#xff0c;比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单…

三棋先手必胜证明

目录 创作原因 游戏规则 初始状态图 证明过程 先手必胜的证明 失败的博弈树&#xff08;三个多小时的成果&#xff09; 创作原因 这个棋不是网上流行的成三棋&#xff0c;我也不知道这个棋叫什么。由于这个棋是&#xff08;横竖斜&#xff09;连成三个就获胜&#xff0c;…

Vulnhub-HACKSUDO: PROXIMACENTAURI渗透

文章目录 一、前言1、靶机ip配置2、渗透目标3、渗透概括 开始实战一、信息获取二、端口敲门三、web密码爆破四、getShell五、获取新用户六、提权 一、前言 由于在做靶机的时候&#xff0c;涉及到的渗透思路是非常的广泛&#xff0c;所以在写文章的时候都是挑重点来写&#xff0…

【同济子豪兄斯坦福CS224W中文精讲】NetworkX代码学习笔记

文章目录 安装配置创建图可视化图图数据挖掘参考资料 安装配置 matplotlib中文字体设置 import networkx as nx import matplotlib.pyplot as plt # 魔法指令&#xff0c;设置后在jupyter notebook中绘制的图形会显示在输出单元格中&#xff0c;而不是弹出一个新窗口 %matplo…

ssm基于Javaweb的网上奶茶店系统的设计与实现论文

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通话…

爬虫之牛刀小试(四):爬取B站番剧的简介

今天爬取的是b站。 如何爬取b站中的番剧呢&#xff1f; 首先我们来到番剧索引中&#xff0c;随便点开一部动漫&#xff0c;检查代码。 每个作品对应一个链接: https://www.bilibili.com/bangumi/play/ss…&#xff08;ss后面的数字称为ss号&#xff09; 发现关于动漫的信息…

【数据库】sql优化有哪些?从query层面和数据库层面分析

目录 归纳sql本身的优化数据库层面的优化 归纳 这类型问题可以称为&#xff1a;Query Optimization&#xff0c;从清华AI4DB的paper list中&#xff0c;该类问题大致可以分为&#xff1a; Query RewriterCardinality EstimationCost EstimationPlan Optimization 从中文的角…

某厂校招一道关于C的笔试题

一、笔试原题 题目&#xff1a;在Linux x86 _ 54 gcc环境下&#xff0c;下面的程序会出现什么问题&#xff1f;运行结果是什么&#xff1f;为什么&#xff1f; 程序如下图&#xff1a; 通过在gcc的环境下编译运行&#xff0c;发现运行结果为不断死循环打印0-17的数字 我们…

TCP之三次握手四次挥手与UDP区别

文章目录 1 TCP三次握手四次挥手1.1 数据包说明1.1.1 TCP数据包1.1.2 UDP数据包1.1.3 TCP和UDP差异1.1.4 TCP可靠性传输机制 1.2 三次握手1.2.1 三次握手定义1.2.2 三次握手问题1.2.2.1 问题引入分析1.2.2.2 历史连接1.2.2.3 同步双方初始序列号1.2.2.4 避免资源浪费 1.3 四次挥…

Github Copilot AI保密级教程

Copilot 是一款由 OpenAI 推出的人工智能代码自动补全AI工具&#xff0c;它可以帮助程序员更快、更准确地编写代码。Copilot 的核心技术基于 GPT-3 模型&#xff0c;但是在编码方面是优于GPT-3的&#xff0c;它可以根据程序员输入的上下文和代码提示&#xff0c;自动生成符合语…

微信小程序如何自定义导航栏,怎么确定导航栏及状态栏的高度?导航栏被刘海、信号图标给覆盖了怎么办?

声明&#xff1a;本文为了演示效果&#xff0c;颜色采用的比较显眼&#xff0c;可根据实际情况修改颜色 问题描述 当我们在JSON中将navigationStyle设置成custom后&#xff0c;当前页面的顶部导航栏就需要我们制作了&#xff0c;但出现了一下几个问题&#xff1a; 导航栏的高…

51-12 多模态论文串讲—BLIP 论文精读

视觉语言预训练VLP模型最近在各种多模态下游任务上获得了巨大的成功&#xff0c;目前还有两个主要局限性: (1) 模型角度: 大多数方法要么采用encoder模型&#xff0c;要么采用encoder-decoder模型。然而&#xff0c;基于编码器的模型不太容易直接转换到文本生成任务&#xff0…

高德打车引入“红绿灯倒计时”能力,算力技术升级打车体验

打到的车还有多久能到&#xff1f;接驾车辆原地不动是什么原因&#xff1f;乘客在打车时&#xff0c;常常因为无法了解实时接驾路况&#xff0c;容易出现“等车焦虑”。 如今&#xff0c;高德打车已全面应用“红绿灯倒计时”能力&#xff0c;让乘客在等车时就能掌握接驾路况&am…

在线ai扩图是什么?有什么工具?分享3个好用的工具。

在线ai扩图是什么&#xff1f;有什么工具&#xff1f;分享3个好用的工具。 在当今数字化的时代&#xff0c;图像处理成为了我们日常生活和工作中不可或缺的一部分。有时候&#xff0c;我们需要将图像放大以获取更多的细节&#xff0c;但传统的方法往往会导致图像质量的损失。幸…