Skip to content

mxcad_2d API 文档 / 2d / McDbCustomEntity

Class: McDbCustomEntity ​

2d.McDbCustomEntity

自定义实体基类,用于在 MxCAD 中扩展新的实体类型并实现自定义绘制、数据持久化与编辑行为。

Description

McDbCustomEntity 是所有自定义 CAD 实体的基类,通常用于创建具有特殊几何结构、扩展属性或特殊交互逻辑的对象。 这个类允许开发者自定义:

  • 实体类型名称和实例创建逻辑;
  • DWG 文件中的字段读写逻辑;
  • 图形绘制逻辑;
  • 夹点编辑和对象变换逻辑;
  • 对象克隆和同步到底层 C++ 数据的行为。

通过继承它,开发者可以创建例如自定义标注、符号、特征线、轮廓线等非标准实体,并把它们接入 MxCAD 的数据库和渲染流程中。

使用方式:

  1. 继承 McDbCustomEntity 并实现 getTypeName()、create();
  2. 在 dwgInFields() / dwgOutFields() 中同步自定义属性;
  3. 在 worldDraw() 中使用 MxCADWorldDraw 完成绘制;
  4. 如需编辑,重写 moveGripPointsAt()、getGripPoints() 等方法;
  5. 使用 rxInit() 注册自定义实体,随后通过命令创建对象。

总结:McDbCustomEntity 是 MxCAD 自定义实体开发的核心抽象类,负责把对象的几何、属性和渲染行为统一封装在一起,方便开发者扩展 CAD 功能。

Example

ts
   import { IMcDbDwgFiler, McDbCustomEntity, McDbEntity, McDbLine, McGeMatrix3d, McGePoint3d, McGePoint3dArray, MxCADUiPrPoint, MxCADWorldDraw, MxCpp } from "mxcad";

   class McDbTestLine extends McDbCustomEntity {

       private pt1: McGePoint3d = new McGePoint3d();
       private pt2: McGePoint3d = new McGePoint3d();
       private matrix: McGeMatrix3d = new McGeMatrix3d()

       constructor(imp?: any) {
           super(imp);
       }

       public create(imp: any) {
           return new McDbTestLine(imp)
       }

       public getTypeName(): string {
           return "McDbTestLine";
       }

       public dwgInFields(filter: IMcDbDwgFiler): boolean {
           this.pt1 = filter.readPoint("pt1").val;
           this.pt2 = filter.readPoint("pt2").val;
           const matrixStr = filter.readString("matrix").val;
           const matrixData = JSON.parse(matrixStr) as number[][];

           // 重建矩阵数据
           for (let i = 0; i < matrixData.length; i++) {
               for (let j = 0; j < matrixData[i].length; j++) {
                   this.matrix.setData(i, j, matrixData[i][j]);
               }
           }
           return true;
       }

       public dwgOutFields(filter: IMcDbDwgFiler): boolean {
           filter.writePoint("pt1", this.pt1);
           filter.writePoint("pt2", this.pt2);
           const matrix: number[][] = [];
           for (let i = 0; i < 4; i++) {
               matrix[i] = [];
               for (let j = 0; j < 4; j++) {
                   matrix[i][j] = this.matrix.getData(i, j);
               }
           }
           filter.writeString("matrix", JSON.stringify(matrix));
           return true;
       }

       public moveGripPointsAt(iIndex: number, dXOffset: number, dYOffset: number, dZOffset: number) {
           this.assertWrite();
           if (iIndex == 0) {
               this.pt1.x += dXOffset;
               this.pt1.y += dYOffset;
               this.pt1.z += dZOffset;
           }
           else if (iIndex == 1) {
               this.pt2.x += dXOffset;
               this.pt2.y += dYOffset;
               this.pt2.z += dZOffset;
           }
       };

       public getGripPoints(): McGePoint3dArray {
           let ret = new McGePoint3dArray()
           ret.append(this.pt1);
           ret.append(this.pt2);
           return ret;
       };

       public worldDraw(draw: MxCADWorldDraw): void {
           let tmpline = new McDbLine(this.pt1, this.pt2);
           tmpline.transformBy(this.matrix)
           draw.drawEntity(tmpline);
       }

       public setPoint1(pt1: McGePoint3d) {
           this.assertWrite();
           this.pt1 = pt1.clone();
       }

       public setPoint2(pt2: McGePoint3d) {
           this.assertWrite();
           this.pt2 = pt2.clone();
       }

       public getPoint1() {
           return this.pt1;
       }

       public getPoint2() {
           return this.pt2;
       };

       // 编辑变换(也可直接记录下转换矩阵在动态渲染中执行)
       public transformBy(mat: McGeMatrix3d): boolean {
           this.matrix = this.matrix.preMultBy(mat);
           this.assertWrite();
           return true;
       };
       // 包围盒输出
       public getBoundingBox(): { minPt: McGePoint3d; maxPt: McGePoint3d; ret: boolean } {
           const minX = Math.min(this.pt1.x, this.pt2.x);
           const minY = Math.min(this.pt1.y, this.pt2.y);
           const maxX = Math.max(this.pt1.x, this.pt2.x);
           const maxY = Math.max(this.pt1.y, this.pt2.y);

           return {
               minPt: new McGePoint3d(minX, minY, 0),
               maxPt: new McGePoint3d(maxX, maxY, 0),
               ret: true
           };
       }
   }

   async function MxTest_DrawCustomEntity() {
       let mxcad = MxCpp.getCurrentMxCAD();
       const getPoint = new MxCADUiPrPoint();
       getPoint.setMessage("\n指定一点:");
       let pt1 = (await getPoint.go());
       if (!pt1) return;

       getPoint.setBasePt(pt1);
       getPoint.setUseBasePt(true);

       getPoint.setMessage("\n指定二点:");
       let pt2 = (await getPoint.go());
       if (!pt2) return;

       let myline = new McDbTestLine();
       myline.setPoint1(pt1);
       myline.setPoint2(pt2);
       mxcad.drawEntity(myline);
   };

   // 注册自定义实体
   new McDbTestLine().rxInit();

