Skip to content

尺寸标注 ​

标注是在图纸中用于提供关于尺寸、位置和方向等信息的一种图形元素;是进行图形识读和指导生产的主要技术依据。可以根据需求在多种方位上为各类对象创建标注。mxcad 中提供了对齐标注尺寸类和旋转标注尺寸类,若你有其他标注需求如:审图标注、箭头标注、云线标注等可参考 mxdraw 库 中提供的尺寸标注方法。

标注常用概念说明 :

名称描述补充
标注文字用于指示测量值的文字串文字还可以包含前缀、后缀和公差
尺寸线用于指示标注的方向和范围对于角度标注,尺寸线是一段圆弧
箭头显示在尺寸线两端可以为箭头或斜线来指定不同的尺寸和造型
尺寸边界从部件延伸到尺寸线

对齐标注尺寸类 ​

我们可以通过实例化一个 McDbAlignedDimension() 对象创建对齐标注。通过设置 McDbAlignedDimension() 实例对象的标注线起始点 xLine1Point 、标注线结束点 xLine2Point、标注线位置点 dimLinePoint 以及标注文本附着方式 textAttachment、倾斜角度 oblique 等其他设置来绘制对齐标注。

此外,还可以通过 mxcad 实例对象提供的 drawDimAligned() 方法直接绘制对齐标注。

点击 McDbAlignedDimension() 查看详细属性和方法说明。

点击 drawDimAligned() 查看详细属性和方法说明。

ts
import {
  MxCpp,
  McGePoint3d,
  McCmColor,
  McDb,
  McDbAlignedDimension,
} from "mxcad";

const mxcad = MxCpp.getCurrentMxCAD();
const mDimension = new McDbAlignedDimension();
mDimension.xLine1Point = new McGePoint3d(-1800, 0);
mDimension.xLine2Point = new McGePoint3d(0, 0);
mDimension.dimLinePoint = new McGePoint3d(-500, -500);
mDimension.textAttachment = McDb.AttachmentPoint.kTopLeft;
mDimension.trueColor = new McCmColor(200, 255, 0);
mDimension.oblique = 0;
mxcad.drawEntity(mDimension);

mxcad.addDimStyle(
  "MyDimStyle",
  "41,0.18,141,0.09,40,200",
  "77,1,271,3",
  "",
  "",
);
mxcad.drawDimStyle = "MyDimStyle";
mxcad.drawDimAligned(100, 0, 2000, 0, 1200, 0);

旋转标注尺寸类 ​

我们可以通过实例化一个 McDbRotatedDimension() 对象创建旋转标注。

此外,还可以通过 mxcad 实例对象提供的 drawDimRotated() 方法直接绘制旋转标注。

点击 McDbRotatedDimension()、drawDimRotated() 查看详细属性和方法说明。

ts
import {
  MxCpp,
  McGePoint3d,
  McCmColor,
  McDb,
  McDbRotatedDimension,
} from "mxcad";

const mxcad = MxCpp.getCurrentMxCAD();
const rDimension = new McDbRotatedDimension();
rDimension.xLine1Point = new McGePoint3d(100, -137);
rDimension.xLine2Point = new McGePoint3d(161, 30);
rDimension.dimLinePoint = new McGePoint3d(80, -60);
rDimension.textAttachment = McDb.AttachmentPoint.kTopLeft;
rDimension.textRotation = 1.5;
rDimension.trueColor = new McCmColor(200, 255, 0);
rDimension.oblique = 0;
rDimension.rotation = 0;
mxcad.drawEntity(rDimension);

mxcad.addDimStyle(
  "MyDimStyle",
  "41,0.18,141,0.09,40,200",
  "77,1,271,3",
  "",
  "",
);
mxcad.drawDimStyle = "MyDimStyle";
mxcad.drawDimRotated(0, 7000, 600, 7000, 250, 7050, 0);

角度标注 ​

