Skip to content

mxcad_2d API 文档 / 2d / McObject

Class: McObject ​

2d.McObject

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

Table of contents ​

Constructors ​

Accessors ​

Methods ​

Constructors ​

constructor ​

• new McObject(imp?)

构造函数

Example

ts
import { McObject } from 'mxcad'

const mxcad = new McObject;

Parameters ​

NameTypeDescription
imp?any对象实现

Accessors ​

database ​

• get database(): McDbDatabase

返回数据库对象

Returns ​

McDbDatabase


drawColor ​

• get drawColor(): McCmColor

获取绘制颜色

Returns ​

McCmColor

返回绘制颜色

• set drawColor(val): void

设置绘制颜色

Example

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

Parameters ​

NameTypeDescription
valMcCmColor绘制颜色

Returns ​

void


drawColorIndex ​

• get drawColorIndex(): number

设置绘制颜色索引

Returns ​

number

val 颜色索引类型

• set drawColorIndex(val): void

设置绘制颜色索引

Example

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

Parameters ​

NameTypeDescription
valnumber颜色索引类型

Returns ​

void


drawDimStyle ​

• get drawDimStyle(): string

获取当前绘制的标注样式

Returns ​

string

• set drawDimStyle(val): void

设置当前绘制的标注样式

Example

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

Parameters ​

NameTypeDescription
valstring样式名称

Returns ​

void


drawLayer ​

• get drawLayer(): string

获取绘制图层

Returns ​

string

返回绘制图层

• set drawLayer(val): void

设置绘制图层

Example

ts
import { MxCpp, McObject } from 'mxcad'
  const mxcad:McObject = 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

设置绘制线宽

Example

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

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

Parameters ​

NameTypeDescription
valLineWeight绘制线宽

Returns ​

void


drawLineWidth ​

• get drawLineWidth(): number

获取当前绘制的线宽

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad: McObject = MxCpp.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

设置绘制线型

Example

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

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

Parameters ​

NameTypeDescription
valstring绘制线型

Returns ​

void


drawPatternDefinition ​

• get drawPatternDefinition(): string

获取当前绘制的线型定义

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad: McObject = MxCpp.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

设置绘制文字样式

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";

Parameters ​

NameTypeDescription
valstring绘制文字样式

Returns ​

void


drawUseDefaultProperties ​

• get drawUseDefaultProperties(): boolean

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

Returns ​

boolean

• set drawUseDefaultProperties(val): void

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

Parameters ​

NameTypeDescription
valboolean线宽

Returns ​

void


mxdraw ​

• get mxdraw(): MxDrawObject

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

Example

ts
import { McObject } from 'mxcad'

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

Returns ​

MxDrawObject

MxDraw对象

Methods ​

AddTureTypeTextStyle ​

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

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

Example

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

Parameters ​

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

Returns ​

McObjectId


addCurrentSelect ​

▸ addCurrentSelect(id, isDisplayGrid?): void

把对象添加当前选择中

Example

typescript
import { MxCpp, McObject } from "mxcad"
let mxcad:McObject = 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

添加标注样式

Description

pszDoubleData 双精度型数据

系统变量值功能说明
dimaltf143控制换算单位的乘数
dimasz41控制尺寸线和引线箭头的大小。并控制基线的大小。
dimcen141控制圆或圆弧圆心标记以及中心线的绘制。
dimdle46当使用小斜线代替箭头进行标注时,设置尺寸线超出尺寸界线的距离。
dimdli43控制基线标注中尺寸线的间距。
dimexe44将命名标注样式及其设置输出到外部文件。
dimexo42指定尺寸界线偏离原点的距离。
dimgap147设置当打断尺寸线以符合标注文字时,标注文字周围的距离。
dimlfac144为线性标注测量值设置比例因子。
dimrnd45将所有标注距离舍入为指定值。
dimscale40设置应用于标注变量(用于指定尺寸、距离或偏移量)的全局比例因子。
dimtfac146与通过 DIMTXT 系统变量设置一样,指定分数和公差值的文字高度相对于标注文字高度的比例因子。
dimtm48为标注文字设置最小(即最低)公差限制。
dimtp47为标注文字设置最大(即最高)公差限制。
dimtsz142指定线性标注、半径标注以及直径标注中绘制的代替箭头的小斜线的尺寸。
dimtvp145控制标注文字在尺寸线上方或下方的垂直位置。
dimtxt140指定标注文字的高度(除非当前文字样式具有固定的高度)。
dimaltrnd148舍入换算标注单位。

Description

pszIntData 整型数据

