mxcad API 文档 / McObject
Class: McObject
McObject 类
Table of contents
Constructors
Properties
Accessors
- database
- drawColor
- drawColorIndex
- drawDimStyle
- drawLayer
- drawLineTypeScale
- drawLineWeight
- drawLineWidth
- drawLinetype
- drawPatternDefinition
- drawTextStyle
- mxdraw
Methods
- AddTureTypeTextStyle
- addCurrentSelect
- addDimStyle
- addImageDefine
- addLayer
- addLinetype
- addLinetypeEx
- addPatternDefinition
- addTextStyle
- callEvent
- create
- destroyObject
- drawArc
- drawArc2
- drawArc3
- drawBlockReference
- drawCircle
- drawDimAligned
- drawDimAngular
- drawDimDiametric
- drawDimOrdinate
- drawDimRadial
- drawDimRotated
- drawEllipse
- drawEllipseArc
- drawEntity
- drawHatch
- drawImage
- drawLine
- drawLine3d
- drawMText
- drawPathToHatch
- drawPathToPolyline
- drawPathToSpline
- drawPoint
- drawSolid
- drawText
- getAllLayoutName
- getCurrentDatabaseDrawColor
- getCurrentFileName
- getDatabase
- getImp
- getMxCpp
- getMxDrawObject
- getSysVarDouble
- getSysVarLong
- getSysVarPoint
- getSysVarString
- getViewCADCoord
- init
- initMxObject
- initRegist
- insertBlock
- isTryVersion
- loadImage
- newFile
- objectIdToObject
- off
- on
- openWebFile
- pathCircle
- pathLineTo
- pathLineToEx
- pathMakeClosed
- pathMakeExclude
- pathMoveTo
- pathMoveToEx
- redo
- regen
- saveFile
- saveFileToUrl
- setBrowse
- setCurrentLayout
- setSysVarDouble
- setSysVarLong
- setSysVarPoint
- setSysVarPoint2d
- setSysVarString
- setViewBackgroundColor
- undo
- undoMark
- updateDisplay
- updateLayerDisplayStatus
- zoomAll
- zoomAngle
- zoomCenter
- zoomScale
- zoomW
Constructors
constructor
• new McObject(imp?
)
构造函数
Parameters
Name | Type | Description |
---|---|---|
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
drawColor
• get
drawColor(): McCmColor
获取绘制颜色
Returns
返回绘制颜色
• set
drawColor(val
): void
设置绘制颜色
Parameters
Name | Type | Description |
---|---|---|
val | McCmColor | 绘制颜色 |
Returns
void
drawColorIndex
• get
drawColorIndex(): number
设置绘制颜色索引
Returns
number
• set
drawColorIndex(val
): void
设置绘制颜色索引
Parameters
Name | Type | Description |
---|---|---|
val | number | 绘制颜色,ColorIndexType |
Returns
void
drawDimStyle
• get
drawDimStyle(): string
获取当前绘制的标注样式
Returns
string
• set
drawDimStyle(val
): void
设置当前绘制的标注样式
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawDimStyle = "MyDimStyle2"
Parameters
Name | Type | Description |
---|---|---|
val | string | 样式名称 |
Returns
void
drawLayer
• get
drawLayer(): string
获取绘制图层
Returns
string
返回绘制图层
• set
drawLayer(val
): void
设置绘制图层
Example
import { MxCpp } from 'mxcad'
const mxcad = MxCpp.getCurrentMxCAD();
mxcad.drawLayer = "MtextLayer";
Parameters
Name | Type | Description |
---|---|---|
val | string | 绘制图层 |
Returns
void
drawLineTypeScale
• get
drawLineTypeScale(): number
获取绘制线型比例
Returns
number
返回绘制线型比例
• set
drawLineTypeScale(val
): void
设置绘制线型比例
Parameters
Name | Type | Description |
---|---|---|
val | number | 绘制线型比例 |
Returns
void
drawLineWeight
• get
drawLineWeight(): LineWeight
获取绘制线宽
Returns
返回绘制线宽
• set
drawLineWeight(val
): void
设置绘制线宽
Parameters
Name | Type | Description |
---|---|---|
val | LineWeight | 绘制线宽 |
Returns
void
drawLineWidth
• get
drawLineWidth(): number
获取当前绘制的线宽
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawLineWidth = 4;
Returns
number
• set
drawLineWidth(val
): void
设置当前绘制的线宽
Parameters
Name | Type | Description |
---|---|---|
val | number | 线宽 |
Returns
void
drawLinetype
• get
drawLinetype(): string
获取绘制线型
Returns
string
返回绘制线型
• set
drawLinetype(val
): void
设置绘制线型
Parameters
Name | Type | Description |
---|---|---|
val | string | 绘制线型 |
Returns
void
drawPatternDefinition
• get
drawPatternDefinition(): string
获取当前绘制的线型定义
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawPatternDefinition = "MyHatchPattern1";
Returns
string
• set
drawPatternDefinition(val
): void
设置当前绘制的线型定义
Parameters
Name | Type | Description |
---|---|---|
val | string | 线型定义 |
Returns
void
drawTextStyle
• get
drawTextStyle(): string
获取绘制文字样式
Returns
string
返回绘制文字样式
• set
drawTextStyle(val
): void
设置绘制文字样式
Parameters
Name | Type | Description |
---|---|---|
val | string | 绘制文字样式 |
Returns
void
mxdraw
• get
mxdraw(): MxDrawObject
返回与MxCAD对象绑定的MxDraw对象。
Returns
MxDrawObject
Methods
AddTureTypeTextStyle
▸ AddTureTypeTextStyle(sName
, sTrueTypeFontName?
, dXScale?
): McObjectId
添加使用TrueType字体的文字样式
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.AddTureTypeTextStyle("MyTrueTypeTextStyle");
Parameters
Name | Type | Default value | Description |
---|---|---|---|
sName | string | undefined | - |
sTrueTypeFontName | string | "" | TrueType字体名,为空使用默认TrueType字体. |
dXScale | number | 1.0 | X 方向缩放比例 |
Returns
addCurrentSelect
▸ addCurrentSelect(id
, isDisplayGrid?
): void
把对象添加当前选择中
Example
import { McApp } from "mxcad"
let mxcad = MxCpp.getCurrentMxCAD();
let id = mxcad.drawLine(0,0,1000,1000);
mxcad.addCurrentSelect(id);
Parameters
Name | Type | Default value | Description |
---|---|---|---|
id | McObjectId | McObjectId [] | undefined | 对象id |
isDisplayGrid | boolean | true | - |
Returns
void
void
addDimStyle
▸ addDimStyle(pszName
, pszDoubleData
, pszIntData
, pszStringData
, pszIdData
): McObjectId
添加标注样式
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.addDimStyle("MyDimStyle2", "41,0.18,141,0.09,40,200", "77,1,271,3", "", "");
Parameters
Name | Type | Description |
---|---|---|
pszName | string | 样式名称 |
pszDoubleData | string | 双精度型数据 |
pszIntData | string | 整型数据 |
pszStringData | string | 字符串型数据 |
pszIdData | string | ID 型数据 |
Returns
addImageDefine
▸ addImageDefine(imageUrl
, sName?
, isConvertBase64?
): McObjectId
添加一个图片定义到cad数据库中 。
Example
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
Name | Type | Default value | Description |
---|---|---|---|
imageUrl | string | undefined | 图片路径 |
sName | string | "" | 图片定义名称 |
isConvertBase64 | boolean | false | - |
Returns
addLayer
▸ addLayer(string
): McObjectId
添加图层
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.addLayer("图层名称")
Parameters
Name | Type |
---|---|
string | string |
Returns
addLinetype
▸ addLinetype(sName
, sLineDefine
): McObjectId
添加线型
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
//定义虚线数据据,"MyLineType"是线型名,"6,-8"是虚线的一个单位定义,6是实线长,-8是空格长。
mxcad.addLinetype("MyLineType", "6,-10");
Parameters
Name | Type |
---|---|
sName | string |
sLineDefine | string |
Returns
addLinetypeEx
▸ addLinetypeEx(sName
, sLineDefine
, sTextStyle?
): McObjectId
添加线型
Example
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
Name | Type | Default value |
---|---|---|
sName | string | undefined |
sLineDefine | string | undefined |
sTextStyle | string | "" |
Returns
addPatternDefinition
▸ addPatternDefinition(sName
, sDefinitionData
): void
增加一个图案定义
Example
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
Name | Type | Description |
---|---|---|
sName | string | 图案名称 |
sDefinitionData | string | 图案默认定义数据 |
Returns
void
addTextStyle
▸ addTextStyle(sName
, sFileName
, sBigFontFileName
, dXScale?
): McObjectId
添加文字样式
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.addTextStyle("MyLineTypeTextStyle", "txt.shx", "hztxt.shx", 1);
Parameters
Name | Type | Default value | Description |
---|---|---|---|
sName | string | undefined | - |
sFileName | string | undefined | - |
sBigFontFileName | string | undefined | - |
dXScale | number | 1.0 | X 方向缩放比例 |
Returns
callEvent
▸ callEvent(sEventName
, param?
): boolean
触发一个系统事件的调用
Parameters
Name | Type | Description |
---|---|---|
sEventName | string | - |
param? | any | 事件参数 |
Returns
boolean
create
▸ create(config
): void
创建mxcad对象 。
Example
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
Name | Type | Description |
---|---|---|
config | MxCadConfig | createMxCad 的参数配置 |
Returns
void
destroyObject
▸ destroyObject(pObjectImp
): void
销毁指定的 McRxObjectImp 对象
Parameters
Name | Type | Description |
---|---|---|
pObjectImp | McRxObjectImp | 待销毁的 McRxObjectImp 对象 |
Returns
void
drawArc
▸ drawArc(dCenterX
, dCenterY
, dRadius
, dStartAng
, dEndAng
): McObjectId
绘制圆弧
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawArc(300, 1000, 100, 30, 200);
Parameters
Name | Type | Description |
---|---|---|
dCenterX | number | 圆心 X 坐标 |
dCenterY | number | 圆心 Y 坐标 |
dRadius | number | 半径 |
dStartAng | number | 起始角度,单位为弧度 |
dEndAng | number | 结束角度,单位为弧度 |
Returns
成功返回 1,失败返回 0
drawArc2
▸ drawArc2(dStartPointX
, dStartPointY
, dMidPointX
, dMidPointY
, dEndPointX
, dEndPointY
): McObjectId
绘制圆弧
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
//由圆弧上三个点绘制圆弧
mxcad.drawArc2(800, 1000, 900, 1200, 1000, 900);
Parameters
Name | Type | Description |
---|---|---|
dStartPointX | number | 起始点 X 坐标 |
dStartPointY | number | 起始点 Y 坐标 |
dMidPointX | number | 中间点 X 坐标 |
dMidPointY | number | 中间点 Y 坐标 |
dEndPointX | number | 结束点 X 坐标 |
dEndPointY | number | 结束点 Y 坐标 |
Returns
drawArc3
▸ drawArc3(dStartPointX
, dStartPointY
, dEndPointX
, dEndPointY
, dBulge
): McObjectId
绘制圆弧
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
//由圆弧上的开始点,结束度和凸度会圆弧
mxcad.drawLineWidth = 40;
mxcad.drawArc3(1200, 1000, 1400, 1000, 0.6);
Parameters
Name | Type | Description |
---|---|---|
dStartPointX | number | 起始点 X 坐标 |
dStartPointY | number | 起始点 Y 坐标 |
dEndPointX | number | 结束点 X 坐标 |
dEndPointY | number | 结束点 Y 坐标 |
dBulge | number | 凸度 |
Returns
drawBlockReference
▸ drawBlockReference(dPosX
, dPosY
, sBlkName
, dScale
, dAng
): McObjectId
绘制块参照
Parameters
Name | Type | Description |
---|---|---|
dPosX | number | 参照位置 X 坐标 |
dPosY | number | 参照位置 Y 坐标 |
sBlkName | string | - |
dScale | number | 缩放比例 |
dAng | number | 旋转角度,单位为弧度 |
Returns
成功返回 1,失败返回 0
drawCircle
▸ drawCircle(dCenterX
, dCenterY
, dRadius
): McObjectId
绘制圆
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawCircle(0, 0, 120);
Parameters
Name | Type | Description |
---|---|---|
dCenterX | number | 圆心 X 坐标 |
dCenterY | number | 圆心 Y 坐标 |
dRadius | number | 半径 |
Returns
drawDimAligned
▸ drawDimAligned(dExtLine1PointX
, dExtLine1PointY
, dExtLine2PointX
, dExtLine2PointY
, dTextPositionX
, dTextPositionY
): McObjectId
绘制对齐标注
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawDimAligned(0, 4000, 300, 4500, 150, 4600);
Parameters
Name | Type | Description |
---|---|---|
dExtLine1PointX | number | 第一条尺线起点 X 坐标 |
dExtLine1PointY | number | 第一条尺线起点 Y 坐标 |
dExtLine2PointX | number | 第二条尺线起点 X 坐标 |
dExtLine2PointY | number | 第二条尺线起点 Y 坐标 |
dTextPositionX | number | 文本位置 X 坐标 |
dTextPositionY | number | 文本位置 Y 坐标 |
Returns
成功返回 1,失败返回 0
drawDimAngular
▸ drawDimAngular(dAngleVertexX
, dAngleVertexY
, dFirstEndPointX
, dFirstEndPointY
, dSecondEndPointX
, dSecondEndPointY
, dTextPointX
, dTextPointY
): McObjectId
绘制角度标注
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawDimAngular(500, 5000, 0, 5500, 1000, 5500, 500, 5500);
Parameters
Name | Type | Description |
---|---|---|
dAngleVertexX | number | 角度顶点 X 坐标 |
dAngleVertexY | number | 角度顶点 Y 坐标 |
dFirstEndPointX | number | 第一条尺线起点 X 坐标 |
dFirstEndPointY | number | 第一条尺线起点 Y 坐标 |
dSecondEndPointX | number | 第二条尺线起点 X 坐标 |
dSecondEndPointY | number | 第二条尺线起点 Y 坐标 |
dTextPointX | number | 文本位置 X 坐标 |
dTextPointY | number | 文本位置 Y 坐标 |
Returns
成功返回 1,失败返回 0
drawDimDiametric
▸ drawDimDiametric(dChordPointX
, dChordPointY
, dFarChordPointX
, dFarChordPointY
, dLeaderLength
): McObjectId
绘制直径标注
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawDimDiametric(500, 0, -500, 0, 20);
Parameters
Name | Type | Description |
---|---|---|
dChordPointX | number | 弦线端点 X 坐标 |
dChordPointY | number | 弦线端点 Y 坐标 |
dFarChordPointX | number | 弦线远端点 X 坐标 |
dFarChordPointY | number | 弦线远端点 Y 坐标 |
dLeaderLength | number | 引线长度 |
Returns
成功返回 1,失败返回 0
drawDimOrdinate
▸ drawDimOrdinate(dDefinitionPointX
, dDefinitionPointY
, dDeaderEndPointX
, dDeaderEndPointY
, isUseXAxis
): McObjectId
绘制标注线性尺寸
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawDimOrdinate(500, 0, -500, 0, true);
Parameters
Name | Type | Description |
---|---|---|
dDefinitionPointX | number | 定义点 X 坐标 |
dDefinitionPointY | number | 定义点 Y 坐标 |
dDeaderEndPointX | number | 标注终点 X 坐标 |
dDeaderEndPointY | number | 标注终点 Y 坐标 |
isUseXAxis | boolean | 是否沿 X 轴方向标注 |
Returns
绘制结果
drawDimRadial
▸ drawDimRadial(dCenterX
, dCenterY
, dChordPointX
, dChordPointY
, dLeaderLength
): McObjectId
绘制标注径向尺寸
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawDimOrdinate(0, 0, 0, 500, 20);
Parameters
Name | Type | Description |
---|---|---|
dCenterX | number | 中心点 X 坐标 |
dCenterY | number | 中心点 Y 坐标 |
dChordPointX | number | 弦线端点 X 坐标 |
dChordPointY | number | 弦线端点 Y 坐标 |
dLeaderLength | number | 标注线长度 |
Returns
绘制结果
drawDimRotated
▸ drawDimRotated(dExtLine1PointX
, dExtLine1PointY
, dExtLine2PointX
, dExtLine2PointY
, dDimLineLocationX
, dDimLineLocationY
, dRotationAngle
): McObjectId
绘制旋转标注
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawDimRotated(0, 7000, 600, 7000, 250, 7050, 0);
Parameters
Name | Type | Description |
---|---|---|
dExtLine1PointX | number | 第一条尺线起点 X 坐标 |
dExtLine1PointY | number | 第一条尺线起点 Y 坐标 |
dExtLine2PointX | number | 第二条尺线起点 X 坐标 |
dExtLine2PointY | number | 第二条尺线起点 Y 坐标 |
dDimLineLocationX | number | 标注线位置 X 坐标 |
dDimLineLocationY | number | 标注线位置 Y 坐标 |
dRotationAngle | number | 旋转角度,单位为弧度 |
Returns
成功返回 1,失败返回 0
drawEllipse
▸ drawEllipse(dCenterX
, dCenterY
, dMajorAxisX
, dMajorAxisY
, dRadiusRatio
): McObjectId
绘制椭圆
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawEllipse(0, 1400, 100, 0, 0.7);
Parameters
Name | Type | Description |
---|---|---|
dCenterX | number | 椭圆中心 X 坐标 |
dCenterY | number | 椭圆中心 Y 坐标 |
dMajorAxisX | number | 长轴 X 坐标 |
dMajorAxisY | number | 长轴 Y 坐标 |
dRadiusRatio | number | 短轴与长轴的比例 |
Returns
成功返回 1,失败返回 0
drawEllipseArc
▸ drawEllipseArc(dCenterX
, dCenterY
, dMajorAxisX
, dMajorAxisY
, dRadiusRatio
, dStartAng
, dEndAng
): McObjectId
绘制椭圆弧
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawEllipseArc(0, 1600, 80, 30, 0.4, 30, 200);
Parameters
Name | Type | Description |
---|---|---|
dCenterX | number | 椭圆中心 X 坐标 |
dCenterY | number | 椭圆中心 Y 坐标 |
dMajorAxisX | number | 长轴 X 坐标 |
dMajorAxisY | number | 长轴 Y 坐标 |
dRadiusRatio | number | 短轴与长轴的比例 |
dStartAng | number | 起始角度,单位为弧度 |
dEndAng | number | 结束角度,单位为弧度 |
Returns
drawEntity
▸ drawEntity(entity
): McObjectId
绘制实体
Parameters
Name | Type | Description |
---|---|---|
entity | McDbEntity | 实体对象 |
Returns
绘制结果
drawHatch
▸ drawHatch(hatch
, dPatternScale?
): McObjectId
绘制填充对象
Parameters
Name | Type | Default value |
---|---|---|
hatch | McDbHatch | undefined |
dPatternScale | number | 1.0 |
Returns
绘制对象id
drawImage
▸ drawImage(dPosX
, dPosY
, dWidth
, dHeight
, dAng
, imageUrl
, isConvertBase64?
): McObjectId
绘制一个图片
Parameters
Name | Type | Default value | Description |
---|---|---|---|
dPosX | number | undefined | 图片 X 坐标 |
dPosY | number | undefined | 图片 Y 坐标 |
dWidth | number | undefined | 图片宽度 |
dHeight | number | undefined | 图片高度 |
dAng | number | undefined | 图片角度 |
imageUrl | string | undefined | 图片路径 |
isConvertBase64 | boolean | false | - |
Returns
drawLine
▸ drawLine(dX1
, dY1
, dX2
, dY2
): McObjectId
绘制直线
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawLine(0, 60, 100, 60);
Parameters
Name | Type | Description |
---|---|---|
dX1 | number | 起点 X 坐标 |
dY1 | number | 起点 Y 坐标 |
dX2 | number | 终点 X 坐标 |
dY2 | number | 终点 Y 坐标 |
Returns
drawLine3d
▸ drawLine3d(dX1
, dY1
, dZ1
, dX2
, dY2
, dZ2
): McObjectId
Parameters
Name | Type |
---|---|
dX1 | number |
dY1 | number |
dZ1 | number |
dX2 | number |
dY2 | number |
dZ2 | number |
Returns
drawMText
▸ drawMText(dPosX
, dPosY
, sContents
, dHeight
, dWidth
, dRotation
, iAttachment
): McObjectId
绘制多行文本
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawMText(0, -100, "控件:\\P多行文字测试", 50, 400, 0, 1);
Parameters
Name | Type | Description |
---|---|---|
dPosX | number | 文本位置 X 坐标 |
dPosY | number | 文本位置 Y 坐标 |
sContents | string | - |
dHeight | number | 文本高度 |
dWidth | number | 文本宽度 |
dRotation | number | 旋转角度,单位为弧度 |
iAttachment | AttachmentPoint | 对齐方式 |
Returns
成功返回 1,失败返回 0
drawPathToHatch
▸ drawPathToHatch(dPatternScale?
): McObjectId
将路径转换为填充图案
Parameters
Name | Type | Default value | Description |
---|---|---|---|
dPatternScale | number | 1.0 | 图案缩放比例 |
Returns
转换结果
drawPathToPolyline
▸ drawPathToPolyline(): McObjectId
将路径转换为折线
Returns
转换结果
drawPathToSpline
▸ drawPathToSpline(): McObjectId
将路径转换为样条曲线
Returns
转换结果
drawPoint
▸ drawPoint(dX
, dY
): McObjectId
绘制点
Parameters
Name | Type | Description |
---|---|---|
dX | number | X 坐标 |
dY | number | Y 坐标 |
Returns
drawSolid
▸ drawSolid(dX1
, dY1
, dX2
, dY2
, dX3
, dY3
, dX4
, dY4
): McObjectId
绘制实体
Parameters
Name | Type | Description |
---|---|---|
dX1 | number | 第一个点 X 坐标 |
dY1 | number | 第一个点 Y 坐标 |
dX2 | number | 第二个点 X 坐标 |
dY2 | number | 第二个点 Y 坐标 |
dX3 | number | 第三个点 X 坐标 |
dY3 | number | 第三个点 Y 坐标 |
dX4 | number | 第四个点 X 坐标 |
dY4 | number | 第四个点 Y 坐标 |
Returns
成功返回实体号,失败返回 0
drawText
▸ drawText(dPosX
, dPosY
, pszText
, dHeight
, dRotation
, horizontalMode
, verticalMode
): McObjectId
绘制单行文本
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.drawText(0, 1900, "绘图控件文字测试", 100, 0, 0, 1);
Parameters
Name | Type | Description |
---|---|---|
dPosX | number | 文本位置 X 坐标 |
dPosY | number | 文本位置 Y 坐标 |
pszText | string | 文本内容 |
dHeight | number | 文本高度 |
dRotation | number | 旋转角度,单位为弧度 |
horizontalMode | TextHorzMode | 横向对齐方式 |
verticalMode | TextVertMode | 纵向对齐方式 |
Returns
成功返回 1,失败返回 0
getAllLayoutName
▸ getAllLayoutName(): McGeStringArray
得到所有布局名
Returns
getCurrentDatabaseDrawColor
▸ getCurrentDatabaseDrawColor(): Color
返回当前数据库中设置的绘制颜色,它会自动依据背景色,把黑白色转换。
Returns
Color
getCurrentFileName
▸ getCurrentFileName(): string
获取当前文件名
Returns
string
当前文件名
getDatabase
▸ getDatabase(): McDbDatabase
获取数据库对象
Example
import { MxCpp } from "mxcad"
const mxcad = MxCpp.App.getCurrentMxCAD()
let layerTable = mxcad.getDatabase().getLayerTable();
Returns
数据库对象
getImp
▸ getImp(): any
获取对象实现
Returns
any
对象实现
getMxCpp
▸ getMxCpp(): any
返加MxCpp对象,它会在MxDraw模块中调用。
Returns
any
getMxDrawObject
▸ getMxDrawObject(): MxDrawObject
返回与MxCAD对象绑定的MxDraw对象。
Returns
MxDrawObject
getSysVarDouble
▸ getSysVarDouble(varName
): number
获取系统变量的浮点数值
Parameters
Name | Type | Description |
---|---|---|
varName | string | 变量名称 |
Returns
number
变量的浮点数值
getSysVarLong
▸ getSysVarLong(varName
): number
获取系统变量的整数值
Parameters
Name | Type | Description |
---|---|---|
varName | string | 变量名称 |
Returns
number
变量的整数值
getSysVarPoint
▸ getSysVarPoint(varName
): McGePoint3d
获取系统变量的点数值
Parameters
Name | Type | Description |
---|---|---|
varName | string | 变量名称 |
Returns
变量的点数值
getSysVarString
▸ getSysVarString(varName
): string
获取系统变量的字符串值
Parameters
Name | Type | Description |
---|---|---|
varName | string | 变量名称 |
Returns
string
变量的字符串值
getViewCADCoord
▸ getViewCADCoord(): Object
返回当前视区的显示范围,cad坐标。
Returns
Object
Name | Type |
---|---|
pt1 | McGePoint3d |
pt2 | McGePoint3d |
pt3 | McGePoint3d |
pt4 | McGePoint3d |
init
▸ init(imp
): void
初始对象
Parameters
Name | Type | Description |
---|---|---|
imp | any | 对象实现,默认该函数会被系统自动调用。 |
Returns
void
initMxObject
▸ initMxObject(mxObject
): void
初始化对象模型
Description
Parameters
Name | Type | Description |
---|---|---|
mxObject | any | 初始化mxdraw 创建的绘图控件 |
Returns
void
initRegist
▸ initRegist(sRegist
): void
初始化用户注册数据.
Parameters
Name | Type |
---|---|
sRegist | string |
Returns
void
insertBlock
▸ insertBlock(sFileUrl
, sBlkName
, isWorkThread?
, fetchAttributes?
): Promise
<McObjectId
>
插件图块文件
Example
import { MxCpp } from "mxcad"
const mxcad = MxCpp.getCurrentMxCAD()
const blkrecId = await mxcad.insertBlock("./blkrec.mxweb", "sBlkName");
Parameters
Name | Type | Default value | Description |
---|---|---|---|
sFileUrl | string | undefined | 网络文件路径 该文件为mxweb格式 |
sBlkName | string | undefined | 插入的图块的块名 |
isWorkThread | boolean | true | 是否使用工作线程打开文件,默认为 true |
fetchAttributes | number | 0 | 1:EMSCRIPTEN_FETCH_LOAD_TO_MEMORY,把图纸数据加载内存中,0:EMSCRIPTEN_FETCH_LOAD_TO_MEMORY | EMSCRIPTEN_FETCH_PERSIST_FILE | EMSCRIPTEN_FETCH_APPEND,把图纸数据加到IndexedDB。 |
Returns
isTryVersion
▸ isTryVersion(): boolean
当前程序是否是试用版本.
Returns
boolean
loadImage
▸ loadImage(imageUrl
, call
): void
加载一个外部图片到当前上下文,方便后面使用。
Example
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
Name | Type | Description |
---|---|---|
imageUrl | string | 图片路径 |
call | (image : any ) => void | 回调函数 |
Returns
void
newFile
▸ newFile(): boolean
清空当前图上内容,新建一个文件
Returns
boolean
objectIdToObject
▸ objectIdToObject(lIdIndex
): null
| McDbObject
将 lIdIndex 转换成 McDbObject 对象
Parameters
Name | Type | Description |
---|---|---|
lIdIndex | number | 对象 ID |
Returns
null
| McDbObject
与 ID 对应的 McDbObject 对象,如果对象不存在则返回 null
off
▸ off(name
, fun?
): void
关闭事件监听
Parameters
Name | Type | Description |
---|---|---|
name | string | 监听事件名 |
fun? | Function | 监听事件 |
Returns
void
on
▸ on(name
, fun
): void
监听对象选择事件
Example
import { MxCpp } from "mxcad"
MxCpp.getCurrentMxCAD().on("selectChange", (ids)=> {
let ent = id.getMcDbEntity()
if(!ent) return
console.log(ent.objectName)
})
Parameters
Name | Type |
---|---|
name | "selectChange" |
fun | (ids : McObjectId []) => void | (ids : McObjectId []) => void [] |
Returns
void
▸ on(name
, fun
): void
添加时间监听
Parameters
Name | Type | Description |
---|---|---|
name | "openFileComplete" | 监听事件名 |
fun | () => void | 监听函数 |
Returns
void
▸ on(name
, fun
): void
添加时间监听
Parameters
Name | Type | Description |
---|---|---|
name | "init" | 监听事件名 |
fun | () => void | 监听函数 |
Returns
void
▸ on(name
, fun
): void
添加时间监听
Parameters
Name | Type | Description |
---|---|---|
name | "init_mxdraw" | 监听事件名 |
fun | (mxdraw : MxDrawObject ) => void | 监听函数 |
Returns
void
▸ on(name
, fun
): void
添加时间监听
Parameters
Name | Type | Description |
---|---|---|
name | "init_before_mxdraw" | 监听事件名 |
fun | (mxdraw : MxDrawObject ) => void | 监听函数 |
Returns
void
▸ on(name
, fun
): void
添加时间监听
Parameters
Name | Type | Description |
---|---|---|
name | "init_mxcad" | 监听事件名 |
fun | (mxcad : McObject ) => void | 监听函数 |
Returns
void
▸ on(name
, fun
): void
添加时间监听
Parameters
Name | Type | Description |
---|---|---|
name | "databaseModify" | 监听事件名 |
fun | () => void | 监听函数 |
Returns
void
openWebFile
▸ openWebFile(sFileUrl
, retCall?
, isWorkThread?
, initialParameter?
, fetchAttributes?
, isFetchTzFile?
): boolean
打开网络文件
Parameters
Name | Type | Default value | Description |
---|---|---|---|
sFileUrl | string | undefined | 网络文件路径 |
retCall? | (iRet : number ) => void | undefined | 回调函数,可选参数,打开文件完成后的回调函数,参数为打开文件的结果,0表示成功,其他值表示失败 |
isWorkThread | boolean | true | 是否使用工作线程打开文件,默认为 true |
initialParameter? | object | undefined | - |
fetchAttributes | number | 0 | 1:EMSCRIPTEN_FETCH_LOAD_TO_MEMORY,把图纸数据加载内存中,0:EMSCRIPTEN_FETCH_LOAD_TO_MEMORY | EMSCRIPTEN_FETCH_PERSIST_FILE | EMSCRIPTEN_FETCH_APPEND,把图纸数据加到IndexedDB。 |
isFetchTzFile | boolean | true | - |
Returns
boolean
是否成功打开文件
pathCircle
▸ pathCircle(dCenX
, dCenY
, dR
, dPrecision?
, dWidth?
): boolean
根据圆对象创建一个路径
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.pathCircle(0, 0, 20);
Parameters
Name | Type | Default value |
---|---|---|
dCenX | number | undefined |
dCenY | number | undefined |
dR | number | undefined |
dPrecision | number | 0.0 |
dWidth | number | 0 |
Returns
boolean
pathLineTo
▸ pathLineTo(dX
, dY
): void
从当前位置画一条直线到指定位置
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.pathLineTo(100, 300);
Parameters
Name | Type | Description |
---|---|---|
dX | number | X 坐标 |
dY | number | Y 坐标 |
Returns
void
pathLineToEx
▸ pathLineToEx(dX
, dY
, dStartWidth
, dEndWidth
, dBulge
): void
从当前位置画一条直线到指定位置,同时指定起始宽度、终止宽度和凸度
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.pathLineToEx(1000, 500, 30, 0, 0);
Parameters
Name | Type | Description |
---|---|---|
dX | number | X 坐标 |
dY | number | Y 坐标 |
dStartWidth | number | 起始宽度 |
dEndWidth | number | 终止宽度 |
dBulge | number | 凸度 |
Returns
void
pathMakeClosed
▸ pathMakeClosed(): void
闭合路径
Returns
void
pathMakeExclude
▸ pathMakeExclude(isExclude
): void
把当前路径做上排除标记,主要用于填充的绘制,把这个路径组成的闭合区域在填充中挖去
Example
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
Name | Type | Description |
---|---|---|
isExclude | boolean | 是否排除 |
Returns
void
pathMoveTo
▸ pathMoveTo(dX
, dY
): void
将路径移动到指定位置
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.pathMoveTo(0, 300);
Parameters
Name | Type | Description |
---|---|---|
dX | number | X 坐标 |
dY | number | Y 坐标 |
Returns
void
pathMoveToEx
▸ pathMoveToEx(dX
, dY
, dStartWidth
, dEndWidth
, dBulge
): void
移动路径到指定位置,同时指定起始宽度、终止宽度和凸度
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.pathMoveToEx(1000, 300, 10, 10, 0);
Parameters
Name | Type | Description |
---|---|---|
dX | number | X 坐标 |
dY | number | Y 坐标 |
dStartWidth | number | 起始宽度 |
dEndWidth | number | 终止宽度 |
dBulge | number | - |
Returns
void
redo
▸ redo(): void
反回退,重做。
Returns
void
regen
▸ regen(delayTime?
): void
重绘图上所有对象,在调用ZoomAll,ZoomW后,因为是异步执行,可能需要延迟调用Regen才会启作用。
Example
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
Name | Type | Default value |
---|---|---|
delayTime | number | 0 |
Returns
void
saveFile
▸ saveFile(filename?
, call?
, isDownland?
, isShowSaveFileDialog?
, parameter?
): boolean
保存文件
Example
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
Name | Type | Default value | Description |
---|---|---|---|
filename? | string | undefined | 另存为的新文件名称 |
call? | (data : any ) => void | undefined | 回调函数,可选参数,文件保存完成后的回调函数,参数为文件数据 |
isDownland | boolean | true | 是否下载文件,默认为 true |
isShowSaveFileDialog | boolean | true | 是否显示保存文件对话框,默认为 true |
parameter? | object | undefined | - |
Returns
boolean
是否成功保存文件
saveFileToUrl
▸ saveFileToUrl(sSaveProgramUrl
, call
, filename?
, param?
): boolean
将文件保存并转换为网络路径下载
Example
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
Name | Type | Description |
---|---|---|
sSaveProgramUrl | string | 后端 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
Name | Type |
---|---|
browse | boolean |
Returns
void
setCurrentLayout
▸ setCurrentLayout(layoutName
): void
设置当前布局名
Parameters
Name | Type |
---|---|
layoutName | string |
Returns
void
setSysVarDouble
▸ setSysVarDouble(varName
, val
): boolean
设置系统变量的浮点数值
Parameters
Name | Type | Description |
---|---|---|
varName | string | 变量名称 |
val | number | 变量的浮点数值 |
Returns
boolean
是否成功设置变量值
setSysVarLong
▸ setSysVarLong(varName
, val
): boolean
设置系统变量的整数值
Parameters
Name | Type | Description |
---|---|---|
varName | string | 变量名称 |
val | number | 变量的整数值 |
Returns
boolean
是否成功设置变量值
setSysVarPoint
▸ setSysVarPoint(varName
, pt
): boolean
设置系统变量的点数值
Parameters
Name | Type | Description |
---|---|---|
varName | string | 变量名称 |
pt | McGePoint3d | - |
Returns
boolean
是否成功设置变量值
setSysVarPoint2d
▸ setSysVarPoint2d(varName
, pt
): boolean
设置系统变量的2维点数值
Parameters
Name | Type | Description |
---|---|---|
varName | string | 变量名称 |
pt | McGePoint3d | - |
Returns
boolean
是否成功设置变量值
setSysVarString
▸ setSysVarString(varName
, val
): any
设置系统变量的字符串值
Parameters
Name | Type | Description |
---|---|---|
varName | string | 变量名称 |
val | string | 变量的字符串值 |
Returns
any
是否成功设置变量值
setViewBackgroundColor
▸ setViewBackgroundColor(red
, green
, blue
): void
设置视区的背景色.
Example
import { McApp } from "mxcad"
const mxcad = McApp.getCurrentMxCAD()
mxcad.setViewBackgroundColor(255, 255, 255)
Parameters
Name | Type |
---|---|
red | number |
green | number |
blue | number |
Returns
void
undo
▸ undo(): void
回退到上一个命令或标记处
Returns
void
undoMark
▸ undoMark(): void
在当前设置一个回退标记.
Returns
void
updateDisplay
▸ updateDisplay(isImmediate?
, delayTime?
): void
更新显示
Parameters
Name | Type | Default value |
---|---|---|
isImmediate | boolean | false |
delayTime | number | 0 |
Returns
void
updateLayerDisplayStatus
▸ updateLayerDisplayStatus(): void
更新图层的显示
Returns
void
zoomAll
▸ zoomAll(): boolean
显示全部
Returns
boolean
zoomAngle
▸ zoomAngle(viewangle
): void
设置显示视区的角度,单位是PI.
Example
import { McApp } from "mxcad"
const mxcad = MxCpp.getCurrentMxCAD()
mxcad.zoomAngle(Math.PI / 2)
Parameters
Name | Type | Description |
---|---|---|
viewangle | number | 旋转角度 Math.PI |
Returns
void
void
zoomCenter
▸ zoomCenter(dCenX
, dCenY
): void
把当前显示范围移到指定的位置,dCenX,dCenY是DWG图纸坐标。
Example
import { McApp, McGePoint3d } from "mxcad"
const mxcad = MxCpp.getCurrentMxCAD()
mxcad.zoomCenter(0, 0)
Parameters
Name | Type |
---|---|
dCenX | number |
dCenY | number |
Returns
void
void
zoomScale
▸ zoomScale(scale
): void
缩放当前显示范围,它是相对于当前显示范围进行缩放
Example
import { MxCpp, McObject } from 'mxcad'
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawLine(350, 220, 600, 220);
mxcad.zoomScale(o.6);
Parameters
Name | Type | Description |
---|---|---|
scale | number | scale缩放比例 |
Returns
void
void
zoomW
▸ zoomW(minPt
, maxPt
): void
把当前显示范围移到指定的显示范围
Example
import { McApp, McGePoint3d } from "mxcad"
const mxcad = MxCpp.getCurrentMxCAD()
mxcad.zoomW(new McGePoint3d(0, 0), new McGePoint3d(30, 30))
Parameters
Name | Type | Description |
---|---|---|
minPt | McGePoint3d | 坐标1 McGePoint3d |
maxPt | McGePoint3d | 坐标2 McGePoint3d |
Returns
void
void