Hierarchy ​

Table of contents ​

Constructors ​

Properties ​

Accessors ​

Methods ​

Constructors ​

constructor ​

• new McDbCustomEntity(imp?)

构造函数。

Parameters ​

NameTypeDescription
imp?any内部实现对象。

Overrides ​

McDbEntity.constructor

Properties ​

imp ​

• imp: any = 0

内部实现对象。

Inherited from ​

McDbEntity.imp

Accessors ​

colorIndex ​

• get colorIndex(): number

得到对象颜色索引

Returns ​

number

Inherited from ​

McDbEntity.colorIndex

• set colorIndex(val): void

设置对象颜色索引

Parameters ​

NameTypeDescription
valnumber颜色索引(ColorIndexType)

Returns ​

void

Inherited from ​

McDbEntity.colorIndex


drawOrder ​

• get drawOrder(): number

对象的显示顺序

Returns ​

number

Inherited from ​

McDbEntity.drawOrder

• set drawOrder(order): void

对象的显示顺序

Parameters ​

NameTypeDescription
ordernumber顺序值

Returns ​

void

Example

ts
import { MxCpp, MxCADSelectionSet } from "mxcad";

let ss = new MxCADSelectionSet();
if (!await ss.userSelect("\n选择对象")) return;
//得到当前图上对象的最大,小最显示顺序.
let minmaxOrder = MxCpp.getCurrentDatabase().currentSpace.getMinMaxDrawOrder();
// 把对象放到最上面。
let lOrder = minmaxOrder.maxDrawOrder + 1;
ss.forEach((id) => {
  let ent = id.getMcDbEntity();
  if (ent) {
    ent.drawOrder = lOrder;
  }
})

Inherited from ​

McDbEntity.drawOrder


dxf0 ​

• get dxf0(): string

得到对象的DXF组码的类型名,这个和AutoCAD中的DXF组码是一样。 比如直线的类型名为:McDbLine,DXF0组码值: LINE,DXF0组码值可以用来构造集时的类型过滤。

Returns ​

string

Inherited from ​

McDbEntity.dxf0


layer ​

• get layer(): string

得到对象图层名