我们可以通过 mxcad 实例对象提供的 drawDimAngular() 方法直接绘制角度标注。

点击 drawDimAngular() 查看详细属性和方法说明。

ts
import { MxCpp } from "mxcad";

let mxcad = MxCpp.getCurrentMxCAD();

mxcad.addDimStyle(
  "MyDimStyle2",
  "41,0.18,141,0.09,40,200",
  "77,1,271,3",
  "",
  "",
);
mxcad.drawDimStyle = "MyDimStyle2";
mxcad.drawDimAngular(500, 5000, 0, 5500, 1000, 5500, 500, 5500);

径向标注(半径) ​

我们可以通过实例化一个 McDbRadialDimension() 对象创建径向标注(即半径标注)。通过设置 McDbRadialDimension() 实例对象的圆心 center 、弦线端点 chordPoint (即半径在圆周上的端点)、引线长度 leaderLength 以及标注文本附着方式 textAttachment 等其他设置来绘制半径标注。

此外,还可以通过 mxcad 实例对象提供的 drawDimRadial() 方法直接绘制径向标注。

点击 McDbRadialDimension() 、drawDimRadial() 查看详细属性和方法说明。

ts
import {
  MxCpp,
  McGePoint3d,
  McCmColor,
  McDb,
  McDbCircle,
  McDbRadialDimension,
} from "mxcad";

const mxcad = MxCpp.getCurrentMxCAD();
// 先绘制一个圆
const circle = new McDbCircle(-1200, 0, 0, 200);
mxcad.drawEntity(circle);
// 标注该圆的半径:从圆心 center 指向圆周上的弦线端点 chordPoint
const radialDim = new McDbRadialDimension();
radialDim.center = new McGePoint3d(-1200, 0, 0);
radialDim.chordPoint = new McGePoint3d(-1000, 0, 0);
radialDim.textPosition = new McGePoint3d(-800, 0, 0);
radialDim.textAttachment = McDb.AttachmentPoint.kTopLeft;
radialDim.trueColor = new McCmColor(200, 255, 0);
mxcad.drawEntity(radialDim);

// 或者通过便捷方法直接绘制半径标注:圆心、弦线端点、引线长度
mxcad.drawDimRadial(-1200, 0, -1000, 0, 60);

直径标注 ​

我们可以通过实例化一个 McDbDiametricDimension() 对象创建直径标注。通过设置 McDbDiametricDimension() 实例对象的弦线端点 chordPoint 、弦线远端点 farChordPoint (两点为圆上一条直径的两个端点)、引线长度 leaderLength 以及标注文本附着方式 textAttachment 等其他设置来绘制直径标注。

此外,还可以通过 mxcad 实例对象提供的 drawDimDiametric() 方法直接绘制直径标注。

点击 McDbDiametricDimension() 、drawDimDiametric() 查看详细属性和方法说明。

ts
import {
  MxCpp,
  McGePoint3d,
  McCmColor,
  McDb,
  McDbCircle,
  McDbDiametricDimension,
} from "mxcad";

const mxcad = MxCpp.getCurrentMxCAD();
// 先绘制一个圆
const circle = new McDbCircle(1200, 0, 0, 200);
mxcad.drawEntity(circle);
// 标注该圆的直径:弦线端点 chordPoint 与弦线远端点 farChordPoint 为直径的两个端点
const diametricDim = new McDbDiametricDimension();
diametricDim.chordPoint = new McGePoint3d(1400, 0, 0);
diametricDim.farChordPoint = new McGePoint3d(1000, 0, 0);
diametricDim.textPosition = new McGePoint3d(600, 0, 0);
diametricDim.textAttachment = McDb.AttachmentPoint.kTopLeft;
diametricDim.trueColor = new McCmColor(255, 102, 0);
mxcad.drawEntity(diametricDim);

// 或者通过便捷方法直接绘制直径标注:弦线端点、弦线远端点、引线长度
mxcad.drawDimDiametric(1400, 0, 1000, 0, 60);