mxcad_2d API 文档 / 2d / McDbCustomEntity
Class: McDbCustomEntity 
2d.McDbCustomEntity
自定义实体。
Example
import { IMcDbDwgFiler, McDbCustomEntity, McDbLine, McDbPolyline, McGePoint3d, McGePoint3dArray, MxCADUiPrPoint, MxCADWorldDraw, MxCpp } from "mxcad";
import { MxFun } from "mxdraw";
   // 新创建 McDbTestLineCustomEntity 类继承 McDbCustomEntity
   class McDbTestLineCustomEntity extends McDbCustomEntity {
   // 定义McDbTestLineCustomEntity内部的点对象 pt1、pt2
   private pt1: McGePoint3d = new McGePoint3d();
   private pt2: McGePoint3d = new McGePoint3d();
   // 构造函数
   constructor(imp?: any) {
       super(imp);
   }
   // 创建函数
   public create(imp: any) {
       return new McDbTestLineCustomEntity(imp)
   }
   // 获取类名
   public getTypeName(): string {
       return "McDbTestLineCustomEntity";
   }
   // 读取自定义实体数据pt1、pt2
   public dwgInFields(filter: IMcDbDwgFiler): boolean {
       this.pt1 = filter.readPoint("pt1").val;
       this.pt2 = filter.readPoint("pt2").val;
       return true;
   }
   // 写入自定义实体数据pt1、pt2
   public dwgOutFields(filter: IMcDbDwgFiler): boolean {
       filter.writePoint("pt1", this.pt1);
       filter.writePoint("pt2", this.pt2);
       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);
       let pl= new McDbPolyline()
       pl.addVertexAt(this.pt1)
       pl.addVertexAt(this.pt2)
       pl.addVertexAt(new McGePoint3d())
       draw.drawEntity(pl);
   }
   // 设置pt1
   public setPoint1(pt1: McGePoint3d) {
       this.assertWrite();
       this.pt1 = pt1.clone();
   }
   // 设置pt2   
   public setPoint2(pt2: McGePoint3d) {
       this.assertWrite();
       this.pt2 = pt2.clone();
   }
   // 获取pt1
   public getPoint1() {
       return this.pt1;
   }
   // 获取pt2
   public getPoint2() {
       return this.pt2;
   }
   }Hierarchy 
↳
McDbCustomEntity↳↳
MxCADMText↳↳
McDbMLine
Table of contents 
Constructors 
Properties 
Accessors 
- colorIndex
 - drawOrder
 - dxf0
 - layer
 - layerId
 - linetype
 - linetypeId
 - linetypeScale
 - lineweight
 - normal
 - objectName
 - textStyle
 - textStyleId
 - trueColor
 - visible
 
Methods 
- IntersectWith
 - assertObjectModification
 - clone
 - create
 - createExtensionDictionary
 - deleteXData
 - disableDisplay
 - dwgInFields
 - dwgOutFields
 - erase
 - explode
 - getAllAppName
 - getArea
 - getBoundingBox
 - getDatabase
 - getDatabaseIndexId
 - getExtensionDictionary
 - getGripPoints
 - getHandle
 - getImp
 - getJson
 - getName
 - getObjectID
 - getOwnerID
 - getTypeName
 - getxData
 - getxDataDouble
 - getxDataLong
 - getxDataPoint
 - getxDataString
 - highlight
 - initTempObject
 - isErased
 - isHaveExtensionDictionary
 - isKindOf
 - isNull
 - mirror
 - move
 - moveGripPointsAt
 - rotate
 - rxInit
 - scaleEntity
 - setJson
 - setxData
 - setxDataDouble
 - setxDataLong
 - setxDataPoint
 - setxDataString
 - syncData
 - transformBy
 - unErase
 - updateDisplay
 - worldDraw
 
