mxcad_2d API 文档 / 2d / McObject
Class: McObject
2d.McObject
McObject 类, 封装了与 MxCAD 对象相关的功能,并提供了一些方法来操作和管理这些功能
Table of contents
Constructors
Accessors
- database
- drawColor
- drawColorIndex
- drawDimStyle
- drawLayer
- drawLineTypeScale
- drawLineWeight
- drawLineWidth
- drawLinetype
- drawPatternDefinition
- drawTextStyle
- drawUseDefaultProperties
- mxdraw
Methods
- AddTureTypeTextStyle
- addCurrentSelect
- addDimStyle
- addImageDefine
- addLayer
- addLinetype
- addLinetypeEx
- addPatternDefinition
- addSystemVarNameForEvent
- addTextStyle
- callEvent
- clearDwgBackground
- clearMxCurrentSelect
- 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
- getBackgroundEntity
- getCurrentDatabaseDrawColor
- getCurrentFileName
- getDatabase
- getImp
- getMxCpp
- getMxDrawObject
- getSysVarDouble
- getSysVarLong
- getSysVarPoint
- getSysVarString
- getViewCADCoord
- init
- initMxObject
- initRegist
- insertBlock
- isTryVersion
- loadDwgBackground
- loadImage
- newFile
- objectIdToObject
- off
- on
- openWebFile
- pathCircle
- pathLineTo
- pathLineToEx
- pathMakeClosed
- pathMakeExclude
- pathMoveTo
- pathMoveToEx
- redo
- regen
- saveFile
- saveFileToUrl
- setAttribute
- setBrowse
- setCurrentLayout
- setSysVarDouble
- setSysVarLong
- setSysVarPoint
- setSysVarPoint2d
- setSysVarString
- setViewBackgroundColor
- showLineWeight
- undo
- undoMark
- updateDisplay
- updateLayerDisplayStatus
- zoomAll
- zoomAngle
- zoomCenter
- zoomScale
- zoomW
Constructors
constructor
• new McObject(imp?
)
构造函数
Example
import { McObject } from 'mxcad'
const mxcad = new McObject;
Parameters
Name | Type | Description |
---|---|---|
imp? | any | 对象实现 |
Accessors
database
• get
database(): McDbDatabase
返回数据库对象
Returns
drawColor
• get
drawColor(): McCmColor
获取绘制颜色
Returns
返回绘制颜色
• set
drawColor(val
): void
设置绘制颜色
Example
import { MxCpp, McObject } from 'mxcad';
const mxcad:McObject = MxCpp.App.getCurrentMxCAD();
mxcad.drawColor = new McCmColor(0, 0, 255);
Parameters
Name | Type | Description |
---|---|---|
val | McCmColor | 绘制颜色 |
Returns
void
drawColorIndex
• get
drawColorIndex(): number
设置绘制颜色索引
Returns
number
val 颜色索引类型
• set
drawColorIndex(val
): void
设置绘制颜色索引
Example
import { MxCpp, ColorIndexType, McObject } from "mxcad" ;
const mxcad:McObject = MxCpp.App.getCurrentMxCAD();
mxcad.drawColorIndex = ColorIndexType.kMagenta;
Parameters
Name | Type | Description |
---|---|---|
val | number | 颜色索引类型 |
Returns
void
drawDimStyle
• get
drawDimStyle(): string
获取当前绘制的标注样式
Returns
string
• set
drawDimStyle(val
): void
设置当前绘制的标注样式
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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, McObject } from 'mxcad'
const mxcad:McObject = 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
设置绘制线宽
Example
import { MxCpp, McDb, McObject } from "mxcad" ;
const mxcad: McObject = MxCpp.App.getCurrentMxCAD();
mxcad.drawLineWeight(McDb.LineWeight.kLnWtByLayer)
Parameters
Name | Type | Description |
---|---|---|
val | LineWeight | 绘制线宽 |
Returns
void
drawLineWidth
• get
drawLineWidth(): number
获取当前绘制的线宽
Example
import { MxCpp, McObject } from "mxcad"
const mxcad: McObject = MxCpp.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
设置绘制线型
Example
import { MxCpp, McObject } from "mxcad" ;
const mxcad: McObject = MxCpp.App.getCurrentMxCAD();
mxcad.addLinetype("MyLineType3", "30,-10");
mxcad.drawLinetype = "MyLineType3";
Parameters
Name | Type | Description |
---|---|---|
val | string | 绘制线型 |
Returns
void
drawPatternDefinition
• get
drawPatternDefinition(): string
获取当前绘制的线型定义
Example
import { MxCpp, McObject } from "mxcad"
const mxcad: McObject = MxCpp.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
设置绘制文字样式
Example
import { MxCpp, McObject } from "mxcad" ;
const mxcad: McObject = MxCpp.App.getCurrentMxCAD();
mxcad.addTextStyle("MyTextStyle", "italicc.shx", "gbcbig.shx", 0.7);
mxcad.drawTextStyle = "MyTextStyle";
Parameters
Name | Type | Description |
---|---|---|
val | string | 绘制文字样式 |
Returns
void
drawUseDefaultProperties
• get
drawUseDefaultProperties(): boolean
返回调用draw开头的绘图数,使用数据库的当前默认属性。
Returns
boolean
• set
drawUseDefaultProperties(val
): void
设置调用draw开头的绘图数,使用数据库的当前默认属性
Parameters
Name | Type | Description |
---|---|---|
val | boolean | 线宽 |
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
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
let mxcad:McObject = 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
添加标注样式
Description
pszDoubleData 双精度型数据
系统变量 | 值 | 功能说明 |
---|---|---|
dimaltf | 143 | 控制换算单位的乘数 |
dimasz | 41 | 控制尺寸线和引线箭头的大小。并控制基线的大小。 |
dimcen | 141 | 控制圆或圆弧圆心标记以及中心线的绘制。 |
dimdle | 46 | 当使用小斜线代替箭头进行标注时,设置尺寸线超出尺寸界线的距离。 |
dimdli | 43 | 控制基线标注中尺寸线的间距。 |
dimexe | 44 | 将命名标注样式及其设置输出到外部文件。 |
dimexo | 42 | 指定尺寸界线偏离原点的距离。 |
dimgap | 147 | 设置当打断尺寸线以符合标注文字时,标注文字周围的距离。 |
dimlfac | 144 | 为线性标注测量值设置比例因子。 |
dimrnd | 45 | 将所有标注距离舍入为指定值。 |
dimscale | 40 | 设置应用于标注变量(用于指定尺寸、距离或偏移量)的全局比例因子。 |
dimtfac | 146 | 与通过 DIMTXT 系统变量设置一样,指定分数和公差值的文字高度相对于标注文字高度的比例因子。 |
dimtm | 48 | 为标注文字设置最小(即最低)公差限制。 |
dimtp | 47 | 为标注文字设置最大(即最高)公差限制。 |
dimtsz | 142 | 指定线性标注、半径标注以及直径标注中绘制的代替箭头的小斜线的尺寸。 |
dimtvp | 145 | 控制标注文字在尺寸线上方或下方的垂直位置。 |
dimtxt | 140 | 指定标注文字的高度(除非当前文字样式具有固定的高度)。 |
dimaltrnd | 148 | 舍入换算标注单位。 |
Description
pszIntData 整型数据
系统变量 | 值 | 功能说明 |
---|---|---|
dimadec | 179 | 控制角度标注中显示的精度小数位数。 |
dimalt | 170 | 控制标注中换算单位的显示。 |
dimaltd | 171 | 控制换算单位中的小数位数。 |
dimalttd | 274 | 设置换算标注单位中的公差值的小数位数。 |
dimalttz | 286 | 控制对公差值的消零处理。 |
dimaltu | 273 | 为所有标注子样式(角度标注除外)的换算单位设定单位格式。 |
dimaltz | 285 | 控制对换算单位标注值的消零处理。 |
dimaunit | 275 | 为角度标注设定单位格式。 |
dimclrd | 176 | 为尺寸线、箭头和标注引线指定颜色。 |
dimclre | 177 | 为尺寸界线、圆心标记和中心线指定颜色。 |
dimclrt | 178 | 为标注文字指定颜色。 |
dimdec | 271 | 设置标注主单位中显示的小数位数。 |
dimfit | 287 | 尺寸界线内的空间不足以同时放下标注文字和箭头时,此系统变量将确定这两者的排列方式。 |
dimjust | 280 | 控制标注文字的水平位置。 |
dimlim | 72 | 生成标注界限作为默认文字。 |
dimsah | 173 | 控制尺寸线箭头块的显示。 |
dimsd1 | 281 | 控制是否隐去第一条尺寸线和箭头。 |
dimsd2 | 282 | 控制是否隐去第二条尺寸线和箭头。 |
dimse1 | 75 | 控制是否隐去第一条尺寸界线。 |
dimse2 | 76 | 控制是否隐去第二条尺寸界线。 |
dimsoxd | 175 | 如果尺寸界线内没有足够的空间,则隐去箭头。 |
dimtad | 77 | 控制文字相对于尺寸线的垂直位置。 |
dimtdec | 272 | 设置标注主单位的公差值中显示的小数位数。 |
dimtih | 73 | 控制所有标注类型(坐标标注除外)的标注文字在尺寸界线内的位置。 |
dimtix | 174 | 在尺寸界线之间绘制文字。 |
dimtofl | 172 | 控制是否在尺寸界线之间绘制尺寸线(即使标注文字被放置在尺寸界线之外)。 |
dimtoh | 74 | 控制标注文字在尺寸界线外的位置。 |
dimtol | 71 | 将公差附在标注文字中。 |
dimtolj | 283 | 设置公差值相对于表面标注文字的垂直对正方式。 |
dimzin | 78 | 控制针对主单位值的消零处理。 |
dimupt | 288 | 控制用户定位文字的选项。 |
dimtzin | 284 | 控制对公差值的消零处理。 |
dimfrac | 276 | 设置分数格式。 |
dimlunit | 277 | 为所有标注类型(角度标注除外)设置单位。 |
dimatfit | 289 | 尺寸界线内的空间不足以同时放下标注文字和箭头时,此系统变量将确定这两者的排列方式。 |
dimtmove | 279 | 设置标注文字的移动规则。 |
dimazin | 79 | 针对角度标注进行消零处理。 |
Description
pszStringData 字符串型数据
系统变量 | 值 | 功能说明 |
---|---|---|
dimapost | 4 | 指定用于所有标注类型(角度标注除外)的换算标注测量值的文字前缀或后缀(或两者都指定)。 |
dimpost | 3 | 为标注测量值指定文字前缀或后缀(或两者)。 |
Description
pszIdData ID 型数据
系统变量 | 值 | 功能说明 |
---|---|---|
dimblk | 342 | 为尺寸线的第二个端点设置箭头 。 |
dimblk1 | 343 | 为尺寸线的第一个端点设置箭头。 |
dimblk2 | 344 | 为尺寸线的第二个端点设置箭头。 |
dimldrblk | 341 | 指定引线箭头的类型。 |
dimtxsty | 340 | 指定标注的文字样式。 |
Example
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
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, 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
Name | Type | Default value | Description |
---|---|---|---|
imageUrl | string | undefined | 图片路径 |
sName | string | "" | 图片定义名称 |
isConvertBase64 | boolean | false | - |
Returns
addLayer
▸ addLayer(string
): McObjectId
添加图层
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.addLayer("图层名称")
Parameters
Name | Type |
---|---|
string | string |
Returns
addLinetype
▸ addLinetype(sName
, sLineDefine
): McObjectId
添加线型
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { 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
Name | Type | Default value |
---|---|---|
sName | string | undefined |
sLineDefine | string | undefined |
sTextStyle | string | "" |
Returns
addPatternDefinition
▸ addPatternDefinition(sName
, sDefinitionData
): void
增加一个图案定义
Example
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
Name | Type | Description |
---|---|---|
sName | string | 图案名称 |
sDefinitionData | string | 图案默认定义数据 |
Returns
void
addSystemVarNameForEvent
▸ addSystemVarNameForEvent(aryVarName
): void
添加一个系统变量名,用于变量对像修改后,事件通知. 变量对像修改事件名:sysVarChanged
Parameters
Name | Type |
---|---|
aryVarName | string [] |
Returns
void
addTextStyle
▸ addTextStyle(sName
, sFileName
, sBigFontFileName
, dXScale?
): McObjectId
添加文字样式
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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
触发一个系统事件的调用
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD();
mxcad.callEvent("init");
Parameters
Name | Type | Description |
---|---|---|
sEventName | string | - |
param? | any | 事件参数 |
Returns
boolean
clearDwgBackground
▸ clearDwgBackground(): void
清除背景绘制对象
Returns
void
clearMxCurrentSelect
▸ clearMxCurrentSelect(): void
清除当前所有选择
#### 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
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 { MxCpp, McObject } from "mxcad"
const mxcad: McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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
块对象id
drawCircle
▸ drawCircle(dCenterX
, dCenterY
, dRadius
): McObjectId
绘制圆
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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
直径标注对象id
drawDimOrdinate
▸ drawDimOrdinate(dDefinitionPointX
, dDefinitionPointY
, dDeaderEndPointX
, dDeaderEndPointY
, isUseXAxis
): McObjectId
绘制标注线性尺寸
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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
线性尺寸对象id
drawDimRadial
▸ drawDimRadial(dCenterX
, dCenterY
, dChordPointX
, dChordPointY
, dLeaderLength
): McObjectId
绘制标注径向尺寸
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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
径向尺寸对象id
drawDimRotated
▸ drawDimRotated(dExtLine1PointX
, dExtLine1PointY
, dExtLine2PointX
, dExtLine2PointY
, dDimLineLocationX
, dDimLineLocationY
, dRotationAngle
): McObjectId
绘制旋转标注
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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
旋转标注对象id
drawEllipse
▸ drawEllipse(dCenterX
, dCenterY
, dMajorAxisX
, dMajorAxisY
, dRadiusRatio
): McObjectId
绘制椭圆
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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
, isUseDatabaseCurrentProperties?
): McObjectId
绘制实体
Example
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
Name | Type | Default value | Description |
---|---|---|---|
entity | McDbEntity | undefined | 实体对象 |
isUseDatabaseCurrentProperties | boolean | false | - |
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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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
多行文本对象id
drawPathToHatch
▸ drawPathToHatch(dPatternScale?
): McObjectId
将路径转换为填充图案
Example
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
Name | Type | Default value | Description |
---|---|---|---|
dPatternScale | number | 1.0 | 图案缩放比例 |
Returns
转换结果
drawPathToPolyline
▸ drawPathToPolyline(): McObjectId
将路径转换为折线
Returns
转换结果
drawPathToSpline
▸ drawPathToSpline(): McObjectId
将路径转换为样条曲线
Returns
转换结果
drawPoint
▸ drawPoint(dX
, dY
): McObjectId
绘制点
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawPoint(0,0);
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
实体对象id
drawText
▸ drawText(dPosX
, dPosY
, pszText
, dHeight
, dRotation
, horizontalMode
, verticalMode
): McObjectId
绘制单行文本
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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
getBackgroundEntity
▸ getBackgroundEntity(): McDbBackgroundEntity
返回当前背景对象
Returns
getCurrentDatabaseDrawColor
▸ getCurrentDatabaseDrawColor(): Color
返回当前数据库中设置的绘制颜色,它会自动依据背景色,把黑白色转换。
Returns
Color
getCurrentFileName
▸ getCurrentFileName(): string
获取当前文件名
Returns
string
当前文件名
getDatabase
▸ getDatabase(): McDbDatabase
获取数据库对象
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = 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对象。
Example
import { McObject } from 'mxcad'
const mxcad = new McObject()
const mxdraw = mxcad.getMxDrawObject()
Returns
MxDrawObject
MxDraw对象
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 | Description |
---|---|---|
sRegist | string | 注册数据 |
Returns
void
insertBlock
▸ insertBlock(sFileUrl
, sBlkName
, isWorkThread?
, fetchAttributes?
, isUpdataInsertBlock?
, isUpdataSameNameBlock?
): Promise
<McObjectId
>
插件图块文件
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = 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。 |
isUpdataInsertBlock | boolean | false | 是否更新已经存在的块,默认不会更新 |
isUpdataSameNameBlock | boolean | false | 是插入块的过程中,如果发现原数据库已经相同名称的块,是否也一同更新,默认不会更新 |
Returns
isTryVersion
▸ isTryVersion(): boolean
当前程序是否是试用版本.
Returns
boolean
loadDwgBackground
▸ loadDwgBackground(sFileUrl
, call
, color?
, isShow?
): void
加载另一个dwg文件当前背景对象绘制.
Parameters
Name | Type | Default value |
---|---|---|
sFileUrl | string | undefined |
call | (ret : boolean ) => void | undefined |
color | number | 0 |
isShow | boolean | true |
Returns
void
loadImage
▸ loadImage(imageUrl
, call
): void
加载一个外部图片到当前上下文,方便后面使用。
Example
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
Name | Type | Description |
---|---|---|
imageUrl | string | 图片路径 |
call | (image : any ) => void | 回调函数 |
Returns
void
newFile
▸ newFile(): boolean
清空当前图上内容,新建一个文件
Example
import { MxCpp, McObject } from "mxcad" ;
let mxcad:McObject = MxCpp.getCurrentMxCAD();
mxcad.newFile();
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
关闭事件监听
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD();
mxcad.off("selectChange");
Parameters
Name | Type | Description |
---|---|---|
name | string | 监听事件名 |
fun? | Function | 监听事件 |
Returns
void
on
▸ on(name
, fun
): void
监听对象选择事件
Example
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
Name | Type |
---|---|
name | "selectChange" |
fun | (ids : McObjectId []) => void | (ids : McObjectId []) => void [] |
Returns
void
▸ on(name
, fun
): void
监听文件完全打开
Parameters
Name | Type |
---|---|
name | "openFileComplete" |
fun | () => void |
Returns
void
▸ on(name
, fun
): void
监听项目初始化
Parameters
Name | Type |
---|---|
name | "init" |
fun | () => void |
Returns
void
▸ on(name
, fun
): void
监听 mxdraw 初始化
Parameters
Name | Type |
---|---|
name | "init_mxdraw" |
fun | (mxdraw : MxDrawObject ) => void |
Returns
void
▸ on(name
, fun
): void
监听 mxdraw 初始化前的事件
Parameters
Name | Type |
---|---|
name | "init_before_mxdraw" |
fun | (mxdraw : MxDrawObject ) => void |
Returns
void
▸ on(name
, fun
): void
监听 mxcad 初始化
Parameters
Name | Type |
---|---|
name | "init_mxcad" |
fun | (mxcad : McObject ) => void |
Returns
void
▸ on(name
, fun
): void
监听数据库修改事件
Parameters
Name | Type |
---|---|
name | "databaseModify" |
fun | () => void |
Returns
void
▸ on(name
, fun
): void
系统变量被修改
Parameters
Name | Type |
---|---|
name | "sysVarChanged" |
fun | (name : string ) => void |
Returns
void
▸ on(name
, fun
): void
图形数据库初始化
Parameters
Name | Type |
---|---|
name | "databaseInitialization" |
fun | () => void |
Returns
void
▸ on(name
, fun
): void
图层数据发生了变化
Parameters
Name | Type |
---|---|
name | "layerChanged" |
fun | () => void |
Returns
void
▸ on(name
, fun
): void
线型数据发生了变化
Parameters
Name | Type |
---|---|
name | "lineTypeChanged" |
fun | () => void |
Returns
void
openWebFile
▸ openWebFile(sFileUrl
, retCall?
, isWorkThread?
, initialParameter?
, fetchAttributes?
, isFetchTzFile?
): boolean
打开网络文件
Example
import { MxCpp } from "mxcad";
const mxcad = MxCpp.getCurrentMxCAD();
mxcad.openWebFile("http://localhost:1337/mxcad/file/a9cbed3d3a351b79f24484e87bd78338.DWG.mxweb");
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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { 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
Name | Type | Description |
---|---|---|
isExclude | boolean | 是否排除 |
Returns
void
pathMoveTo
▸ pathMoveTo(dX
, dY
): void
将路径移动到指定位置
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.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, 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
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, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
MxCpp.getCurrentMxCAD().saveFileToUrl("http://localhost:3337/mxcad/savefiledwg", (iResult, sserverResult) => {
let ret = JSON.parse(sserverResult);
if (ret.ret == "ok") {
console.log(ret.file)
}
})
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
是否成功保存文件
setAttribute
▸ setAttribute(val
): boolean
设置对象的一些属性设置
Example
- ts
* 启用undo * mxcad.setAttribute({EnableUndo:true}) * ```
Parameters
Name | Type | Description |
---|---|---|
val | object | 属性设置内容. 1. DisplayPrecision 显示精度设置,默认为0,可以取0 ~1000,1000为最高精度了 2. EnableUndo 启用undo功能,默认是没有启动的 * |
Returns
boolean
setBrowse
▸ setBrowse(browse
): void
设置浏览模式
Parameters
Name | Type |
---|---|
browse | boolean |
Returns
void
setCurrentLayout
▸ setCurrentLayout(layoutName
): void
设置当前布局名
Parameters
Name | Type | Description |
---|---|---|
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 { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.setViewBackgroundColor(255, 255, 255)
Parameters
Name | Type |
---|---|
red | number |
green | number |
blue | number |
Returns
void
showLineWeight
▸ showLineWeight(isShow
): boolean
显示线重
Parameters
Name | Type |
---|---|
isShow | boolean |
Returns
boolean
undo
▸ undo(): void
回退到上一个命令或标记处
Returns
void
undoMark
▸ undoMark(): void
在当前设置一个回退标记.
Returns
void
updateDisplay
▸ updateDisplay(isImmediate?
, delayTime?
): void
更新显示
Parameters
Name | Type | Default value | Description |
---|---|---|---|
isImmediate | boolean | false | 是否立即更新 |
delayTime | number | 0 | 延迟更新时间 |
Returns
void
updateLayerDisplayStatus
▸ updateLayerDisplayStatus(): void
更新图层的显示
Returns
void
zoomAll
▸ zoomAll(autoRegen?
): boolean
显示全部
Parameters
Name | Type | Default value |
---|---|---|
autoRegen | boolean | false |
Returns
boolean
zoomAngle
▸ zoomAngle(viewangle
): void
设置显示视区的角度,单位是PI.
Example
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = 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 { MxCpp, McGePoint3d, McObject } from "mxcad"
const mxcad:McObject = 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 { MxApp, McGePoint3d, McObject } from "mxcad"
const mxcad:McObject = 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