Returns ​

string

Inherited from ​

McDbEntity.layer

• set layer(val): void

设置对象图层名

Parameters ​

NameTypeDescription
valstring图层名

Returns ​

void

Inherited from ​

McDbEntity.layer


layerId ​

• get layerId(): McObjectId

获取图层ID对象

Returns ​

McObjectId

Inherited from ​

McDbEntity.layerId

• set layerId(id): void

设置图层Id对象

Parameters ​

NameType
idMcObjectId

Returns ​

void

Inherited from ​

McDbEntity.layerId


linetype ​

• get linetype(): string

得到对象线型名

Returns ​

string

Inherited from ​

McDbEntity.linetype

• set linetype(val): void

设置对象线型名

Parameters ​

NameTypeDescription
valstring线型名

Returns ​

void

Inherited from ​

McDbEntity.linetype


linetypeId ​

• get linetypeId(): McObjectId

获取实体对象线型ID

Returns ​

McObjectId

Inherited from ​

McDbEntity.linetypeId

• set linetypeId(id): void

设置实体对象线型ID

Parameters ​

NameType
idMcObjectId

Returns ​

void

Inherited from ​

McDbEntity.linetypeId


linetypeScale ​

• get linetypeScale(): number

得到对象线型比例

Returns ​

number

Inherited from ​

McDbEntity.linetypeScale

• set linetypeScale(val): void

设置对象线型比例

Parameters ​

NameTypeDescription
valnumber线型比例

Returns ​

void

Inherited from ​

McDbEntity.linetypeScale


lineweight ​

• get lineweight(): number

得到对象线重

Returns ​

number

Inherited from ​

McDbEntity.lineweight

• set lineweight(val): void

设置对象线重

Parameters ​

NameTypeDescription
valnumber线重

Returns ​

void

Inherited from ​

McDbEntity.lineweight


normal ​

• get normal(): McGeVector3d

返回对象的normal

Returns ​

McGeVector3d

Inherited from ​

McDbEntity.normal

• set normal(val): void

设置对象的normal

Parameters ​

NameType
valMcGeVector3d

Returns ​

void

Inherited from ​

McDbEntity.normal


objectName ​

• get objectName(): string

获取对象名称。

Returns ​

string

返回对象名

Inherited from ​

McDbEntity.objectName


textStyle ​

• get textStyle(): string

得到对象文字样式

Returns ​

string

Inherited from ​

McDbEntity.textStyle

• set textStyle(val): void

设置对象文字样式

Parameters ​

NameTypeDescription
valstring文字样式名

Returns ​

void

Inherited from ​

McDbEntity.textStyle


textStyleId ​

• get textStyleId(): McObjectId

获取实体文字样式

Returns ​

McObjectId

Inherited from ​

McDbEntity.textStyleId

• set textStyleId(id): void

设置实体的文字样式

Parameters ​

NameType
idMcObjectId

Returns ​

void

Example

ts
import { MxCADUiPrEntity, McDbEntity } from "mxcad";

let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
const mxcad = MxCpp.getCurrentMxCAD();
const textStyleId = mxcad.addTextStyle("MyLineTypeTextStyle", "txt.shx", "hztxt.shx", 1);
ent.textStyleId = textStyleId;

Inherited from ​

McDbEntity.textStyleId


thickness ​

• get thickness(): number

得到对象厚度

Returns ​

number

Inherited from ​

McDbEntity.thickness

• set thickness(val): void

设置对象厚度

Parameters ​

NameType
valnumber

Returns ​

void

Inherited from ​

McDbEntity.thickness


trueColor ​

• get trueColor(): McCmColor

得到对象颜色

Returns ​

McCmColor

Inherited from ​

McDbEntity.trueColor

• set trueColor(val): void

设置对象颜色

Parameters ​

NameType
valMcCmColor

Returns ​

void

Inherited from ​

McDbEntity.trueColor


visible ​

• get visible(): boolean

对象是否可见

Returns ​

boolean

Inherited from ​

McDbEntity.visible

• set visible(val): void

设置是否可见

Parameters ​

NameTypeDescription
valboolean布尔值

Returns ​

void