Constructors 
constructor 
• new McDbCustomEntity(imp?)
构造函数。
Parameters 
| Name | Type | Description | 
|---|---|---|
imp? | any | 内部实现对象。 | 
Overrides 
Properties 
imp 
• imp: any = 0
内部实现对象。
Inherited from 
Accessors 
colorIndex 
• get colorIndex(): number
得到对象颜色索引
Example
 import { McDbEntity, ColorIndexType } from 'mxcad'
 const ent = new McDbEntity();
 ent.colorIndex = ColorIndexType.kByblock;
 console.log(ent.colorIndex)Returns 
number
Inherited from 
McDbEntity.colorIndex
• set colorIndex(val): void
设置对象颜色索引
Parameters 
| Name | Type | Description | 
|---|---|---|
val | number | 颜色索引(ColorIndexType) | 
Returns 
void
Inherited from 
McDbEntity.colorIndex
drawOrder 
• get drawOrder(): number
对象的显示顺序
Example
// 假设ent为有效实例对象
const order = ent.drawOrder();Returns 
number
Inherited from 
McDbEntity.drawOrder
• set drawOrder(order): void
对象的显示顺序
Example
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;
  }
})Parameters 
| Name | Type | Description | 
|---|---|---|
order | number | 顺序值 | 
Returns 
void
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
设置对象图层名
Example
 import { McDbEntity } from 'mxcad'
 const ent = new McDbEntity();
 ent.layer = "newLayerName";
 console.log(ent.layer)Parameters 
| Name | Type | Description | 
|---|---|---|
val | string | 图层名 | 
Returns 
void
Inherited from 
McDbEntity.layer
layerId 
• get layerId(): McObjectId
获取图层ID对象
Example
// 假设ent为有效实例对象
const layerId = ent.layerId;Returns 
Inherited from 
McDbEntity.layerId
• set layerId(id): void
设置图层Id对象
Example
// 假设ent为有效实例对象
const mxcad = MxCpp.getCurrentMxCAD();
const layerId = mxcad.addLayer("测试图层")
ent.layerId = layerId;Parameters 
| Name | Type | 
|---|---|
id | McObjectId | 
Returns 
void
Inherited from 
McDbEntity.layerId
linetype 
• get linetype(): string
得到对象线型名
Returns 
string
Inherited from 
McDbEntity.linetype
• set linetype(val): void
设置对象线型名
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.linetype = "MyLineType";
console.log(ent.linetype)Parameters 
| Name | Type | Description | 
|---|---|---|
val | string | 线型名 | 
Returns 
void
Inherited from 
McDbEntity.linetype
linetypeId 
• get linetypeId(): McObjectId
获取实体对象线型ID
Example
// 假设ent为有效实例对象
const linetypeId = ent.linetypeId;Returns 
Inherited from 
McDbEntity.linetypeId
• set linetypeId(id): void
设置实体对象线型ID
Example
// 假设ent为有效实例对象
const mxcad = MxCpp.getCurrentMxCAD();
const lineId = mxcad.addLinetypeEx("TestMyLine", '25,-5');
ent.linetypeId = lineId;Parameters 
| Name | Type | 
|---|---|
id | McObjectId | 
Returns 
void
Inherited from 
McDbEntity.linetypeId
linetypeScale 
• get linetypeScale(): number
得到对象线型比例
Returns 
number
Inherited from 
McDbEntity.linetypeScale
• set linetypeScale(val): void
设置对象线型比例
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.linetypeScale = 0.8;
console.log(ent.linetypeScale)Parameters 
| Name | Type | Description | 
|---|---|---|
val | number | 线型比例 | 
Returns 
void
Inherited from 
McDbEntity.linetypeScale
lineweight 
• get lineweight(): number
得到对象线重
Returns 
number
Inherited from 
McDbEntity.lineweight
• set lineweight(val): void
设置对象线重
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.lineweight = 20;
console.log(ent.lineweight)Parameters 
| Name | Type | Description | 
|---|---|---|
val | number | 线重 | 
Returns 
void
Inherited from 
McDbEntity.lineweight
normal 
• get normal(): McGeVector3d
返回对象的normal
Example
Returns 
Inherited from 
McDbEntity.normal
• set normal(val): void
设置对象的normal
Example
Parameters 
| Name | Type | 
|---|---|
val | McGeVector3d | 
Returns 
void
Inherited from 
McDbEntity.normal
objectName 
• get objectName(): string
获取对象名称。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
console.log(obj.objectName);Returns 
string
返回对象名
Inherited from 
McDbEntity.objectName
textStyle 
• get textStyle(): string
得到对象文字样式
Returns 
string
Inherited from 
McDbEntity.textStyle
• set textStyle(val): void
设置对象文字样式
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.textStyle = "st_style";Parameters 
| Name | Type | Description | 
|---|---|---|
val | string | 文字样式名 | 
Returns 
void
Inherited from 
McDbEntity.textStyle
textStyleId 
• get textStyleId(): McObjectId
获取实体文字样式
Example
// 假设ent为有效实例对象
const textStyleId = ent.textStyleId;Returns 
Inherited from 
McDbEntity.textStyleId
• set textStyleId(id): void
设置实体的文字样式
Example
// 假设ent为有效实例对象
const mxcad = MxCpp.getCurrentMxCAD();
const textStyleId = mxcad.addTextStyle("MyLineTypeTextStyle", "txt.shx", "hztxt.shx", 1);
ent.textStyleId = textStyleId;Parameters 
| Name | Type | 
|---|---|
id | McObjectId | 
Returns 
void
Inherited from 
McDbEntity.textStyleId
trueColor 
• get trueColor(): McCmColor
得到对象颜色
Example
 import { McDbEntity, McCmColor} from 'mxcad'
 const ent = new McDbEntity();
 ent.trueColor = new McCmColor(255, 0, 0);
 console.log(ent.trueColor)Returns 
