Skip to content
On this page

mxcad API 文档 / 2d / McObject

Class: McObject

2d.McObject

McObject 类

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new McObject(imp?)

构造函数

Parameters

NameTypeDescription
imp?any对象实现

Properties

currentFileName

Private currentFileName: string = ""

当前文件名


event

Private event: any = {}


firstTimeOpenFile

Private firstTimeOpenFile: boolean = true


imp

Private imp: any

内部对象实现

Accessors

database

get database(): McDbDatabase

返回数据库对象

Returns

McDbDatabase


drawColor

get drawColor(): McCmColor

获取绘制颜色

Returns

McCmColor

返回绘制颜色

set drawColor(val): void

设置绘制颜色

Parameters

NameTypeDescription
valMcCmColor绘制颜色

Returns

void


drawColorIndex

get drawColorIndex(): number

设置绘制颜色索引

Returns

number

set drawColorIndex(val): void

设置绘制颜色索引

Parameters

NameTypeDescription
valnumber绘制颜色,ColorIndexType

Returns

void


drawDimStyle

get drawDimStyle(): string

获取当前绘制的标注样式

Returns

string

set drawDimStyle(val): void

设置当前绘制的标注样式

Example

ts
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawDimStyle = "MyDimStyle2"

Parameters

NameTypeDescription
valstring样式名称

Returns

void


drawLayer

get drawLayer(): string

获取绘制图层

Returns

string

返回绘制图层

set drawLayer(val): void

设置绘制图层

Example

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

Parameters

NameTypeDescription
valstring绘制图层

Returns

void


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


drawLineWidth

get drawLineWidth(): number

获取当前绘制的线宽

Example

ts
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawLineWidth = 4;

Returns

number

set drawLineWidth(val): void

设置当前绘制的线宽

Parameters

NameTypeDescription
valnumber线宽

Returns

void


drawLinetype

get drawLinetype(): string

获取绘制线型

Returns

string

返回绘制线型

set drawLinetype(val): void

设置绘制线型

Parameters

NameTypeDescription
valstring绘制线型

Returns

void


drawPatternDefinition

get drawPatternDefinition(): string

获取当前绘制的线型定义

Example

ts
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawPatternDefinition = "MyHatchPattern1";

Returns

string

set drawPatternDefinition(val): void

设置当前绘制的线型定义

Parameters

NameTypeDescription
valstring线型定义

Returns

void


drawTextStyle

get drawTextStyle(): string

获取绘制文字样式

Returns

string

返回绘制文字样式

set drawTextStyle(val): void

设置绘制文字样式

Parameters

NameTypeDescription
valstring绘制文字样式

Returns

void


mxdraw

get mxdraw(): MxDrawObject

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

Returns

MxDrawObject

Methods

AddTureTypeTextStyle

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

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

Example

ts
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.AddTureTypeTextStyle("MyTrueTypeTextStyle");

Parameters

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

Returns

McObjectId


addCurrentSelect

addCurrentSelect(id, isDisplayGrid?): void

把对象添加当前选择中

Example

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

Parameters

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

Returns

void

void


addDimStyle

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

添加标注样式

Example

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

Parameters

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

Returns

McObjectId


addImageDefine

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

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

Example

ts
import { MxCpp } from "mxcad"
   let mxcad = 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();
   });

Parameters

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

Returns

McObjectId


addLayer

addLayer(string): McObjectId

添加图层

Example

ts
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.addLayer("图层名称")

Parameters

NameType
stringstring

Returns

McObjectId


addLinetype

addLinetype(sName, sLineDefine): McObjectId

添加线型

Example

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

Parameters

NameType
sNamestring
sLineDefinestring

Returns

McObjectId


addLinetypeEx

addLinetypeEx(sName, sLineDefine, sTextStyle?): McObjectId

添加线型

Example

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

Parameters

NameTypeDefault value
sNamestringundefined
sLineDefinestringundefined
sTextStylestring""

Returns

McObjectId


addPatternDefinition

addPatternDefinition(sName, sDefinitionData): void

增加一个图案定义

Example

ts
import { McApp } from "mxcad"
 const mxcad = McApp.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))");

Parameters

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

Returns

void


addTextStyle

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

添加文字样式

Example

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

Parameters

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

Returns

McObjectId


callEvent

callEvent(sEventName, param?): boolean

触发一个系统事件的调用

Parameters