系统变量值功能说明
dimadec179控制角度标注中显示的精度小数位数。
dimalt170控制标注中换算单位的显示。
dimaltd171控制换算单位中的小数位数。
dimalttd274设置换算标注单位中的公差值的小数位数。
dimalttz286控制对公差值的消零处理。
dimaltu273为所有标注子样式(角度标注除外)的换算单位设定单位格式。
dimaltz285控制对换算单位标注值的消零处理。
dimaunit275为角度标注设定单位格式。
dimclrd176为尺寸线、箭头和标注引线指定颜色。
dimclre177为尺寸界线、圆心标记和中心线指定颜色。
dimclrt178为标注文字指定颜色。
dimdec271设置标注主单位中显示的小数位数。
dimfit287尺寸界线内的空间不足以同时放下标注文字和箭头时,此系统变量将确定这两者的排列方式。
dimjust280控制标注文字的水平位置。
dimlim72生成标注界限作为默认文字。
dimsah173控制尺寸线箭头块的显示。
dimsd1281控制是否隐去第一条尺寸线和箭头。
dimsd2282控制是否隐去第二条尺寸线和箭头。
dimse175控制是否隐去第一条尺寸界线。
dimse276控制是否隐去第二条尺寸界线。
dimsoxd175如果尺寸界线内没有足够的空间,则隐去箭头。
dimtad77控制文字相对于尺寸线的垂直位置。
dimtdec272设置标注主单位的公差值中显示的小数位数。
dimtih73控制所有标注类型(坐标标注除外)的标注文字在尺寸界线内的位置。
dimtix174在尺寸界线之间绘制文字。
dimtofl172控制是否在尺寸界线之间绘制尺寸线(即使标注文字被放置在尺寸界线之外)。
dimtoh74控制标注文字在尺寸界线外的位置。
dimtol71将公差附在标注文字中。
dimtolj283设置公差值相对于表面标注文字的垂直对正方式。
dimzin78控制针对主单位值的消零处理。
dimupt288控制用户定位文字的选项。
dimtzin284控制对公差值的消零处理。
dimfrac276设置分数格式。
dimlunit277为所有标注类型(角度标注除外)设置单位。
dimatfit289尺寸界线内的空间不足以同时放下标注文字和箭头时,此系统变量将确定这两者的排列方式。
dimtmove279设置标注文字的移动规则。
dimazin79针对角度标注进行消零处理。

Description

pszStringData 字符串型数据

系统变量值功能说明
dimapost4指定用于所有标注类型(角度标注除外)的换算标注测量值的文字前缀或后缀(或两者都指定)。
dimpost3为标注测量值指定文字前缀或后缀(或两者)。

Description

pszIdData ID 型数据

系统变量值功能说明
dimblk342为尺寸线的第二个端点设置箭头 。
dimblk1343为尺寸线的第一个端点设置箭头。
dimblk2344为尺寸线的第二个端点设置箭头。
dimldrblk341指定引线箭头的类型。
dimtxsty340指定标注的文字样式。

Example

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

// MyDimStyle2:样式名称
// "41,0.18,141,0.09,40,200":双精度型数据
// "77,1,271,3": 整型数据
// 其中数值两两一组,如 "41,0.18":dimasz系统变量值设置为0.18;"77,1":dimtad系统变量值设置为1
mxcad.addDimStyle("MyDimStyle2", "41,0.18,141,0.09,40,200", "77,1,271,3", "", "");
增加一个%%c前缀 '3,"%%c<>"'
mxcad.addDimStyle("MyDimStyle", "41,0.18,141,0.09,40,200", "77,1,271,3", '3,"%%c<>"', `340,${textId.id}`);

Parameters ​

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

Returns ​

McObjectId


addImageDefine ​

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

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

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

Parameters ​

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

Returns ​

McObjectId


addLayer ​

▸ addLayer(string): McObjectId

添加图层

Example

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

Parameters ​

NameType
stringstring

Returns ​

McObjectId


addLinetype ​

▸ addLinetype(sName, sLineDefine): McObjectId

添加线型

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { 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', "");

Parameters ​

NameTypeDefault value
sNamestringundefined
sLineDefinestringundefined
sTextStylestring""

Returns ​

McObjectId


addPatternDefinition ​

▸ addPatternDefinition(sName, sDefinitionData): 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))");

Parameters ​

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

Returns ​

void


addSystemVarNameForEvent ​

▸ addSystemVarNameForEvent(aryVarName): void

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

Parameters ​

NameType
aryVarNamestring[]

Returns ​

void