Inherited from 
McDbEntity.trueColor
• set trueColor(val): void
设置对象颜色
Parameters 
| Name | Type | 
|---|---|
val | McCmColor | 
Returns 
void
Inherited from 
McDbEntity.trueColor
visible 
• get visible(): boolean
对象是否可见
Returns 
boolean
Inherited from 
McDbEntity.visible
• set visible(val): void
设置是否可见
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.visible = true;
console.log(ent.visible)Parameters 
| Name | Type | Description | 
|---|---|---|
val | boolean | 布尔值 | 
Returns 
void
Inherited from 
McDbEntity.visible
Methods 
IntersectWith 
▸ IntersectWith(intersectObject, exOption): McGePoint3dArray
与其他实体相交, 得到交点
Example
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)Parameters 
| Name | Type | Description | 
|---|---|---|
intersectObject | McDbEntity | 需要相交的是实体对象 | 
exOption | Intersect | 相交的选项 | 
Returns 
得到所有交点
Inherited from 
assertObjectModification 
▸ assertObjectModification(autoUndo?): number
设置对象被改变的状态,可自动触发更新显示函数,更新显示。 比如块表记录更新了,需要通知块引用更新显示,可以调用该函数。
Example
//假设obj为一个数据库对象
obj.assertObjectModification()Parameters 
| Name | Type | Default value | 
|---|---|---|
autoUndo | boolean | false | 
Returns 
number
Inherited from 
McDbEntity.assertObjectModification
clone 
▸ clone(): null | McDbObject
复制实体
Example
import { McDbCustomEntity } from "mxcad";
const customEnt = new McDbCustomEntity();// 构造新自定义实体对象
const cloneEnt = customEnt.clone();// 复制实体Returns 
null | McDbObject
Overrides 
create 
▸ Abstract create(imp?): McDbCustomEntity
新创建一个自定义对象 (默认调用该对象的构造函数来创建新的对象)
Parameters 
| Name | Type | 
|---|---|
imp? | any | 
Returns 
createExtensionDictionary 
▸ createExtensionDictionary(): boolean
创建对象的扩展字典数据.
Example
//假设obj为一个数据库对象
const res = obj.createExtensionDictionary();Returns 
boolean
Inherited from 
McDbEntity.createExtensionDictionary
deleteXData 
▸ deleteXData(appName): boolean
删除实体指定应用程序名称相关的数据
Example
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
  //删除失败
}Parameters 
| Name | Type | Description | 
|---|---|---|
appName | string | 扩展数据名称 | 
Returns 
boolean
Inherited from 
disableDisplay 
▸ disableDisplay(isDisable): void
禁用对象的自动更新显示.
Example
import { McDbLine } from 'mxcad'
const line1 = new McDbLine(new McGePoint3d(0,0,0), new McGePoint3d(20,1,0));
line1.disableDisplay(true)Parameters 
| Name | Type | Description | 
|---|---|---|
isDisable | boolean | 是否禁用对象自动更新显示 | 
Returns 
void
Inherited from 
dwgInFields 
▸ Abstract dwgInFields(filter): boolean
从 DWG 文件中读取自定义实体的数据字段
Example
 import { McDbCustomEntity, IMcDbDwgFiler } from 'mxcad'
 // 新创建 McDbTestLineCustomEntity 类继承 McDbCustomEntity
 class McDbTestLineCustomEntity extends McDbCustomEntity {
   // 定义McDbTestLineCustomEntity内部的点对象 pt1、pt2
   private pt1: McGePoint3d = new McGePoint3d();
   private pt2: McGePoint3d = new McGePoint3d(); 
   // 读取自定义实体的数据字段pt1、pt2
   public dwgInFields(filter: IMcDbDwgFiler): boolean {
   this.pt1 = filter.readPoint("pt1").val;
   this.pt2 = filter.readPoint("pt2").val;
   return true;
   }
 }Parameters 