Inherited from ​

McDbEntity.visible

Methods ​

IntersectWith ​

▸ IntersectWith(intersectObject, exOption): McGePoint3dArray

与其他实体相交, 得到交点

Parameters ​

NameTypeDescription
intersectObjectMcDbEntity需要相交的是实体对象
exOptionIntersect相交的选项

Returns ​

McGePoint3dArray

得到所有交点

Example

ts
import { McDbLine, McDb } from 'mxcad'
const line1 = new McDbLine(new McGePoint3d(0,0,0), new McGePoint3d(20,1,0));
const line2 = new McDbLine(new McGePoint3d(10,10,0), new McGePoint3d(11,1,0));
const ptArr = line1.IntersectWith(line2, McDb.Intersect.kExtendBoth)

Inherited from ​

McDbEntity.IntersectWith


assertObjectModification ​

▸ assertObjectModification(autoUndo?): number

设置对象被改变的状态,可自动触发更新显示函数,更新显示。 比如块表记录更新了,需要通知块引用更新显示,可以调用该函数。

Parameters ​

NameTypeDefault valueDescription
autoUndobooleanfalse这次修改是否要自动支持撤销,默认为false

Returns ​

number

Inherited from ​

McDbEntity.assertObjectModification


clone ​

▸ clone(): null | McDbObject

复制实体

Returns ​

null | McDbObject

Overrides ​

McDbEntity.clone


create ​

▸ Abstract create(imp?): McDbCustomEntity

新创建一个自定义对象 (默认调用该对象的构造函数来创建新的对象)

Parameters ​

NameType
imp?any

Returns ​

McDbCustomEntity


createExtensionDictionary ​

▸ createExtensionDictionary(): boolean

创建对象的扩展字典数据.

Returns ​

boolean

Inherited from ​

McDbEntity.createExtensionDictionary


deleteXData ​

▸ deleteXData(appName): boolean

删除实体指定应用程序名称相关的数据

Parameters ​

NameTypeDescription
appNamestring扩展数据名称

Returns ​

boolean

Example

ts
import { MxCADUiPrEntity, McDbEntity } from "mxcad";

let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
const res = ent.deleteXData("DataName");
if(res){
  //删除成功
}else
  //删除失败
}

Inherited from ​

McDbEntity.deleteXData


disableDisplay ​

▸ disableDisplay(isDisable): void

禁用对象的自动更新显示.

Parameters ​

NameTypeDescription
isDisableboolean是否禁用对象自动更新显示

Returns ​

void

Inherited from ​

McDbEntity.disableDisplay


dwgInFields ​

▸ Abstract dwgInFields(filter): boolean

从 DWG 文件中读取自定义实体的数据字段

Parameters ​

NameType
filterIMcDbDwgFiler

Returns ​

boolean


dwgOutFields ​

▸ Abstract dwgOutFields(filter): boolean

将自定义实体的数据字段写入到 DWG 文件中

Parameters ​

NameType
filterIMcDbDwgFiler

Returns ​

boolean


erase ​

▸ erase(): boolean

删除对象。

Returns ​

boolean

是否删除成功。

Inherited from ​

McDbEntity.erase


explode ​

▸ explode(): MxCADResbuf

打碎对象,返回打后对象数据链表

Returns ​

MxCADResbuf

resbuf 数据

Example

ts
import { McDbEntity, MxCADResbuf } from "mxcad";
// 获取目标对象
let getEnt = new MxCADUiPrEntity();
getEnt.setMessage("选择打碎对象:");
let id = await getEnt.go();
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
// 打碎对象
      let retExplode: MxCADResbuf = ent.explode();
      if (retExplode.GetCount() == 0) return;
      let iExplodeConut = retExplode.GetCount();
      for (let j = 0; j < iExplodeConut; j++) {
          let tmpobj = retExplode.AtObject(j).val;
          if(tmpobj instanceof McDbEntity ){
              mxcad.drawEntity(tmpobj);
          }
      }

Inherited from ​

McDbEntity.explode


getAllAppName ​

▸ getAllAppName(): McGeStringArray

获取实体中包含的所有 XData 记录的应用程序名(AppName)