addTextStyle ​

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

添加文字样式

Example

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

Parameters ​

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

Returns ​

McObjectId


callEvent ​

▸ callEvent(sEventName, param?): boolean

触发一个系统事件的调用

Example

ts
import { MxCpp, McObject } from "mxcad"

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

Parameters ​

NameTypeDescription
sEventNamestring-
param?any事件参数

Returns ​

boolean


clearDwgBackground ​

▸ clearDwgBackground(): void

清除背景绘制对象

Returns ​

void


clearMxCurrentSelect ​

▸ clearMxCurrentSelect(): void

清除当前所有选择

Example

ts
import { MxCpp, McObject } from "mxcad"

const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.clearCurrentSelect();

Returns ​

void


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


createLayout ​

▸ createLayout(sName): McObjectId

创建布局

Example

ts
import { MxCpp, McObject } from "mxcad"

Parameters ​

NameType
sNamestring

Returns ​

McObjectId


deleteLayout ​

▸ deleteLayout(sName): boolean

删除布局

Example

ts

Parameters ​

NameType
sNamestring

Returns ​

boolean


destroyObject ​

▸ destroyObject(pObjectImp): void

销毁指定的 McRxObjectImp 对象

Parameters ​

NameTypeDescription
pObjectImpMcRxObjectImp待销毁的 McRxObjectImp 对象

Returns ​

void


drawArc ​

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

绘制圆弧

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad: McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
  const mxcad:McObject = MxCpp.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

块对象id


drawCircle ​

▸ drawCircle(dCenterX, dCenterY, dRadius): McObjectId

绘制圆

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawDimDiametric(500, 0, -500, 0, 20);

Parameters ​

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

Returns ​

McObjectId

直径标注对象id


drawDimOrdinate ​

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

绘制标注线性尺寸

Example

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

Parameters ​

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

Returns ​

McObjectId

线性尺寸对象id


drawDimRadial ​

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

绘制标注径向尺寸

Example

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

Parameters ​

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

Returns ​

McObjectId

径向尺寸对象id


drawDimRotated ​

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

绘制旋转标注

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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

旋转标注对象id


drawEllipse ​

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

绘制椭圆

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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, isUseDatabaseCurrentProperties?): 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);

Parameters ​

NameTypeDefault valueDescription
entityMcDbEntityundefined实体对象
isUseDatabaseCurrentPropertiesbooleanfalse-

Returns ​

McObjectId

绘制结果


drawHatch ​

▸ drawHatch(hatch, dPatternScale?): McObjectId

绘制填充对象

Parameters ​

NameTypeDefault value
hatchMcDbHatchundefined
dPatternScalenumber1.0

Returns ​

McObjectId

绘制对象id


drawImage ​

▸ drawImage(dPosX, dPosY, dWidth, dHeight, dAng, imageName, isConvertBase64?, dwgImageSizeWidth?, dwgImageSizeHeight?, imageUrl?): McObjectId

绘制一个图片

Parameters ​

NameTypeDefault valueDescription
dPosXnumberundefined图片 X 坐标
dPosYnumberundefined图片 Y 坐标
dWidthnumberundefined图片宽度
dHeightnumberundefined图片高度
dAngnumberundefined图片角度,单位是度
imageNamestringundefined-
isConvertBase64booleanfalse-
dwgImageSizeWidthnumber1.0-
dwgImageSizeHeightnumber1.0-
imageUrlstring""图片路径

Returns ​

McObjectId


drawLine ​

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

绘制直线

Example

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

Parameters ​

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

Returns ​

McObjectId

多行文本对象id


drawPathToHatch ​

▸ drawPathToHatch(dPatternScale?): 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();// 绘制实心圆
   }

Parameters ​

NameTypeDefault valueDescription
dPatternScalenumber1.0图案缩放比例

Returns ​

McObjectId

转换结果


drawPathToPolyline ​

▸ drawPathToPolyline(): McObjectId

将路径转换为折线

Returns ​

McObjectId

转换结果


drawPathToSpline ​

▸ drawPathToSpline(): McObjectId

将路径转换为样条曲线

Returns ​

McObjectId

转换结果


drawPoint ​

▸ drawPoint(dX, dY): McObjectId

绘制点

Example

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

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

实体对象id


drawText ​

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

绘制单行文本

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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


getBackgroundEntity ​

▸ getBackgroundEntity(): McDbBackgroundEntity

返回当前背景对象

Returns ​

McDbBackgroundEntity


getCurrentDatabaseDrawColor ​

▸ getCurrentDatabaseDrawColor(): Color

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