| Name | Type | 
|---|---|
filter | IMcDbDwgFiler | 
Returns 
boolean
dwgOutFields 
▸ Abstract dwgOutFields(filter): boolean
将自定义实体的数据字段写入到 DWG 文件中
Example
 // 新创建 McDbTestLineCustomEntity 类继承 McDbCustomEntity
 import { McDbCustomEntity, IMcDbDwgFiler } from 'mxcad'
 class McDbTestLineCustomEntity extends McDbCustomEntity {
   // 定义McDbTestLineCustomEntity内部的点对象 pt1、pt2
   private pt1: McGePoint3d = new McGePoint3d();
   private pt2: McGePoint3d = new McGePoint3d();
   // 写入自定义实体的数据字段pt1、pt2
   public dwgOutFields(filter: IMcDbDwgFiler): boolean {
       filter.writePoint("pt1", this.pt1);
       filter.writePoint("pt2", this.pt2);
       return true;
   }
   }Parameters 
| Name | Type | 
|---|---|
filter | IMcDbDwgFiler | 
Returns 
boolean
erase 
▸ erase(): boolean
删除对象。
Example
//假设obj为一个数据库对象
const res = obj.erase();
console.log(res);Returns 
boolean
是否删除成功。
Inherited from 
explode 
▸ explode(): MxCADResbuf
打碎对象,返回打后对象数据链表
Example
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);
          }
      }Returns 
