Skip to content
On this page

mxcad_2d API 文档 / 2d / McObject

Class: McObject

2d.McObject

McObject 类, 封装了与 MxCAD 对象相关的功能,并提供了一些方法来操作和管理这些功能

Table of contents

Constructors

Accessors

Methods

Constructors

constructor

new McObject(imp?)

构造函数

Parameters

NameTypeDescription
imp?any对象实现

Example

ts
import { McObject } from 'mxcad'

const mxcad = new McObject;

Accessors

database

get database(): McDbDatabase

返回数据库对象

Returns

McDbDatabase


drawColor

get drawColor(): McCmColor

获取绘制颜色

Returns

McCmColor

返回绘制颜色

set drawColor(val): void

设置绘制颜色

Parameters

NameTypeDescription
valMcCmColor绘制颜色

Returns

void

Example

ts
import { MxCpp, McObject } from 'mxcad';
const mxcad:McObject = MxCpp.App.getCurrentMxCAD();
mxcad.drawColor = new McCmColor(0, 0, 255);

drawColorIndex

get drawColorIndex(): number

设置绘制颜色索引

Returns

number

val 颜色索引类型

set drawColorIndex(val): void

设置绘制颜色索引

Parameters

NameTypeDescription
valnumber颜色索引类型

Returns

void

Example

ts
import { MxCpp, ColorIndexType, McObject } from "mxcad" ;
const mxcad:McObject = MxCpp.App.getCurrentMxCAD();
mxcad.drawColorIndex = ColorIndexType.kMagenta;

drawDimStyle

get drawDimStyle(): string

获取当前绘制的标注样式

Returns

string

set drawDimStyle(val): void

设置当前绘制的标注样式

Parameters

NameTypeDescription
valstring样式名称

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawDimStyle = "MyDimStyle2"

drawLayer

get drawLayer(): string

获取绘制图层

Returns

string

返回绘制图层

set drawLayer(val): void

设置绘制图层

Parameters

NameTypeDescription
valstring绘制图层

Returns

void

Example

ts
import { MxCpp, McObject } from 'mxcad'
  const mxcad:McObject = MxCpp.getCurrentMxCAD();
   mxcad.drawLayer = "MtextLayer";

drawLineTypeScale

get drawLineTypeScale(): number

获取绘制线型比例

Returns

number

返回绘制线型比例

set drawLineTypeScale(val): void

设置绘制线型比例

Parameters

NameTypeDescription
valnumber绘制线型比例

Returns

void


drawLineWeight

get drawLineWeight(): LineWeight

获取绘制线宽

Returns

LineWeight

返回绘制线宽

set drawLineWeight(val): void

设置绘制线宽

Parameters

NameTypeDescription
valLineWeight绘制线宽

Returns

void

Example

ts
import { MxCpp, McDb, McObject } from "mxcad" ;

const mxcad: McObject = MxCpp.App.getCurrentMxCAD();
mxcad.drawLineWeight(McDb.LineWeight.kLnWtByLayer)

drawLineWidth

get drawLineWidth(): number

获取当前绘制的线宽

Returns

number

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad: McObject = MxCpp.getCurrentMxCAD()
mxcad.drawLineWidth = 4;

set drawLineWidth(val): void

设置当前绘制的线宽

Parameters

NameTypeDescription
valnumber线宽

Returns

void


drawLinetype

get drawLinetype(): string

获取绘制线型

Returns

string

返回绘制线型

set drawLinetype(val): void

设置绘制线型

Parameters

NameTypeDescription
valstring绘制线型

Returns

void

Example

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

const mxcad: McObject = MxCpp.App.getCurrentMxCAD();
mxcad.addLinetype("MyLineType3", "30,-10");
mxcad.drawLinetype = "MyLineType3";

drawPatternDefinition

get drawPatternDefinition(): string

获取当前绘制的线型定义

Returns

string

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad: McObject = MxCpp.getCurrentMxCAD()
mxcad.drawPatternDefinition = "MyHatchPattern1";

set drawPatternDefinition(val): void

设置当前绘制的线型定义

Parameters

NameTypeDescription
valstring线型定义

Returns

void


drawTextStyle

get drawTextStyle(): string

获取绘制文字样式

Returns

string

返回绘制文字样式

set drawTextStyle(val): void

设置绘制文字样式

Parameters

NameTypeDescription
valstring绘制文字样式

Returns

void

Example

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

const mxcad: McObject = MxCpp.App.getCurrentMxCAD();
mxcad.addTextStyle("MyTextStyle", "italicc.shx", "gbcbig.shx", 0.7);
mxcad.drawTextStyle = "MyTextStyle";

drawUseDefaultProperties

get drawUseDefaultProperties(): boolean

返回调用draw开头的绘图数,使用数据库的当前默认属性。

Returns

boolean

set drawUseDefaultProperties(val): void

设置调用draw开头的绘图数,使用数据库的当前默认属性

Parameters

NameTypeDescription
valboolean线宽

Returns

void


mxdraw

get mxdraw(): MxDrawObject

返回与MxCAD对象绑定的MxDraw对象。

Returns

MxDrawObject

MxDraw对象 *