Returns ​

McGeStringArray

Inherited from ​

McDbEntity.getAllAppName


getArea ​

▸ getArea(): Object

计算面积

Returns ​

Object

val 面积值 | ret 是否获取成功

NameType
retboolean
valnumber

Example

ts
import { McGePoint3d, McDbCircle } from "mxcad"

const circle = new McDbCircle(0,0,0, 20);
const area = circle.getArea();
console.log("圆面积:", area)

Inherited from ​

McDbEntity.getArea


getBoundingBox ​

▸ getBoundingBox(): Object

得到对象的最小外包

Returns ​

Object

NameType
maxPtMcGePoint3d
minPtMcGePoint3d
retboolean

Overrides ​

McDbEntity.getBoundingBox


getDatabase ​

▸ getDatabase(): McDbDatabase

得到对象所在的数据库

Returns ​

McDbDatabase

返回数据库

Inherited from ​

McDbEntity.getDatabase


getDatabaseIndexId ​

▸ getDatabaseIndexId(): number

获取对象的索引ID

Returns ​

number

Inherited from ​

McDbEntity.getDatabaseIndexId


getExtensionDictionary ​

▸ getExtensionDictionary(): McDbDictionary

得到对象的扩展字典数据.

Returns ​

McDbDictionary

扩展字典数据

Inherited from ​

McDbEntity.getExtensionDictionary


getGripEditBasePointsIndex ​

▸ getGripEditBasePointsIndex(): number[]

获取自定义对象的夹点。

Returns ​

number[]

夹点对象数组

Overrides ​

McDbEntity.getGripEditBasePointsIndex


getGripPoints ​

▸ getGripPoints(): McGePoint3dArray

获取自定义对象的夹点。

Returns ​

McGePoint3dArray

夹点对象数组

Overrides ​

McDbEntity.getGripPoints


getHandle ​

▸ getHandle(): string

得到对象句柄

Returns ​

string

返回对象句柄

Inherited from ​

McDbEntity.getHandle


getImp ​

▸ getImp(): any

获取内部实现对象。

Returns ​

any

内部实现对象。

Inherited from ​

McDbEntity.getImp


getJson ​

▸ getJson(): string

获取 JSON 格式的字符串。

Returns ​

string

JSON 格式的字符串。

Inherited from ​

McDbEntity.getJson


getName ​

▸ getName(): string

获取自定义对象名称

Returns ​

string


getObjectID ​

▸ getObjectID(): McObjectId

获取对象 ID。

Returns ​

McObjectId

对象 ID。

Inherited from ​

McDbEntity.getObjectID


getOwnerID ​

▸ getOwnerID(): number

得到对象拥用者的id

Returns ​

number

Inherited from ​

McDbEntity.getOwnerID


getTypeName ​

▸ Abstract getTypeName(): string

获取自定义实体的类型名称。

Returns ​

string

自定义实体的类型名称


getxData ​

▸ getxData(appName?): MxCADResbuf

得到对象的扩展数据

Parameters ​

NameTypeDefault valueDescription
appNamestring""扩展数据名

Returns ​

MxCADResbuf

Inherited from ​

McDbEntity.getxData


getxDataDouble ​

▸ getxDataDouble(appName): Object

获取实体的指定 XData 类型中的 double 值

Parameters ​

NameTypeDescription
appNamestring扩展数据名称

Returns ​

Object

double 值

NameType
retboolean
valnumber

Inherited from ​

McDbEntity.getxDataDouble


getxDataLong ​

▸ getxDataLong(appName): Object

获取实体的指定 XData 类型中的 long(整数)值

Parameters ​

NameTypeDescription
appNamestring扩展数据名称

Returns ​

Object

long 值

NameType
retboolean
valnumber

Inherited from ​

McDbEntity.getxDataLong


getxDataPoint ​

▸ getxDataPoint(appName): Object

获取实体的指定 XData 类型中的点对象

Parameters ​

NameTypeDescription
appNamestring扩展数据名称

Returns ​

Object

获取结果及三维点对象

NameType
retboolean
valMcGePoint3d

Inherited from ​

McDbEntity.getxDataPoint