resbuf 数据
Inherited from 
getAllAppName 
▸ getAllAppName(): McGeStringArray
获取实体中包含的所有 XData 记录的应用程序名(AppName)
Example
// 假设ent为有效实例对象
const appNames = ent.getAllAppName();
console.log(appNames);Returns 
Inherited from 
getArea 
▸ getArea(): Object
计算面积
Example
import { McGePoint3d, McDbCircle } from "mxcad"
const center = new McGePoint3d(0,0,0);
const circle = new McDbCircle(center, 20);
const area = circle.getArea();
console.log("圆面积:", area)Returns 
Object
val 面积值 | ret 是否获取成功
| Name | Type | 
|---|---|
ret | boolean | 
val | number | 
Inherited from 
getBoundingBox 
▸ getBoundingBox(): Object
得到对象的最小外包
Returns 
Object
| Name | Type | 
|---|---|
maxPt | McGePoint3d | 
minPt | McGePoint3d | 
ret | boolean | 
Overrides 
getDatabase 
▸ getDatabase(): McDbDatabase
得到对象所在的数据库
Example
//假设obj为一个数据库对象
const data = obj.getDatabase();Returns 
返回数据库
Inherited from 
getDatabaseIndexId 
▸ getDatabaseIndexId(): number
获取对象的索引ID
Example
//假设obj为一个数据库对象
const id = obj.getDatabaseIndexId();Returns 
number
Inherited from 
getExtensionDictionary 
▸ getExtensionDictionary(): McDbDictionary
得到对象的扩展字典数据.
Example
//假设obj为一个数据库对象
const id = obj.getOwnerID();Returns 
扩展字典数据
Inherited from 
McDbEntity.getExtensionDictionary
getGripPoints 
▸ getGripPoints(): McGePoint3dArray
获取自定义对象的夹点。
Returns 
夹点对象数组
Overrides 
getHandle 
▸ getHandle(): string
得到对象句柄
Example
//假设obj为一个数据库对象
const handle = obj.getHandle();Returns 
string
返回对象句柄
Inherited from 
getImp 
▸ getImp(): any
获取内部实现对象。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
let imp = obj.getImp();Returns 
any
内部实现对象。
Inherited from 
getJson 
▸ getJson(): string
获取 JSON 格式的字符串。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
const json = obj.getJson()Returns 
string
JSON 格式的字符串。
Inherited from 
getName 
▸ getName(): string
获取自定义对象名称
Returns 
string
getObjectID 
▸ getObjectID(): McObjectId
获取对象 ID。
Example
import { McDbObject } from "mxcad";
const id = obj.getObjectID();Returns 
对象 ID。
Inherited from 
getOwnerID 
▸ getOwnerID(): number
得到对象拥用者的id
Example
//假设obj为一个数据库对象
const id = obj.getOwnerID();Returns 
number
Inherited from 
getTypeName 
▸ Abstract getTypeName(): string
获取自定义实体的类型名称。
Returns 
string
自定义实体的类型名称
getxData 
▸ getxData(appName?): MxCADResbuf
得到对象的扩展数据
Example
// 假设ent为有效实例对象
const xData = ent.getXData();Parameters 
| Name | Type | Default value | Description | 
|---|---|---|---|
appName | string | "" | 扩展数据名 | 
Returns 
Inherited from 
getxDataDouble 
▸ getxDataDouble(appName): Object
获取实体的指定 XData 类型中的 double 值
Example
// 假设ent为有效实例对象
let data = ent.getxDataDouble("DataName");
if(data.ret){
  console.log(data.val)
}Parameters 
| Name | Type | Description | 
|---|---|---|
appName | string | 扩展数据名称 | 
Returns 
Object
double 值
| Name | Type | 
|---|---|
ret | boolean | 
val | number | 
Inherited from 
getxDataLong 
▸ getxDataLong(appName): Object
获取实体的指定 XData 类型中的 long(整数)值
Example
// 假设ent为有效实例对象
let data = ent.getxDataLong("DataName");
if(data.ret){
  console.log(data.val)
}Parameters 
| Name | Type | Description | 
|---|---|---|
appName | string | 扩展数据名称 | 
Returns 
Object
long 值
| Name | Type | 
|---|---|
ret | boolean | 
val | number | 
Inherited from 
getxDataPoint 
▸ getxDataPoint(appName): Object
获取实体的指定 XData 类型中的点对象
Parameters 
| Name | Type | Description | 
|---|---|---|
appName | string | 扩展数据名称 | 
Returns 
Object
获取结果及三维点对象
| Name | Type | 
|---|---|
ret | boolean | 
val | McGePoint3d | 
Inherited from 
getxDataString 
▸ getxDataString(appName): Object
获取与特定实体关联的 XData 信息,并以字符串形式返回
Example
// 假设ent为有效实例对象
let data = ent.getxDataString("DataName");
if(data.ret){
  console.log(data.val)
}Parameters 
| Name | Type | Description | 
|---|---|---|
appName | string | 扩展数据名称 | 
Returns 
Object
val XData信息 | ret 是否返回成功
| Name | Type | 
|---|---|
ret | boolean | 
val | string | 
Inherited from 
highlight 
▸ highlight(isHighlight): void
设置对象是否高亮
Example
import { McDbEntity } from 'mxcad'
const ent = new McDbEntity()
ent.highlight(true);Parameters 
| Name | Type | Description | 
|---|---|---|
isHighlight | boolean | 是否高亮 | 
Returns 
void
Inherited from 
initTempObject 
▸ initTempObject(imp): void
初始化临时对象。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
obj.initTempObject()Parameters 
| Name | Type | Description | 
|---|---|---|
imp | any | 内部实现对象。 | 
Returns 
void
Inherited from 
isErased 
▸ isErased(): boolean
对象是否已经删除
Example
//假设obj为一个数据库对象
const res = obj.isErased();
console.log(res);Returns 
boolean
Inherited from 
isHaveExtensionDictionary 
▸ isHaveExtensionDictionary(): boolean
是否有扩展字典数据.
Example
//假设obj为一个数据库对象
const res = obj.isHaveExtensionDictionary();Returns 
boolean
Inherited from 
McDbEntity.isHaveExtensionDictionary
isKindOf 
▸ isKindOf(sObjectName): boolean
判断对象类型
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
let isKind = obj.isKindOf('SomeObjectType');
console.log(isKind); // 输出: true 或 falseParameters 
| Name | Type | Description | 
|---|---|---|
sObjectName | string | 类型名 | 
Returns 
boolean
返回对象是否是目标类型
Inherited from 
isNull 
▸ isNull(): any
判断是否为空对象
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
console.log(obj.isNull()); // 输出: true 或 falseReturns 
any
Inherited from 
mirror 
▸ mirror(point1, point2): boolean
镜向对象
Example
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.mirror(new McGePoint3d(0,0,0), new McGePoint3d(20,10,0))Parameters 
| Name | Type | Description | 
|---|---|---|
point1 | McGePoint3d | 镜像基点 | 
point2 | McGePoint3d | - | 
Returns 
boolean
Inherited from 
move 
▸ move(fromPoint, toPoint): boolean
移动对象
Example
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.move(new McGePoint3d(0,0,0), new McGePoint3d(20,0,0))Parameters 
| Name | Type | Description | 
|---|---|---|
fromPoint | McGePoint3d | 移动开始点 | 
toPoint | McGePoint3d | 移动结束点 | 
Returns 
boolean
Inherited from 
moveGripPointsAt 
▸ moveGripPointsAt(_iIndex, _dXOffset, _dYOffset, _dZOffset): void
移动自定义对象的夹点。
Example
  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;
           }
       };
   }Parameters 