Example

  • ts
    * import { McObject } from 'mxcad'
    * 
    * const mxcad = new McObject()
    * const mxdraw = mxcad.mxdraw
    * ```

Methods

AddTureTypeTextStyle

AddTureTypeTextStyle(sName, sTrueTypeFontName?, dXScale?): McObjectId

添加使用TrueType字体的文字样式

Parameters

NameTypeDefault valueDescription
sNamestringundefined-
sTrueTypeFontNamestring""TrueType字体名,为空使用默认TrueType字体.
dXScalenumber1.0X 方向缩放比例

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.AddTureTypeTextStyle("MyTrueTypeTextStyle");

addCurrentSelect

addCurrentSelect(id, isDisplayGrid?): void

把对象添加当前选择中

Parameters

NameTypeDefault valueDescription
idMcObjectId | McObjectId[]undefined对象id
isDisplayGridbooleantrue-

Returns

void

void

Example

typescript
import { MxCpp, McObject } from "mxcad"
let mxcad:McObject = MxCpp.getCurrentMxCAD();
let id = mxcad.drawLine(0,0,1000,1000);
mxcad.addCurrentSelect(id);

addDimStyle

addDimStyle(pszName, pszDoubleData, pszIntData, pszStringData, pszIdData): McObjectId

添加标注样式

Parameters

NameTypeDescription
pszNamestring样式名称
pszDoubleDatastring双精度型数据
pszIntDatastring整型数据
pszStringDatastring字符串型数据
pszIdDatastringID 型数据

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.addDimStyle("MyDimStyle2", "41,0.18,141,0.09,40,200", "77,1,271,3", "", "");

addImageDefine

addImageDefine(imageUrl, sName?, isConvertBase64?): McObjectId

添加一个图片定义到cad数据库中 。

Parameters

NameTypeDefault valueDescription
imageUrlstringundefined图片路径
sNamestring""图片定义名称
isConvertBase64booleanfalse-

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
   let mxcad:McObject = MxCpp.getCurrentMxCAD();
   let imagUrl = "https://cdn.pixabay.com/photo/2022/11/15/12/23/winter-7593872_960_720.jpg";
   mxcad.loadImage(imagUrl, (imagedata) => {
       if (!imagedata) {
           console.log("loadImage failed");
           return;
       }
       let imagedefid = mxcad.addImageDefine(imagUrl,"winter-7593872_960_720.jpg",true);
       mxcad.updateDisplay();
   });

addLayer

addLayer(string): McObjectId

添加图层

Parameters

NameType
stringstring

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.addLayer("图层名称")

addLinetype

addLinetype(sName, sLineDefine): McObjectId

添加线型

Parameters

NameType
sNamestring
sLineDefinestring

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
//定义虚线数据据,"MyLineType"是线型名,"6,-8"是虚线的一个单位定义,6是实线长,-8是空格长。
mxcad.addLinetype("MyLineType", "6,-10");

addLinetypeEx

addLinetypeEx(sName, sLineDefine, sTextStyle?): McObjectId

添加线型

Parameters

NameTypeDefault value
sNamestringundefined
sLineDefinestringundefined
sTextStylestring""

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
let lintype = mxcad.addLinetypeEx("TestMyLine", '.5,-.2,["HW",STANDARD,S=.1,R=0.0,X=-0.1,Y=-.05],-.2', "");

addPatternDefinition

addPatternDefinition(sName, sDefinitionData): void

增加一个图案定义

Parameters

NameTypeDescription
sNamestring图案名称
sDefinitionDatastring图案默认定义数据

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"
   const mxcad:McObject = MxCpp.getCurrentMxCAD()
   //angle, x-origin,y-origin, delta-x,delta-y,dash-1,dash-2, …
   //45 = angle 是图案线角度.
   //0 = x-origin 是第一个填充线经过的点位置X坐标
   //0 = y-origin 是第一个填充线经过的点位置Y坐标
   //0 = delta-x   是下一个填充线相对前一个线的X方向偏移
   //0.125 = delta-y   是下一个填充线相对前一个线的Y方向偏移
   mxcad.addPatternDefinition("MyHatchPattern1", "((45, 0,0, 0,0.125))");

addSystemVarNameForEvent

addSystemVarNameForEvent(aryVarName): void

添加一个系统变量名,用于变量对像修改后,事件通知. 变量对像修改事件名:sysVarChanged

Parameters

NameType
aryVarNamestring[]

Returns

void


addTextStyle

addTextStyle(sName, sFileName, sBigFontFileName, dXScale?): McObjectId

添加文字样式

Parameters

NameTypeDefault valueDescription
sNamestringundefined-
sFileNamestringundefined-
sBigFontFileNamestringundefined-
dXScalenumber1.0X 方向缩放比例

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD() 
mxcad.addTextStyle("MyLineTypeTextStyle", "txt.shx", "hztxt.shx", 1);

callEvent

callEvent(sEventName, param?): boolean

触发一个系统事件的调用

Parameters

NameTypeDescription
sEventNamestring-
param?any事件参数

Returns

boolean

Example

ts
import { MxCpp, McObject } from "mxcad"

const mxcad:McObject = MxCpp.getCurrentMxCAD();
mxcad.callEvent("init");

create

create(config): void

创建mxcad对象 。

Parameters

NameTypeDescription
configMxCadConfigcreateMxCad 的参数配置

Returns

void

Example

ts
import { McObject } from "mxcad"

   // 创建mxcad示例对象
   const mxcad = new McObject()
   mxcad.create({
       // canvas元素的id
       canvas: "#myCanvas",
       // 获取加载wasm相关文件(wasm/js/worker.js)路径位置
       locateFile: (fileName)=> new URL(`/node_modules/mxcad/dist/wasm/2d/${fileName}`, import.meta.url).href,
       // 需要初始化打开的文件url路径
       fileUrl: new URL("../src/assets/test.mxweb", import.meta.url).href,
       // 提供加载字体的目录路径
       fontspath:  new URL("node_modules/mxcad/dist/fonts", import.meta.url).href,
   })

destroyObject

destroyObject(pObjectImp): void

销毁指定的 McRxObjectImp 对象

Parameters

NameTypeDescription
pObjectImpMcRxObjectImp待销毁的 McRxObjectImp 对象

Returns

void


drawArc

drawArc(dCenterX, dCenterY, dRadius, dStartAng, dEndAng): McObjectId

绘制圆弧

Parameters

NameTypeDescription
dCenterXnumber圆心 X 坐标
dCenterYnumber圆心 Y 坐标
dRadiusnumber半径
dStartAngnumber起始角度,单位为弧度
dEndAngnumber结束角度,单位为弧度

Returns

McObjectId

成功返回 1,失败返回 0

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad: McObject = MxCpp.getCurrentMxCAD()
mxcad.drawArc(300, 1000, 100, 30, 200);

drawArc2

drawArc2(dStartPointX, dStartPointY, dMidPointX, dMidPointY, dEndPointX, dEndPointY): McObjectId

绘制圆弧

Parameters

NameTypeDescription
dStartPointXnumber起始点 X 坐标
dStartPointYnumber起始点 Y 坐标
dMidPointXnumber中间点 X 坐标
dMidPointYnumber中间点 Y 坐标
dEndPointXnumber结束点 X 坐标
dEndPointYnumber结束点 Y 坐标

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
//由圆弧上三个点绘制圆弧
mxcad.drawArc2(800, 1000, 900, 1200, 1000, 900);

drawArc3

drawArc3(dStartPointX, dStartPointY, dEndPointX, dEndPointY, dBulge): McObjectId

绘制圆弧

Parameters

NameTypeDescription
dStartPointXnumber起始点 X 坐标
dStartPointYnumber起始点 Y 坐标
dEndPointXnumber结束点 X 坐标
dEndPointYnumber结束点 Y 坐标
dBulgenumber凸度

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
  const mxcad:McObject = MxCpp.getCurrentMxCAD()
  //由圆弧上的开始点,结束度和凸度会圆弧
  mxcad.drawLineWidth = 40;
  mxcad.drawArc3(1200, 1000, 1400, 1000, 0.6);

drawBlockReference

drawBlockReference(dPosX, dPosY, sBlkName, dScale, dAng): McObjectId

绘制块参照

Parameters

NameTypeDescription
dPosXnumber参照位置 X 坐标
dPosYnumber参照位置 Y 坐标
sBlkNamestring-
dScalenumber缩放比例
dAngnumber旋转角度,单位为弧度

Returns

McObjectId

块对象id


drawCircle

drawCircle(dCenterX, dCenterY, dRadius): McObjectId

绘制圆

Parameters

NameTypeDescription
dCenterXnumber圆心 X 坐标
dCenterYnumber圆心 Y 坐标
dRadiusnumber半径

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD(
mxcad.drawCircle(0, 0, 120);

drawDimAligned

drawDimAligned(dExtLine1PointX, dExtLine1PointY, dExtLine2PointX, dExtLine2PointY, dTextPositionX, dTextPositionY): McObjectId

绘制对齐标注

Parameters

NameTypeDescription
dExtLine1PointXnumber第一条尺线起点 X 坐标
dExtLine1PointYnumber第一条尺线起点 Y 坐标
dExtLine2PointXnumber第二条尺线起点 X 坐标
dExtLine2PointYnumber第二条尺线起点 Y 坐标
dTextPositionXnumber文本位置 X 坐标
dTextPositionYnumber文本位置 Y 坐标

Returns

McObjectId

成功返回 1,失败返回 0

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawDimAligned(0, 4000, 300, 4500, 150, 4600);

drawDimAngular

drawDimAngular(dAngleVertexX, dAngleVertexY, dFirstEndPointX, dFirstEndPointY, dSecondEndPointX, dSecondEndPointY, dTextPointX, dTextPointY): McObjectId

绘制角度标注

Parameters

NameTypeDescription
dAngleVertexXnumber角度顶点 X 坐标
dAngleVertexYnumber角度顶点 Y 坐标
dFirstEndPointXnumber第一条尺线起点 X 坐标
dFirstEndPointYnumber第一条尺线起点 Y 坐标
dSecondEndPointXnumber第二条尺线起点 X 坐标
dSecondEndPointYnumber第二条尺线起点 Y 坐标
dTextPointXnumber文本位置 X 坐标
dTextPointYnumber文本位置 Y 坐标

Returns

McObjectId

成功返回 1,失败返回 0

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawDimAngular(500, 5000, 0, 5500, 1000, 5500, 500, 5500);

drawDimDiametric

drawDimDiametric(dChordPointX, dChordPointY, dFarChordPointX, dFarChordPointY, dLeaderLength): McObjectId

绘制直径标注

Parameters

NameTypeDescription
dChordPointXnumber弦线端点 X 坐标
dChordPointYnumber弦线端点 Y 坐标
dFarChordPointXnumber弦线远端点 X 坐标
dFarChordPointYnumber弦线远端点 Y 坐标
dLeaderLengthnumber引线长度

Returns

McObjectId

直径标注对象id

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawDimDiametric(500, 0, -500, 0, 20);

drawDimOrdinate

drawDimOrdinate(dDefinitionPointX, dDefinitionPointY, dDeaderEndPointX, dDeaderEndPointY, isUseXAxis): McObjectId

绘制标注线性尺寸

Parameters

NameTypeDescription
dDefinitionPointXnumber定义点 X 坐标
dDefinitionPointYnumber定义点 Y 坐标
dDeaderEndPointXnumber标注终点 X 坐标
dDeaderEndPointYnumber标注终点 Y 坐标
isUseXAxisboolean是否沿 X 轴方向标注

Returns

McObjectId

线性尺寸对象id

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawDimOrdinate(500, 0, -500, 0, true);

drawDimRadial

drawDimRadial(dCenterX, dCenterY, dChordPointX, dChordPointY, dLeaderLength): McObjectId

绘制标注径向尺寸

Parameters

NameTypeDescription
dCenterXnumber中心点 X 坐标
dCenterYnumber中心点 Y 坐标
dChordPointXnumber弦线端点 X 坐标
dChordPointYnumber弦线端点 Y 坐标
dLeaderLengthnumber标注线长度

Returns

McObjectId

径向尺寸对象id

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawDimOrdinate(0, 0, 0, 500, 20);

drawDimRotated

drawDimRotated(dExtLine1PointX, dExtLine1PointY, dExtLine2PointX, dExtLine2PointY, dDimLineLocationX, dDimLineLocationY, dRotationAngle): McObjectId

绘制旋转标注

Parameters

NameTypeDescription
dExtLine1PointXnumber第一条尺线起点 X 坐标
dExtLine1PointYnumber第一条尺线起点 Y 坐标
dExtLine2PointXnumber第二条尺线起点 X 坐标
dExtLine2PointYnumber第二条尺线起点 Y 坐标
dDimLineLocationXnumber标注线位置 X 坐标
dDimLineLocationYnumber标注线位置 Y 坐标
dRotationAnglenumber旋转角度,单位为弧度

Returns

McObjectId

旋转标注对象id

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD() 
mxcad.drawDimRotated(0, 7000, 600, 7000, 250, 7050, 0);

drawEllipse

drawEllipse(dCenterX, dCenterY, dMajorAxisX, dMajorAxisY, dRadiusRatio): McObjectId

绘制椭圆

Parameters

NameTypeDescription
dCenterXnumber椭圆中心 X 坐标
dCenterYnumber椭圆中心 Y 坐标
dMajorAxisXnumber长轴 X 坐标
dMajorAxisYnumber长轴 Y 坐标
dRadiusRationumber短轴与长轴的比例

Returns

McObjectId

成功返回 1,失败返回 0

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawEllipse(0, 1400, 100, 0, 0.7);

drawEllipseArc

drawEllipseArc(dCenterX, dCenterY, dMajorAxisX, dMajorAxisY, dRadiusRatio, dStartAng, dEndAng): McObjectId

绘制椭圆弧

Parameters

NameTypeDescription
dCenterXnumber椭圆中心 X 坐标
dCenterYnumber椭圆中心 Y 坐标
dMajorAxisXnumber长轴 X 坐标
dMajorAxisYnumber长轴 Y 坐标
dRadiusRationumber短轴与长轴的比例
dStartAngnumber起始角度,单位为弧度
dEndAngnumber结束角度,单位为弧度

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawEllipseArc(0, 1600, 80, 30, 0.4, 30, 200);

drawEntity

drawEntity(entity, isUseDatabaseCurrentProperties?): McObjectId

绘制实体

Parameters

NameTypeDefault valueDescription
entityMcDbEntityundefined实体对象
isUseDatabaseCurrentPropertiesbooleanfalse-

Returns

McObjectId

绘制结果

Example

ts
import { McDbPolyline, MxCpp } from
let pl = new McDbPolyline();
  pl.addVertexAt(new McGePoint3d(100, 100, 100));
  pl.addVertexAt(new McGePoint3d(200, 100, 500));
  pl.addVertexAt(new McGePoint3d(300, 400, 200));
  MxCpp.getCurrentCAD().drawEntity(pl);

drawHatch

drawHatch(hatch, dPatternScale?): McObjectId

绘制填充对象

Parameters

NameTypeDefault value
hatchMcDbHatchundefined
dPatternScalenumber1.0

Returns

McObjectId

绘制对象id


drawImage

drawImage(dPosX, dPosY, dWidth, dHeight, dAng, imageUrl, isConvertBase64?): McObjectId

绘制一个图片

Parameters

NameTypeDefault valueDescription
dPosXnumberundefined图片 X 坐标
dPosYnumberundefined图片 Y 坐标
dWidthnumberundefined图片宽度
dHeightnumberundefined图片高度
dAngnumberundefined图片角度
imageUrlstringundefined图片路径
isConvertBase64booleanfalse-

Returns

McObjectId


drawLine

drawLine(dX1, dY1, dX2, dY2): McObjectId

绘制直线

Parameters

NameTypeDescription
dX1number起点 X 坐标
dY1number起点 Y 坐标
dX2number终点 X 坐标
dY2number终点 Y 坐标

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawLine(0, 60, 100, 60);

drawLine3d

drawLine3d(dX1, dY1, dZ1, dX2, dY2, dZ2): McObjectId

Parameters

NameType
dX1number
dY1number
dZ1number
dX2number
dY2number
dZ2number

Returns

McObjectId


drawMText

drawMText(dPosX, dPosY, sContents, dHeight, dWidth, dRotation, iAttachment): McObjectId

绘制多行文本

Parameters

NameTypeDescription
dPosXnumber文本位置 X 坐标
dPosYnumber文本位置 Y 坐标
sContentsstring-
dHeightnumber文本高度
dWidthnumber文本宽度
dRotationnumber旋转角度,单位为弧度
iAttachmentAttachmentPoint对齐方式

Returns

McObjectId

多行文本对象id

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawMText(0, -100, "控件:\\P多行文字测试", 50, 400, 0, 1);

drawPathToHatch

drawPathToHatch(dPatternScale?): McObjectId

将路径转换为填充图案

Parameters

NameTypeDefault valueDescription
dPatternScalenumber1.0图案缩放比例

Returns

McObjectId

转换结果

Example

ts
import { MxCADUiPrPoint, MxCADUiPrDist, MxCpp } from "mxcad";
   // 实心圆
   async function Mx_SolidCircle() {
       const getCenter = new MxCADUiPrPoint();
       getCenter.setMessage('请确定圆心位置\n');
       const center = await getCenter.go();
       if (!center) return;
       const getRadius = new MxCADUiPrDist();
       getRadius.setBasePt(center);// 设置距离基点为圆心
       getRadius.setMessage('请输入圆半径');
       getRadius.setUserDraw((pt, pw) => {
           const r = pt.distanceTo(center);
           const circle = new McDbCircle();
           circle.center = center;
           circle.radius = r;
           pw.drawMcDbEntity(circle)
       })
       const radiusVal = await getRadius.go();
       if (!radiusVal) return;
       const radius = getRadius.value();
       const mxcad = MxCpp.getCurrentMxCAD();
       mxcad.pathCircle(center.x, center.y, radius);//设置圆路径
       mxcad.drawPathToHatch();// 绘制实心圆
   }

drawPathToPolyline

drawPathToPolyline(): McObjectId

将路径转换为折线

Returns

McObjectId

转换结果


drawPathToSpline

drawPathToSpline(): McObjectId

将路径转换为样条曲线

Returns

McObjectId

转换结果


drawPoint

drawPoint(dX, dY): McObjectId

绘制点

Parameters

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawPoint(0,0);

drawSolid

drawSolid(dX1, dY1, dX2, dY2, dX3, dY3, dX4, dY4): McObjectId

绘制实体

Parameters

NameTypeDescription
dX1number第一个点 X 坐标
dY1number第一个点 Y 坐标
dX2number第二个点 X 坐标
dY2number第二个点 Y 坐标
dX3number第三个点 X 坐标
dY3number第三个点 Y 坐标
dX4number第四个点 X 坐标
dY4number第四个点 Y 坐标

Returns

McObjectId

实体对象id


drawText

drawText(dPosX, dPosY, pszText, dHeight, dRotation, horizontalMode, verticalMode): McObjectId

绘制单行文本

Parameters

NameTypeDescription
dPosXnumber文本位置 X 坐标
dPosYnumber文本位置 Y 坐标
pszTextstring文本内容
dHeightnumber文本高度
dRotationnumber旋转角度,单位为弧度
horizontalModeTextHorzMode横向对齐方式
verticalModeTextVertMode纵向对齐方式

Returns

McObjectId

成功返回 1,失败返回 0

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawText(0, 1900, "绘图控件文字测试", 100, 0, 0, 1);

getAllLayoutName

getAllLayoutName(): McGeStringArray

得到所有布局名

Returns

McGeStringArray


getCurrentDatabaseDrawColor

getCurrentDatabaseDrawColor(): Color

返回当前数据库中设置的绘制颜色,它会自动依据背景色,把黑白色转换。

Returns

Color


getCurrentFileName

getCurrentFileName(): string

获取当前文件名

Returns

string

当前文件名


getDatabase

getDatabase(): McDbDatabase

获取数据库对象

Returns

McDbDatabase

数据库对象

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.App.getCurrentMxCAD()
let layerTable = mxcad.getDatabase().getLayerTable();

getImp

getImp(): any

获取内部实现对象

Returns

any

内部实现对象


getMxCpp

getMxCpp(): any

返加MxCpp对象,它会在MxDraw模块中调用。

Returns

any


getMxDrawObject

getMxDrawObject(): MxDrawObject

返回与MxCAD对象绑定的MxDraw对象。

Returns

MxDrawObject

MxDraw对象

Example

ts
import { McObject } from 'mxcad'

const mxcad = new McObject()
const mxdraw = mxcad.getMxDrawObject()

getSysVarDouble

getSysVarDouble(varName): number

获取系统变量的浮点数值

Parameters

NameTypeDescription
varNamestring变量名称

Returns

number

变量的浮点数值


getSysVarLong

getSysVarLong(varName): number

获取系统变量的整数值

Parameters

NameTypeDescription
varNamestring变量名称

Returns

number

变量的整数值


getSysVarPoint

getSysVarPoint(varName): McGePoint3d

获取系统变量的点数值

Parameters

NameTypeDescription
varNamestring变量名称

Returns

McGePoint3d

变量的点数值


getSysVarString

getSysVarString(varName): string

获取系统变量的字符串值

Parameters

NameTypeDescription
varNamestring变量名称

Returns

string

变量的字符串值


getViewCADCoord

getViewCADCoord(): Object

返回当前视区的显示范围,cad坐标。

Returns

Object

当前视区显示范围

NameType
pt1McGePoint3d
pt2McGePoint3d
pt3McGePoint3d
pt4McGePoint3d

init

init(imp): void

初始对象

Parameters

NameTypeDescription
impany对象实现,默认该函数会被系统自动调用。

Returns

void


initMxObject

initMxObject(mxObject): void

初始化对象模型

Parameters

NameTypeDescription
mxObjectany初始化mxdraw 创建的绘图控件

Returns

void

Description


initRegist

initRegist(sRegist): void

初始化用户注册数据.

Parameters

NameTypeDescription
sRegiststring注册数据

Returns

void


insertBlock

insertBlock(sFileUrl, sBlkName, isWorkThread?, fetchAttributes?, isUpdataInsertBlock?, isUpdataSameNameBlock?): Promise<McObjectId>

插件图块文件

Parameters

NameTypeDefault valueDescription
sFileUrlstringundefined网络文件路径 该文件为mxweb格式
sBlkNamestringundefined插入的图块的块名
isWorkThreadbooleantrue是否使用工作线程打开文件,默认为 true
fetchAttributesnumber01:EMSCRIPTEN_FETCH_LOAD_TO_MEMORY,把图纸数据加载内存中,0:EMSCRIPTEN_FETCH_LOAD_TO_MEMORY | EMSCRIPTEN_FETCH_PERSIST_FILE | EMSCRIPTEN_FETCH_APPEND,把图纸数据加到IndexedDB。
isUpdataInsertBlockbooleanfalse是否更新已经存在的块,默认不会更新
isUpdataSameNameBlockbooleanfalse是插入块的过程中,如果发现原数据库已经相同名称的块,是否也一同更新,默认不会更新

Returns

Promise<McObjectId>

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
const blkrecId = await mxcad.insertBlock("./blkrec.mxweb", "sBlkName");

isTryVersion

isTryVersion(): boolean

当前程序是否是试用版本.

Returns

boolean


loadImage

loadImage(imageUrl, call): void

加载一个外部图片到当前上下文,方便后面使用。

Parameters

NameTypeDescription
imageUrlstring图片路径
call(image: any) => void回调函数

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"
 const mxcad: McObject = MxCpp.getCurrentMxCAD()
 mxcad.loadImage(imagUrl, (image) => {
   if (!image) {
       console.log("loadImage failed");
       return;
   }
   let width = mxcad.mxdraw.viewCoordLong2Cad(100);
   let height = (image.height / image.width) * width;
   idImage = mxcad.drawImage((pt as any).x, (pt as any).y, width, height, 0, imagUrl,true);
   mxcad.updateDisplay();
});

newFile

newFile(): boolean

清空当前图上内容,新建一个文件

Returns

boolean

Example

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

let mxcad:McObject = MxCpp.getCurrentMxCAD();
mxcad.newFile();

objectIdToObject

objectIdToObject(lIdIndex): null | McDbObject

将 lIdIndex 转换成 McDbObject 对象

Parameters

NameTypeDescription
lIdIndexnumber对象 ID

Returns

null | McDbObject

与 ID 对应的 McDbObject 对象,如果对象不存在则返回 null


off

off(name, fun?): void

关闭事件监听

Parameters

NameTypeDescription
namestring监听事件名
fun?Function监听事件

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"

const mxcad:McObject = MxCpp.getCurrentMxCAD();
mxcad.off("selectChange");

on

on(name, fun): void

监听对象选择事件

Parameters

NameType
name"selectChange"
fun(ids: McObjectId[]) => void | (ids: McObjectId[]) => void[]

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"

const mxcad:McObject = MxCpp.getCurrentMxCAD();
mxcad.on("selectChange", (ids)=> {
     let ent = id.getMcDbEntity()
     if(!ent) return
     console.log(ent.objectName)
})

on(name, fun): void

监听文件完全打开

Parameters

NameType
name"openFileComplete"
fun() => void

Returns

void

on(name, fun): void

监听项目初始化

Parameters

NameType
name"init"
fun() => void

Returns

void

on(name, fun): void

监听 mxdraw 初始化

Parameters

NameType
name"init_mxdraw"
fun(mxdraw: MxDrawObject) => void

Returns

void

on(name, fun): void

监听 mxdraw 初始化前的事件

Parameters

NameType
name"init_before_mxdraw"
fun(mxdraw: MxDrawObject) => void

Returns

void

on(name, fun): void

监听 mxcad 初始化

Parameters

NameType
name"init_mxcad"
fun(mxcad: McObject) => void

Returns

void

on(name, fun): void

监听数据库修改事件

Parameters

NameType
name"databaseModify"
fun() => void

Returns

void

on(name, fun): void

系统变量被修改

Parameters

NameType
name"sysVarChanged"
fun(name: string) => void

Returns

void

on(name, fun): void

图形数据库初始化

Parameters

NameType
name"databaseInitialization"
fun() => void

Returns

void

on(name, fun): void

图层数据发生了变化

Parameters

NameType
name"layerChanged"
fun() => void

Returns

void

on(name, fun): void

线型数据发生了变化

Parameters

NameType
name"lineTypeChanged"
fun() => void

Returns

void


openWebFile

openWebFile(sFileUrl, retCall?, isWorkThread?, initialParameter?, fetchAttributes?, isFetchTzFile?): boolean

打开网络文件

Parameters

NameTypeDefault valueDescription
sFileUrlstringundefined网络文件路径
retCall?(iRet: number) => voidundefined回调函数,可选参数,打开文件完成后的回调函数,参数为打开文件的结果,0表示成功,其他值表示失败
isWorkThreadbooleantrue是否使用工作线程打开文件,默认为 true
initialParameter?objectundefined-
fetchAttributesnumber01:EMSCRIPTEN_FETCH_LOAD_TO_MEMORY,把图纸数据加载内存中,0:EMSCRIPTEN_FETCH_LOAD_TO_MEMORY | EMSCRIPTEN_FETCH_PERSIST_FILE | EMSCRIPTEN_FETCH_APPEND,把图纸数据加到IndexedDB。
isFetchTzFilebooleantrue-

Returns

boolean

是否成功打开文件

Example

ts
import { MxCpp } from "mxcad";
const mxcad = MxCpp.getCurrentMxCAD();
mxcad.openWebFile("http://localhost:1337/mxcad/file/a9cbed3d3a351b79f24484e87bd78338.DWG.mxweb");

pathCircle

pathCircle(dCenX, dCenY, dR, dPrecision?, dWidth?): boolean

根据圆对象创建一个路径

Parameters

NameTypeDefault value
dCenXnumberundefined
dCenYnumberundefined
dRnumberundefined
dPrecisionnumber0.0
dWidthnumber0

Returns

boolean

Example

ts
import { MxCpp, McObject } from "mxcad"
  const mxcad:McObject = MxCpp.getCurrentMxCAD()
  mxcad.pathCircle(0, 0, 20);

pathLineTo

pathLineTo(dX, dY): void

从当前位置画一条直线到指定位置

Parameters

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.pathLineTo(100, 300);

pathLineToEx

pathLineToEx(dX, dY, dStartWidth, dEndWidth, dBulge): void

从当前位置画一条直线到指定位置,同时指定起始宽度、终止宽度和凸度

Parameters

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标
dStartWidthnumber起始宽度
dEndWidthnumber终止宽度
dBulgenumber凸度

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.pathLineToEx(1000, 500, 30, 0, 0);

pathMakeClosed

pathMakeClosed(): void

闭合路径

Returns

void


pathMakeExclude

pathMakeExclude(isExclude): void

把当前路径做上排除标记,主要用于填充的绘制,把这个路径组成的闭合区域在填充中挖去

Parameters

NameTypeDescription
isExcludeboolean是否排除

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"
   const mxcad:McObject = MxCpp.getCurrentMxCAD()
  //绘制一个实心有圆弧边界填充,中间挖去一块.
   mxcad.pathMoveToEx(440, 3310, 0, 0, 0);
   mxcad.pathLineTo(480, 3310);
   mxcad.pathLineTo(480, 3360);
   mxcad.pathLineTo(450, 3340);
  // 把上面定义的路径定义填充排除区域.
   mxcad.pathMakeExclude(true);

pathMoveTo

pathMoveTo(dX, dY): void

将路径移动到指定位置

Parameters

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.pathMoveTo(0, 300);

pathMoveToEx

pathMoveToEx(dX, dY, dStartWidth, dEndWidth, dBulge): void

移动路径到指定位置,同时指定起始宽度、终止宽度和凸度

Parameters

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标
dStartWidthnumber起始宽度
dEndWidthnumber终止宽度
dBulgenumber-

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.pathMoveToEx(1000, 300, 10, 10, 0);

redo

redo(): void

反回退,重做。

Returns

void


regen

regen(delayTime?): void

重绘图上所有对象,在调用ZoomAll,ZoomW后,因为是异步执行,可能需要延迟调用Regen才会启作用。

Parameters

NameTypeDefault value
delayTimenumber0

Returns

void

Example

ts
import { MxCpp, McObject } from 'mxcad'
 const mxcad:McObject = MxCpp.getCurrentMxCAD()
  //绘制一个带有宽度的圆
   mxcad.addLinetype("CircleLineType", "30,-5,7,-7");

   //设计当前线型为"CircleLineType"
   mxcad.drawLinetype = ("CircleLineType");

   mxcad.drawLineWidth = 40;

   mxcad.drawCircle(600, 800, 120);

   mxcad.zoomAll();
   mxcad.regen();
   mxcad.updateDisplay();

saveFile

saveFile(filename?, call?, isDownland?, isShowSaveFileDialog?, parameter?): boolean

保存文件

Parameters

NameTypeDefault valueDescription
filename?stringundefined另存为的新文件名称
call?(data: any) => voidundefined回调函数,可选参数,文件保存完成后的回调函数,参数为文件数据
isDownlandbooleantrue是否下载文件,默认为 true
isShowSaveFileDialogbooleantrue是否显示保存文件对话框,默认为 true
parameter?objectundefined-

Returns

boolean

是否成功保存文件

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.App.getCurrentMxCAD()
const fileName =  mxcad.getCurrentFileName()
mxcad.saveFile("test", (data)=> {
  const blob = new Blob([data.buffer], { type: "application/octet-stream" });
}, false, false)

saveFileToUrl

saveFileToUrl(sSaveProgramUrl, call, filename?, param?): boolean

将文件保存并转换为网络路径下载

Parameters

NameTypeDescription
sSaveProgramUrlstring后端 POST请求接口, 接口具体实现: 先下载MxDraw云图开发包https://www.mxdraw.com/download.html并解压 找到MxDrawCloudServer\Bin\MxCAD\MxCADSaveFile\server.js 可以找到对应的实现接口"/mxcad/savefiledwg", "/mxcad/savefiledwg":保存dwg文件到服务器 "/mxcad/savefile":保存mxweb文件到服务器 如果没有找到则在该项目下寻找这个接口的定义, 必须符合该接口的定义才能作为参数
call(iResult: number, sServerResult: string) => void保存文件的结果回调 这里接收到的参数请自己根据接口定义中保存图纸的位置, ref.file 不是完整请求路径,只是保存后的图纸名称
filename?string-
param?any-

Returns

boolean

是否成功保存文件

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
 MxCpp.getCurrentMxCAD().saveFileToUrl("http://localhost:3337/mxcad/savefiledwg", (iResult, sserverResult) => {
   let ret = JSON.parse(sserverResult);
   if (ret.ret == "ok") {
       console.log(ret.file)
   }
})

setAttribute

setAttribute(val): boolean

设置对象的一些属性设置

Parameters

NameTypeDescription
valobject属性设置内容. 1. DisplayPrecision 显示精度设置,默认为0,可以取0 ~1000,1000为最高精度了 2. EnableUndo 启用undo功能,默认是没有启动的 *

Returns

boolean

Example

  • ts
    * 启用undo
    * mxcad.setAttribute({EnableUndo:true})
    * ```

