属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
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);
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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) { }
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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); }
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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 | 原始的基点 |
方法 | 参数 | 说明 |
---|---|---|
DBText( ) | 无参数 | 构造函数 |
int?CorrectSpelling( ) | 无参数 | 拼写错误?(不知道咋用) |
void?AdjustAlignment ( ? Database alternateDatabaseToUse ) | ? ? 试试 ? | 不懂 |
void?ConvertFieldToText( ) | 无参数 | 不懂 |
string?getTextWithFieldCodes( ) | 无参数 | 不懂 |
DBText dBText = new DBText();
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
属性 | 中文 | 数据类型 | 作用 |
---|---|---|---|
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);
属性 | 数据类型 | 说明 |
---|---|---|
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);
属性 | 数据类型 | 说明 |
---|---|---|
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 ) | ? ? 圆心 标注定位点 中心位置代替点 折弯坐标 标注样式 文字替代 标注样式 ? | 构造函数 |
属性 | 数据类型 | 说明 |
---|---|---|
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);