| Name | Type | Description | 
|---|---|---|
_iIndex | number | 夹点索引 | 
_dXOffset | number | X轴偏移量 | 
_dYOffset | number | Y轴偏移量 | 
_dZOffset | number | Z轴偏移量 | 
Returns 
void
Overrides 
rotate 
▸ rotate(basePoint, dRotationAngle): boolean
旋转对象
Example
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.rotate(new McGePoint3d(0,0,0), Math.PI)Parameters 
| Name | Type | Description | 
|---|---|---|
basePoint | McGePoint3d | 旋转基点 | 
dRotationAngle | number | 旋转角度 | 
Returns 
boolean
Inherited from 
rxInit 
▸ rxInit(): void
自定义实体注册
Example
import { MxFun } from 'mxdraw
// MxCAD创建成功
MxFun.on("mxcadApplicationCreatedMxCADObject", (param) => {
// McDbTestLineCustomEntity 自定义实体
  new McDbTestLineCustomEntity().rxInit();// 自定义实体注册
  MxFun.addCommand("MxTest_DrawCustomEntity");// 注册绘制实体命令
})Returns 
void
scaleEntity 
▸ scaleEntity(basePoint, dScaleFactor): boolean
缩放对象
Example
import { McDbEntity, McGePoint3d } from 'mxcad'
const ent = new McDbEntity()
ent.scaleEntity(new McGePoint3d(0,0,0), 0.5)Parameters 
| Name | Type | Description | 
|---|---|---|
basePoint | McGePoint3d | 缩放基点 | 
dScaleFactor | number | 缩放因子(<1 缩小; >1 放大) | 
Returns 
boolean
Inherited from 
setJson 
▸ setJson(str): boolean
设置 JSON 格式的字符串。
Example
import { McRxObject } from 'mxcad';
let obj = new McRxObject();
const res = obj.setJson('{"key": "value"}');
console.log(res)Parameters 
| Name | Type | Description | 
|---|---|---|
str | string | JSON 格式的字符串。 | 
Returns 
boolean
是否设置成功。
Inherited from 
setxData 
▸ setxData(xdata): boolean
设置对象的扩展数据
Example
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"}]));Parameters 
| Name | Type | Description | 
|---|---|---|
xdata | MxCADResbuf | 扩展数据链表 | 
Returns 
boolean
Inherited from 
setxDataDouble 
▸ setxDataDouble(appName, val): boolean
设置实体的指定 XData 类型中的 double 值
Example
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{
  //设置失败
}Parameters 
| Name | Type | Description | 
|---|---|---|
appName | string | 扩展数据名称 | 
val | number | double 值 | 
Returns 
boolean
布尔值
Inherited from 
setxDataLong 
▸ setxDataLong(appName, val): boolean
设置实体的指定 XData 类型中的 long(整数)值
Example
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{
  //设置失败
}Parameters 
| Name | Type | Description | 
|---|---|---|
appName | string | 扩展数据名称 | 
val | number | long 值 | 
Returns 
boolean
long 值
Inherited from 
setxDataPoint 
▸ setxDataPoint(appName, val): boolean
设置实体的指定 XData 类型中的点对象
Parameters 
| Name | Type | Description | 
|---|---|---|
appName | string | 扩展数据名称 | 
val | McGePoint3d | 点对象 | 
Returns 
boolean
获取结果及三维点对象
Inherited from 
setxDataString 
▸ setxDataString(appName, val): boolean
设置与特定实体关联的 XData 信息,并以字符串形式设置
Example
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.setxDataString("DataName", "xxxxx");
if(res){
  //设置成功
}else{
  //设置失败
}Parameters 
| Name | Type | Description | 
|---|---|---|
appName | string | 扩展数据名称 | 
val | string | 字符串值 | 
Returns 
boolean
是否设置成功
Inherited from 
syncData 
▸ syncData(toCpp?): boolean
js 对像的数据与McDbCustomEntity::m_mapData的同步。
Parameters 
| Name | Type | Default value | 
|---|---|---|
toCpp | boolean | true | 
Returns 
boolean
Overrides 
transformBy 
▸ transformBy(_mat): boolean
获取自定义对象矩阵坐标变换
Parameters 
| Name | Type | 
|---|---|
_mat | McGeMatrix3d | 
Returns 
boolean
Overrides 
unErase 
▸ unErase(): boolean
反删除对象。
Example
//假设obj为一个数据库对象
const res = obj.unErase();
console.log(res);Returns 
boolean
Inherited from 
updateDisplay 
▸ updateDisplay(): void
显示调用对象更新显示.
Example
// 假设ent为有效实例对象
ent.updateDisplay()Returns 
void
Inherited from 
worldDraw 
▸ Abstract worldDraw(draw): void
绘制自定义实体
Example
  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 worldDraw(draw: MxCADWorldDraw): void {
       let tmpline = new McDbLine(this.pt1, this.pt2);
       draw.drawEntity(tmpline);
     }
   }Parameters 
| Name | Type | 
|---|---|
draw | MxCADWorldDraw | 
Returns 
void