setBrowse

setBrowse(browse): void

设置浏览模式

Parameters

NameType
browseboolean

Returns

void


setCurrentLayout

setCurrentLayout(layoutName): void

设置当前布局名

Parameters

NameTypeDescription
layoutNamestring布局名称

Returns

void


setSysVarDouble

setSysVarDouble(varName, val): boolean

设置系统变量的浮点数值

Parameters

NameTypeDescription
varNamestring变量名称
valnumber变量的浮点数值

Returns

boolean

是否成功设置变量值


setSysVarLong

setSysVarLong(varName, val): boolean

设置系统变量的整数值

Parameters

NameTypeDescription
varNamestring变量名称
valnumber变量的整数值

Returns

boolean

是否成功设置变量值


setSysVarPoint

setSysVarPoint(varName, pt): boolean

设置系统变量的点数值

Parameters

NameTypeDescription
varNamestring变量名称
ptMcGePoint3d-

Returns

boolean

是否成功设置变量值


setSysVarPoint2d

setSysVarPoint2d(varName, pt): boolean

设置系统变量的2维点数值

Parameters

NameTypeDescription
varNamestring变量名称
ptMcGePoint3d-

Returns

boolean

是否成功设置变量值


setSysVarString

setSysVarString(varName, val): any

设置系统变量的字符串值