Returns ​

Color


getCurrentFileName ​

▸ getCurrentFileName(): string

获取当前文件名

Returns ​

string

当前文件名


getCurrentLayout ​

▸ getCurrentLayout(): string

得到当前布局名

Returns ​

string


getCurrentLayoutId ​

▸ getCurrentLayoutId(): McObjectId

得到当前布局ID

Returns ​

McObjectId


getCurrentOriginaFileName ​

▸ getCurrentOriginaFileName(): string

获取当前文件名

Returns ​

string

当前文件名


getDatabase ​

▸ getDatabase(): McDbDatabase

获取数据库对象

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = 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对象。

Example

ts
import { McObject } from 'mxcad'

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

Returns ​

MxDrawObject

MxDraw对象


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

变量的字符串值


getTempDraw ​

▸ getTempDraw(): McObjectTempDraw

得到临时绘制模块

Example

ts

Returns ​

McObjectTempDraw


getViewBackgroundColor ​

▸ getViewBackgroundColor(): number

返回视区的背景色,0XFF(red)FF(green)FF(blue)

Example

ts

Returns ​

number


getViewCADCoord ​

▸ getViewCADCoord(): Object

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

Returns ​

Object

当前视区显示范围

NameType
pt1McGePoint3d
pt2McGePoint3d
pt3McGePoint3d
pt4McGePoint3d

iniAuthorizedService ​

▸ iniAuthorizedService(sUrl): void

初始化用户授权服务url.

Parameters ​

NameType
sUrlstring

Returns ​

void


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 ​

NameTypeDescription
sRegiststring注册数据

Returns ​

void


insertBlock ​

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

插件图块文件

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = 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。
isUpdataInsertBlockbooleanfalse是否更新已经存在的块,默认不会更新
isUpdataSameNameBlockbooleanfalse是插入块的过程中,如果发现原数据库已经相同名称的块,是否也一同更新,默认不会更新

Returns ​

Promise<McObjectId>


isTryVersion ​

▸ isTryVersion(): boolean

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

Returns ​

boolean


loadDwgBackground ​

▸ loadDwgBackground(sFileUrl, call, color?, isShow?): void

加载另一个dwg文件当前背景对象绘制.

Parameters ​

NameTypeDefault value
sFileUrlstringundefined
call(ret: boolean) => voidundefined
colornumber0
isShowbooleantrue

Returns ​

void


loadImage ​

▸ loadImage(imageUrl, call, imageFileName?, fileType?): 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();
});

Parameters ​

NameTypeDefault valueDescription
imageUrlstringundefined图片路径
call(image: any) => voidundefined回调函数
imageFileNamestring""-
fileTypestring""-

Returns ​

void


newFile ​

▸ newFile(): boolean

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

Example

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

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

Returns ​

boolean


objectIdToObject ​

▸ objectIdToObject(lIdIndex): null | McDbObject

将 lIdIndex 转换成 McDbObject 对象

Parameters ​

NameTypeDescription
lIdIndexnumber对象 ID

Returns ​

null | McDbObject

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


off ​

▸ off(name, fun?): void

关闭事件监听

Example

ts
import { MxCpp, McObject } from "mxcad"

const mxcad:McObject = MxCpp.getCurrentMxCAD();
// e:事件函数,这里指代在mxcad.on("selectChange", e)中注册的函数
mxcad.off("selectChange", e);

Parameters ​

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

Returns ​

void


on ​

▸ on(name, fun): void

监听对象选择事件

Example

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