getxDataString ​

▸ getxDataString(appName): Object

获取与特定实体关联的 XData 信息,并以字符串形式返回

Parameters ​

NameTypeDescription
appNamestring扩展数据名称

Returns ​

Object

val XData信息 | ret 是否返回成功

NameType
retboolean
valstring

Inherited from ​

McDbEntity.getxDataString


highlight ​

▸ highlight(isHighlight): void

设置对象是否高亮

Parameters ​

NameTypeDescription
isHighlightboolean是否高亮

Returns ​

void

Inherited from ​

McDbEntity.highlight


initTempObject ​

▸ initTempObject(imp): void

初始化临时对象。

Parameters ​

NameTypeDescription
impany内部实现对象。

Returns ​

void

Inherited from ​

McDbEntity.initTempObject


isErased ​

▸ isErased(): boolean

对象是否已经删除

Returns ​

boolean

Inherited from ​

McDbEntity.isErased


isHaveExtensionDictionary ​

▸ isHaveExtensionDictionary(): boolean

是否有扩展字典数据.

Returns ​

boolean

Inherited from ​

McDbEntity.isHaveExtensionDictionary


isKindOf ​

▸ isKindOf(sObjectName): boolean

判断对象类型

Parameters ​

NameTypeDescription
sObjectNamestring类型名

Returns ​

boolean

返回对象是否是目标类型

Inherited from ​

McDbEntity.isKindOf


isNull ​

▸ isNull(): any

判断是否为空对象

Returns ​

any

Inherited from ​

McDbEntity.isNull


mirror ​

▸ mirror(point1, point2): boolean

镜向对象

Parameters ​

NameTypeDescription
point1McGePoint3d镜像基点
point2McGePoint3d-

Returns ​

boolean

Inherited from ​

McDbEntity.mirror


move ​

▸ move(fromPoint, toPoint): boolean

移动对象

Parameters ​

NameTypeDescription
fromPointMcGePoint3d移动开始点
toPointMcGePoint3d移动结束点

Returns ​

boolean

Inherited from ​

McDbEntity.move


moveGripPointsAt ​

▸ moveGripPointsAt(_iIndex, _dXOffset, _dYOffset, _dZOffset): void

移动自定义对象的夹点。

Parameters ​

NameTypeDescription
_iIndexnumber夹点索引
_dXOffsetnumberX轴偏移量
_dYOffsetnumberY轴偏移量
_dZOffsetnumberZ轴偏移量

Returns ​

void

Example

ts
  import { McDbCustomEntity, MxCADWorldDraw, McDbLine } from 'mxcad';
  // 新创建 McDbTestLineCustomEntity 类继承 McDbCustomEntity
  class McDbTestLineCustomEntity extends McDbCustomEntity {
       // 定义McDbTestLineCustomEntity内部的点对象 pt1、pt2
       private pt1: McGePoint3d = new McGePoint3d();
       private pt2: McGePoint3d = new McGePoint3d();
       // 移动自定义对象的夹点。
       public moveGripPointsAt(iIndex: number, dXOffset: number, dYOffset: number, dZOffset: number) {
           this.assertWrite();
           if (iIndex == 0) {
           this.pt1.x += dXOffset;
           this.pt1.y += dYOffset;
           this.pt1.z += dZOffset;
           }
           else if (iIndex == 1) {
           this.pt2.x += dXOffset;
           this.pt2.y += dYOffset;
           this.pt2.z += dZOffset;
           }
       };
   }

Overrides ​

McDbEntity.moveGripPointsAt


rotate ​

▸ rotate(basePoint, dRotationAngle): boolean

旋转对象

Parameters ​

NameTypeDescription
basePointMcGePoint3d旋转基点
dRotationAnglenumber旋转角度

Returns ​

boolean

Inherited from ​

McDbEntity.rotate


rxInit ​

▸ rxInit(): void

自定义实体注册

Returns ​

void

Example

ts
import { MxFun } from 'mxdraw
// MxCAD创建成功
MxFun.on("mxcadApplicationCreatedMxCADObject", (param) => {
// McDbTestLineCustomEntity 自定义实体
  new McDbTestLineCustomEntity().rxInit();// 自定义实体注册
  MxFun.addCommand("MxTest_DrawCustomEntity");// 注册绘制实体命令
})