Parameters

NameTypeDescription
varNamestring变量名称
valstring变量的字符串值

Returns

any

是否成功设置变量值


setViewBackgroundColor

setViewBackgroundColor(red, green, blue): void

设置视区的背景色.

Parameters

NameType
rednumber
greennumber
bluenumber

Returns

void

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.setViewBackgroundColor(255, 255, 255)

undo

undo(): void

回退到上一个命令或标记处

Returns

void


undoMark

undoMark(): void

在当前设置一个回退标记.

Returns

void


updateDisplay

updateDisplay(isImmediate?, delayTime?): void

更新显示

Parameters

NameTypeDefault valueDescription
isImmediatebooleanfalse是否立即更新
delayTimenumber0延迟更新时间

Returns

void


updateLayerDisplayStatus

updateLayerDisplayStatus(): void

更新图层的显示

Returns

void


zoomAll

zoomAll(): boolean

显示全部

Returns

boolean


zoomAngle

zoomAngle(viewangle): void

设置显示视区的角度,单位是PI.

Parameters

NameTypeDescription
viewanglenumber旋转角度 Math.PI

Returns

void

void

Example

typescript
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.zoomAngle(Math.PI / 2)

zoomCenter

zoomCenter(dCenX, dCenY): void

把当前显示范围移到指定的位置,dCenX,dCenY是DWG图纸坐标。

Parameters

NameType
dCenXnumber
dCenYnumber

Returns

void

void

Example

typescript
import { MxCpp, McGePoint3d, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.zoomCenter(0, 0)

zoomScale

zoomScale(scale): void

缩放当前显示范围,它是相对于当前显示范围进行缩放

Parameters

NameTypeDescription
scalenumberscale缩放比例

Returns

void

void

Example

ts
import { MxCpp, McObject } from 'mxcad'
 const mxcad:McObject = MxCpp.getCurrentMxCAD()
   mxcad.drawLine(350, 220, 600, 220);
   mxcad.zoomScale(o.6);

zoomW

zoomW(minPt, maxPt): void

把当前显示范围移到指定的显示范围

Parameters

NameTypeDescription
minPtMcGePoint3d坐标1 McGePoint3d
maxPtMcGePoint3d坐标2 McGePoint3d

Returns

void

void

Example

typescript
import { MxApp, McGePoint3d, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.zoomW(new McGePoint3d(0, 0), new McGePoint3d(30, 30))