NameTypeDescription
sEventNamestring-
param?any事件参数

Returns

boolean


create

create(config): void

创建mxcad对象 。

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,
   })

Parameters

NameTypeDescription
configMxCadConfigcreateMxCad 的参数配置

Returns

void


destroyObject

destroyObject(pObjectImp): void

销毁指定的 McRxObjectImp 对象

Parameters

NameTypeDescription
pObjectImpMcRxObjectImp待销毁的 McRxObjectImp 对象

Returns

void


drawArc

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

绘制圆弧

Example

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

Parameters

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

Returns

McObjectId

成功返回 1,失败返回 0


drawArc2

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

绘制圆弧

Example

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

Parameters

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

Returns

McObjectId


drawArc3

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

绘制圆弧

Example

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

Parameters

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

Returns

McObjectId


drawBlockReference

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

绘制块参照

Parameters

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

Returns

McObjectId

成功返回 1,失败返回 0


drawCircle

drawCircle(dCenterX, dCenterY, dRadius): McObjectId

绘制圆

Example

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

Parameters

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

Returns

McObjectId


drawDimAligned

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

绘制对齐标注

Example

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

Parameters

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

Returns

McObjectId

成功返回 1,失败返回 0


drawDimAngular

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

绘制角度标注

Example

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

Parameters

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

Returns

McObjectId

成功返回 1,失败返回 0


drawDimDiametric

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

绘制直径标注

Example

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

Parameters

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

Returns

McObjectId

成功返回 1,失败返回 0


drawDimOrdinate

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

绘制标注线性尺寸

Example

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

Parameters

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

Returns

McObjectId

绘制结果


drawDimRadial

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

绘制标注径向尺寸

Example

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

Parameters

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

Returns

McObjectId

绘制结果


drawDimRotated

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

绘制旋转标注

Example

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

Parameters

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

Returns

McObjectId

成功返回 1,失败返回 0


drawEllipse

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

绘制椭圆

Example

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

Parameters

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

Returns

McObjectId

成功返回 1,失败返回 0


drawEllipseArc

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

绘制椭圆弧

Example

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

Parameters

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

Returns

McObjectId


drawEntity

drawEntity(entity): McObjectId

绘制实体

Parameters

NameTypeDescription
entityMcDbEntity实体对象

Returns

McObjectId

绘制结果


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

绘制直线

Example

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

Parameters

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

Returns

McObjectId


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

绘制多行文本

Example

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

Parameters

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

Returns

McObjectId

成功返回 1,失败返回 0


drawPathToHatch

drawPathToHatch(dPatternScale?): McObjectId

将路径转换为填充图案

Parameters

NameTypeDefault valueDescription
dPatternScalenumber1.0图案缩放比例

Returns

McObjectId

转换结果


drawPathToPolyline

drawPathToPolyline(): McObjectId

将路径转换为折线

Returns

McObjectId

转换结果


drawPathToSpline

drawPathToSpline(): McObjectId

将路径转换为样条曲线

Returns

McObjectId

转换结果


drawPoint

drawPoint(dX, dY): McObjectId

绘制点

Parameters

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns

McObjectId


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

成功返回实体号,失败返回 0


drawText

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

绘制单行文本

Example

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

Parameters

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

Returns

McObjectId

成功返回 1,失败返回 0


getAllLayoutName

getAllLayoutName(): McGeStringArray

得到所有布局名

Returns

McGeStringArray


getCurrentDatabaseDrawColor

getCurrentDatabaseDrawColor(): Color

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

Returns

Color


getCurrentFileName

getCurrentFileName(): string

获取当前文件名

Returns

string

当前文件名


getDatabase

getDatabase(): McDbDatabase

获取数据库对象

Example

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

Returns

McDbDatabase

数据库对象


getImp

getImp(): any

获取对象实现

Returns

any

对象实现


getMxCpp

getMxCpp(): any

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

Returns

any


getMxDrawObject

getMxDrawObject(): MxDrawObject

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

Returns

MxDrawObject


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

初始化对象模型

Description

Parameters

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

Returns

void


initRegist

initRegist(sRegist): void

初始化用户注册数据.

Parameters

NameType
sRegiststring

Returns

void


insertBlock

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

插件图块文件

Example

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

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。

Returns

Promise<McObjectId>


isTryVersion

isTryVersion(): boolean

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

Returns

boolean


loadImage

loadImage(imageUrl, call): void

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