const mxcad:McObject = MxCpp.getCurrentMxCAD();
mxcad.on("selectChange", (ids: McObjectId[])=> {
     if (ids.length == 0) return;
     let id = ids[0]
     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 ​

NameType
name"openFileComplete"
fun() => void

Returns ​

void

▸ on(name, fun): void

mxdraw mxcad程序已经加载,准备初始化cpp程序

Parameters ​

NameType
name"init_cpp"
fun() => void

Returns ​

void

▸ on(name, fun): void

mxdraw mxcad程序已经加载,准备创建mxdraw对象时触发

Parameters ​

NameType
name"init"
fun() => void

Returns ​

void

▸ on(name, fun): void

初化地图加载时调用,mxdad-app npm使用

Parameters ​

NameType
name"init_map"
fun(init_param: { map: MxMap ; plugin: MxCADPluginBase }) => void

Returns ​

void

▸ on(name, fun): void

地图图层加载时调用,mxdad-app npm使用

Parameters ​

NameType
name"map_style.load"
fun(map: MxMap) => void

Returns ​

void

▸ on(name, fun): void

mxdraw对象创建了,准备初始相关参数时触发

Parameters ​

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

Returns ​

void

▸ on(name, fun): void

mxdraw对象创建后触发

Parameters ​

NameType
name"init_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

▸ on(name, fun): void

对象被修改事件,默认不会通知,配制EnableObjectModificationEvent变量启用 status:1:删除,2:增加,0: 修改

Parameters ​

NameType
name"objectModified"
fun(param: { cmd: string ; entitys: { erase: boolean ; id: McObjectId ; status: number }[] }) => void

Returns ​

void


openWebFile ​

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

打开网络文件

Example

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

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 { MxCpp, McObject } from "mxcad"
  const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.pathLineTo(100, 300);

Parameters ​

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns ​

void


pathLineToEx ​

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

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

Example

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

Parameters ​

NameTypeDescription
isExcludeboolean是否排除

Returns ​

void


pathMoveTo ​

▸ pathMoveTo(dX, dY): void

将路径移动到指定位置

Example

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

Parameters ​

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns ​

void


pathMoveToEx ​

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

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

Example

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

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, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
 MxCpp.getCurrentMxCAD().saveFileToUrl("http://localhost:1337/mxcad/savefiledwg", (iResult, sserverResult) => {
   let ret = JSON.parse(sserverResult);
   if (ret.ret == "ok") {
       console.log(ret.file)
   }
})
//保存pdf文件。
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
 MxCpp.getCurrentMxCAD().saveFileToUrl("http://localhost:1337/mxcad/savepdf", (iResult, sserverResult) => {
   let ret = JSON.parse(sserverResult);
   if (ret.ret == "ok") {
       console.log(ret.file)
       let saveFileUrl = "http://localhost:1337/mxcad/file/" + ret.file;
       MxTools.downloadFileFromUrl(saveFileUrl, ret.file);
   }
},"",JSON.stringify({ width: "2000", height: "2000" }));

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文件到服务器 "/mxcad/savepdf":保存pdf文件到服务器 如果没有找到则在该项目下寻找这个接口的定义, 必须符合该接口的定义才能作为参数
call(iResult: number, sServerResult: string) => void保存文件的结果回调 这里接收到的参数请自己根据接口定义中保存图纸的位置, ref.file 不是完整请求路径,只是保存后的图纸名称
filename?string-
param?any-

Returns ​

boolean

是否成功保存文件


setAttribute ​

▸ setAttribute(val): boolean

设置对象的一些属性设置

Example

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

Parameters ​

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

Returns ​

boolean


setBrowse ​

▸ setBrowse(browse): void

设置浏览模式

Parameters ​

NameType
browseboolean

Returns ​

void


setCurrentFileName ​

▸ setCurrentFileName(fileName): void

设置当前文件名

Parameters ​

NameType
fileNamestring

Returns ​

void


setCurrentLayout ​

▸ setCurrentLayout(layoutName): boolean

设置当前布局名

Parameters ​

NameTypeDescription
layoutNamestring布局名称

Returns ​

boolean


setCurrentOriginaFileName ​

▸ setCurrentOriginaFileName(fileName): void

设置当前文件名

Parameters ​

NameType
fileNamestring

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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.setViewBackgroundColor(255, 255, 255)

Parameters ​

NameType
rednumber
green?number
blue?number

Returns ​

void


showLineWeight ​

▸ showLineWeight(isShow): boolean

显示线重

Parameters ​

NameType
isShowboolean

Returns ​

boolean


undo ​

▸ undo(): void

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

Returns ​

void


undoIndexIncrease ​

▸ undoIndexIncrease(): void

回退标记索引加1. 在非命令函数里面修改数据据对象,需要回退标记索引加1,这样会记录修改,不然可能会认为上一次的命令修改,跳过当前修改回退记录. 在命令里面会自动回退标记索引加1

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(autoRegen?): boolean

显示全部

Parameters ​

NameTypeDefault value
autoRegenbooleanfalse

Returns ​

boolean


zoomAngle ​

▸ zoomAngle(viewangle): void

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

Example

typescript
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = 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 { MxCpp, McGePoint3d, McObject } from "mxcad"
const mxcad:McObject = 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 { MxApp, McGePoint3d, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.zoomW(new McGePoint3d(0, 0), new McGePoint3d(30, 30))

Parameters ​

NameTypeDescription
minPtMcGePoint3d坐标1 McGePoint3d
maxPtMcGePoint3d坐标2 McGePoint3d

Returns ​

void

void