scaleEntity ​

▸ scaleEntity(basePoint, dScaleFactor): boolean

缩放对象

Parameters ​

NameTypeDescription
basePointMcGePoint3d缩放基点
dScaleFactornumber缩放因子(<1 缩小; >1 放大)

Returns ​

boolean

Inherited from ​

McDbEntity.scaleEntity


setJson ​

▸ setJson(str): boolean

设置 JSON 格式的字符串。

Parameters ​

NameTypeDescription
strstringJSON 格式的字符串。

Returns ​

boolean

是否设置成功。

Inherited from ​

McDbEntity.setJson


setxData ​

▸ setxData(xdata): boolean

设置对象的扩展数据

Parameters ​

NameTypeDescription
xdataMxCADResbuf扩展数据链表

Returns ​

boolean

Example

ts
import { MxCADUiPrEntity, McDbEntity } from "mxcad";

//设置扩展数据
let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
ent.setxData(new MxCADResbuf([{type:DxfCode.kExDataName,val:"DataName"},{type:DxfCode.kString,val:"yyyyy"}]));

Inherited from ​

McDbEntity.setxData


setxDataDouble ​

▸ setxDataDouble(appName, val): boolean

设置实体的指定 XData 类型中的 double 值

Parameters ​

NameTypeDescription
appNamestring扩展数据名称
valnumberdouble 值

Returns ​

boolean

布尔值

Example

ts
import { MxCADUiPrEntity, McDbEntity } from "mxcad";
let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
const res = ent.setxDataDouble("DataName", 0);
if(res){
  //设置成功
}else{
  //设置失败
}

Inherited from ​

McDbEntity.setxDataDouble


setxDataLong ​

▸ setxDataLong(appName, val): boolean

设置实体的指定 XData 类型中的 long(整数)值

Parameters ​

NameTypeDescription
appNamestring扩展数据名称
valnumberlong 值

Returns ​

boolean

long 值

Example

ts
import { MxCADUiPrEntity, McDbEntity } from "mxcad";

let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let id = await selEntity.go();
if (!id.isValid()) return;
let ent:McDbEntity = id.getMcDbEntity();
if (ent === null) return;
const res = ent.setxDataLong("DataName", 123456);
if(res){
  //设置成功
}else{
  //设置失败
}

Inherited from ​

McDbEntity.setxDataLong


setxDataPoint ​

▸ setxDataPoint(appName, val): boolean

设置实体的指定 XData 类型中的点对象

Parameters ​

NameTypeDescription
appNamestring扩展数据名称
valMcGePoint3d点对象

Returns ​

boolean

获取结果及三维点对象

Inherited from ​

McDbEntity.setxDataPoint


setxDataString ​

▸ setxDataString(appName, val): boolean

设置与特定实体关联的 XData 信息,并以字符串形式设置

Parameters ​

NameTypeDescription
appNamestring扩展数据名称
valstring字符串值

Returns ​

boolean

是否设置成功

Inherited from ​

McDbEntity.setxDataString


syncData ​

▸ syncData(toCpp?): boolean

js 对像的数据与McDbCustomEntity::m_mapData的同步。

Parameters ​

NameTypeDefault value
toCppbooleantrue

Returns ​

boolean

Overrides ​

McDbEntity.syncData


transformBy ​

▸ transformBy(_mat): boolean

获取自定义对象矩阵坐标变换

Parameters ​

NameType
_matMcGeMatrix3d

Returns ​

boolean

Overrides ​

McDbEntity.transformBy


unErase ​

▸ unErase(): boolean

反删除对象。

Returns ​

boolean

Inherited from ​

McDbEntity.unErase


updateDisplay ​

▸ updateDisplay(): void

显示调用对象更新显示.

Returns ​

void

Inherited from ​

McDbEntity.updateDisplay


worldDraw ​

▸ Abstract worldDraw(draw): void

绘制自定义实体

Parameters ​

NameType
drawMxCADWorldDraw

Returns ​

void