Example

ts
import { McApp } from "mxcad"
const mxcad = McApp.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();
});

Parameters

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

Returns

void


newFile

newFile(): boolean

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

Returns

boolean


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


on

on(name, fun): void

监听对象选择事件

Example

ts
import { MxCpp } from "mxcad"
MxCpp.getCurrentMxCAD().on("selectChange", (ids)=> {
     let ent = id.getMcDbEntity()
     if(!ent) return
     console.log(ent.objectName)
})

Parameters

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

Returns

void

on(name, fun): void

添加时间监听

Parameters

NameTypeDescription
name"openFileComplete"监听事件名
fun() => void监听函数

Returns

void

on(name, fun): void

添加时间监听

Parameters

NameTypeDescription
name"init"监听事件名
fun() => void监听函数

Returns

void

on(name, fun): void

添加时间监听

Parameters

NameTypeDescription
name"init_mxdraw"监听事件名
fun(mxdraw: MxDrawObject) => void监听函数

Returns

void

on(name, fun): void

添加时间监听

Parameters

NameTypeDescription
name"init_before_mxdraw"监听事件名
fun(mxdraw: MxDrawObject) => void监听函数

Returns

void

on(name, fun): void

添加时间监听

Parameters

NameTypeDescription
name"init_mxcad"监听事件名
fun(mxcad: McObject) => void监听函数

Returns

void

on(name, fun): void

添加时间监听

Parameters

NameTypeDescription
name"databaseModify"监听事件名
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

是否成功打开文件


pathCircle

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

根据圆对象创建一个路径

Example

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

Parameters

NameTypeDefault value
dCenXnumberundefined
dCenYnumberundefined
dRnumberundefined
dPrecisionnumber0.0
dWidthnumber0

Returns

boolean


pathLineTo

pathLineTo(dX, dY): void

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

Example

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

Parameters

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns

void


pathLineToEx

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

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

Example

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

Parameters

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

Returns

void


pathMakeClosed

pathMakeClosed(): void

闭合路径

Returns

void


pathMakeExclude

pathMakeExclude(isExclude): void

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

Example

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

Parameters

NameTypeDescription
isExcludeboolean是否排除

Returns

void


pathMoveTo

pathMoveTo(dX, dY): void

将路径移动到指定位置

Example

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

Parameters

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns

void


pathMoveToEx

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

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

Example

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

Parameters

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

Returns

void


redo

redo(): void

反回退,重做。

Returns

void


regen

regen(delayTime?): void

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

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();

Parameters

NameTypeDefault value
delayTimenumber0

Returns

void


saveFile

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

保存文件

Example

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

Parameters

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

Returns

boolean

是否成功保存文件


saveFileToUrl

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

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

Example

ts
import { MxCpp } from "mxcad"
const mxcad = 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)
   }
})

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

是否成功保存文件


setBrowse

setBrowse(browse): void

设置浏览模式

Parameters

NameType
browseboolean

Returns

void


setCurrentLayout

setCurrentLayout(layoutName): void

设置当前布局名

Parameters

NameType
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

设置视区的背景色.

Example

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

Parameters

NameType
rednumber
greennumber
bluenumber

Returns

void


undo

undo(): void

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

Returns

void


undoMark

undoMark(): void

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

Returns

void


updateDisplay

updateDisplay(isImmediate?, delayTime?): void

更新显示

Parameters

NameTypeDefault value
isImmediatebooleanfalse
delayTimenumber0

Returns

void


updateLayerDisplayStatus

updateLayerDisplayStatus(): void

更新图层的显示

Returns

void


zoomAll

zoomAll(): boolean

显示全部

Returns

boolean


zoomAngle

zoomAngle(viewangle): void

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

Example

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

Parameters

NameTypeDescription
viewanglenumber旋转角度 Math.PI

Returns

void

void


zoomCenter

zoomCenter(dCenX, dCenY): void

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

Example

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

Parameters

NameType
dCenXnumber
dCenYnumber

Returns

void

void


zoomScale

zoomScale(scale): void

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

Example

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

Parameters

NameTypeDescription
scalenumberscale缩放比例

Returns

void

void


zoomW

zoomW(minPt, maxPt): void

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

Example

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

Parameters

NameTypeDescription
minPtMcGePoint3d坐标1 McGePoint3d
maxPtMcGePoint3d坐标2 McGePoint3d

Returns

void

void