Skip to content

mxcad_2d API 文档 / 2d / McObject

Class: McObject ​

2d.McObject

McObject 是 MxCAD 的主控对象,负责承接 CAD 应用实例的核心能力。

Description

这个类不是普通的实体对象,而是整个 MxCAD 运行时的“控制器/入口”。 通过它可以完成:

  • 获取当前 CAD 实例并操作图形数据库;
  • 注册和处理各种事件(如选择变化、文件打开完成、数据库修改);
  • 调用绘图、重绘、坐标转换、临时显示等能力;
  • 设置全局显示和运行参数。

使用方式:

  1. 先通过 MxCpp.getCurrentMxCAD() 或 MxCpp.mxcad 获取当前CAD实例;
  2. 再调用其方法进行绘图、交互或状态监听;
  3. 若需要创建新的独立实例,则先 new McObject(),再调用 create(config) 初始化。

Example

ts
import { MxCpp } from "mxcad";

const mxcad = MxCpp.getCurrentMxCAD();

// 读取当前打开文件名
console.log(mxcad.currentFileName);

// 注册选择变化事件
mxcad.on("selectChange", (ids) => {
  console.log("选中对象数:", ids.length);
});

Remarks

适用场景包括:

  • 二次开发插件:监听对象选择、文件打开、数据库变化;
  • 自定义绘制:临时高亮、动态预览、辅助标注;
  • 图形操作:添加/修改实体、重绘视图、控制显示参数;
  • 交互开发:与 MxDraw、MxCAD 事件体系对接。

Table of contents ​

Constructors ​

Accessors ​

Methods ​

Constructors ​

constructor ​

• new McObject(imp?)

创建 McObject 实例。

该构造函数通常只在你需要手动创建一个独立实例时使用。 如果只是要操作当前正在运行的 CAD 窗口,优先使用 MxCpp.getCurrentMxCAD() 或 MxCpp.mxcad。

Parameters ​

NameTypeDescription
imp?any底层实现对象;通常由系统自动注入,开发者一般不需要手动传入。

Accessors ​

database ​

• get database(): McDbDatabase

返回数据库对象

Returns ​

McDbDatabase


drawColor ​

• get drawColor(): McCmColor

获取绘制颜色

Returns ​

McCmColor

返回绘制颜色

• set drawColor(val): void

设置绘制颜色

Parameters ​

NameTypeDescription
valMcCmColor绘制颜色

Returns ​

void


drawColorIndex ​

• get drawColorIndex(): number

设置绘制颜色索引

Returns ​

number

val 颜色索引类型

• set drawColorIndex(val): void

设置绘制颜色索引

Parameters ​

NameTypeDescription
valnumber颜色索引类型

Returns ​

void

Example

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

drawDimStyle ​

• get drawDimStyle(): string

获取当前绘制的标注样式

Returns ​

string

• set drawDimStyle(val): void

设置当前绘制的标注样式

Parameters ​

NameTypeDescription
valstring样式名称

Returns ​

void


drawLayer ​

• get drawLayer(): string

获取绘制图层

Returns ​

string

返回绘制图层

• set drawLayer(val): void

设置绘制图层

Parameters ​

NameTypeDescription
valstring绘制图层

Returns ​

void

Example

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

drawLineTypeScale ​

• get drawLineTypeScale(): number

获取绘制线型比例

Returns ​

number

返回绘制线型比例

• set drawLineTypeScale(val): void

设置绘制线型比例

Parameters ​

NameTypeDescription
valnumber绘制线型比例

Returns ​

void


drawLineWeight ​

• get drawLineWeight(): LineWeight

获取绘制线宽

Returns ​

LineWeight

返回绘制线宽

• set drawLineWeight(val): void

设置绘制线宽

Parameters ​

NameTypeDescription
valLineWeight绘制线宽

Returns ​

void

Example

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

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

drawLineWidth ​

• get drawLineWidth(): number

获取当前绘制的线宽

Returns ​

number

• set drawLineWidth(val): void

设置当前绘制的线宽

Parameters ​

NameTypeDescription
valnumber线宽

Returns ​

void


drawLinetype ​

• get drawLinetype(): string

获取绘制线型

Returns ​

string

返回绘制线型

• set drawLinetype(val): void

设置绘制线型

Parameters ​

NameTypeDescription
valstring绘制线型名

Returns ​

void

Example

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

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

drawPatternDefinition ​

• get drawPatternDefinition(): string

获取当前绘制的线型定义

Returns ​

string

Example

ts
import { MxCpp, McObject } from "mxcad"
 const mxcad: McObject = MxCpp.getCurrentMxCAD()
   //绘制另一个有图案的填充
   //45, 0,0, 0,.25
   //45, .176776695,0, 0,.25, .125,-.0625
   mxcad.addPatternDefinition("MyHatchPattern2", "((45, 0,0, 0,0.25) (45, 0.176776695,0, 0,0.25, 0.125,-0.0625))");
   mxcad.drawPatternDefinition = "MyHatchPattern2"
   //定义一个路径的开始点
   mxcad.pathMoveToEx(800, 3300, 0, 0, 0.3);
   //路径的一下个点
   mxcad.pathLineTo(900, 3300);
   //路径的一下个点
   mxcad.pathLineTo(900, 3400);
   //路径的一下个点
   mxcad.pathLineTo(800, 3300);
   //把路径变成一个填充,80,是填充图案的缩放比例.
   mxcad.drawPathToHatch(80);

• set drawPatternDefinition(val): void

设置当前绘制的线型定义

Parameters ​

NameTypeDescription
valstring线型定义

Returns ​

void


drawTextStyle ​

• get drawTextStyle(): string

获取绘制文字样式

Returns ​

string

返回绘制文字样式名

• set drawTextStyle(val): void

设置绘制文字样式

Parameters ​

NameTypeDescription
valstring绘制文字样式名

Returns ​

void

Example

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

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

drawUseDefaultProperties ​

• get drawUseDefaultProperties(): boolean

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

Returns ​

boolean

• set drawUseDefaultProperties(val): void

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

Parameters ​

NameTypeDescription
valboolean线宽

Returns ​

void


mxdraw ​

• get mxdraw(): MxDrawObject

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

Returns ​

MxDrawObject

MxDraw对象

Methods ​

AddTureTypeTextStyle ​

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

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

Parameters ​

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

Returns ​

McObjectId

Example

ts
// 在MxCAD中使用TrueType字体的文字样式
import { MxCpp } from "mxcad"

   function Mx_Test_TrueText() {
       let mat: McGeMatrix3d = new McGeMatrix3d();
       let mxcad = MxCpp.getCurrentMxCAD();
       //清空当前显示内容
       mxcad.newFile();
       MxCpp.App.loadFonts([], [], ["syadobe", "simsun", "sysimsun"], () => {
           mxcad.AddTureTypeTextStyle("ht_style", "syadobe");
           mxcad.AddTureTypeTextStyle("st_style", "simsun");
           mxcad.drawTextStyle = "ht_style";

           mxcad.drawColor = new McCmColor(200, 255, 50);
           let idText = mxcad.drawText(0, 3500, "绘图控件TrueType文字测试", 100, 0, 0, 1);

           let ent = idText.getMcDbEntity();
           if (ent) ent.textStyle = "st_style";

           let txt: McDbText = ent as McDbText;
           txt.adjustAlignment();
           mxcad.zoomAll();
           mxcad.regen();
           mxcad.updateDisplay();
       });
   }

GetDocumentFileName ​

▸ GetDocumentFileName(): string

得到当前openWebFile打开的文件,的文件名,如果打开是一个流数据,该变量会取服务器返回请求头的filename的值。

Returns ​

string


addCurrentSelect ​

▸ addCurrentSelect(id, isDisplayGrid?, fireSelectEvent?): void

把对象添加当前选择中

Parameters ​

NameTypeDefault valueDescription
idMcObjectId | McObjectId[]undefined对象id或者对象id数组
isDisplayGridbooleantrue是否显示夹点,默认true
fireSelectEventbooleantrue是否触发选择事件,默认true

Returns ​

void

void

Example

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

addDimStyle ​

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

添加标注样式

Parameters ​

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

Returns ​

McObjectId

Description

pszDoubleData 双精度型数据

系统变量值功能说明
dimaltf143控制换算单位的乘数
dimasz41控制尺寸线和引线箭头的大小。并控制基线的大小。
dimcen141控制圆或圆弧圆心标记以及中心线的绘制。
dimdle46当使用小斜线代替箭头进行标注时,设置尺寸线超出尺寸界线的距离。
dimdli43控制基线标注中尺寸线的间距。
dimexe44将命名标注样式及其设置输出到外部文件。
dimexo42指定尺寸界线偏离原点的距离。
dimgap147设置当打断尺寸线以符合标注文字时,标注文字周围的距离。
dimlfac144为线性标注测量值设置比例因子。
dimrnd45将所有标注距离舍入为指定值。
dimscale40设置应用于标注变量(用于指定尺寸、距离或偏移量)的全局比例因子。
dimtfac146与通过 DIMTXT 系统变量设置一样,指定分数和公差值的文字高度相对于标注文字高度的比例因子。
dimtm48为标注文字设置最小(即最低)公差限制。
dimtp47为标注文字设置最大(即最高)公差限制。
dimtsz142DIMTSZ = 0使用标准的实心箭头,DIMTSZ > 0 标注的箭头被替换为倾斜线(建筑标记),而 DIMTSZ 的数值就是这条倾斜线的长度
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();
   //清空当前显示内容
   mxcad.newFile();
   // 创建一个新的文字样式
   let textId = mxcad.addTextStyle("我的标注字体", "txt.shx", "gbcbig.shx", 1);
   // 创建一个新的标注样式
   mxcad.addDimStyle("MyDimStyle", "41,0.18,141,0.09,40,200", "77,1,271,3", '3,"%%c<>"', `340,${textId.id}`);
   mxcad.drawDimStyle = "MyDimStyle"

   mxcad.drawDimAligned(0, 4000, 300, 4500, 150, 4600);
   //把所有的实体都放到当前显示视区
   mxcad.zoomAll();
   //更新视区显示
   mxcad.updateDisplay();

addImageDefine ​

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

将图片定义添加到 CAD 数据库中,供后续插入图片对象时复用。

该方法通常和 loadImage / drawImage 配合使用,先把图片资源加载到内存, 再把图片定义注册到数据库中,最后通过 drawImage 将图片真实插入到图纸中。

Parameters ​

NameTypeDefault valueDescription
imageUrlstringundefined图片地址。
sNamestring""图片定义名称。
isConvertBase64booleanfalse是否将图片转换为 Base64 数据。
sourceFileNamestring""图片源文件名。
sBase64Datastring""Base64 数据内容。

Returns ​

McObjectId

Example

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

const mxcad: McObject = MxCpp.getCurrentMxCAD();
const 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;
  }
  mxcad.addImageDefine(imagUrl, "winter-7593872_960_720.jpg", true);
  mxcad.updateDisplay();
});

addLayer ​

▸ addLayer(string): McObjectId

添加图层

Parameters ​

NameType
stringstring

Returns ​

McObjectId

Example

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

addLinetype ​

▸ addLinetype(sName, sLineDefine): McObjectId

添加线型

Parameters ​

NameType
sNamestring
sLineDefinestring

Returns ​

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
 const mxcad:McObject = MxCpp.getCurrentMxCAD()
   //定义虚线数据据,"MyLineType"是线型名,"6,-8"是虚线的一个单位定义,6是实线长,-8是空格长。
   mxcad.addLinetype("MyLineType", "6,-8");
   //设计当前线型为"MyLineType"
   mxcad.drawLinetype = "MyLineType";
   // 绘制一个虚线
   mxcad.drawLine(0, 30, 100, 30);
   // 绘制一个斜虚线
   mxcad.drawLine(200, 30, 300, 130);

addLinetypeEx ​

▸ addLinetypeEx(sName, sLineDefine, sTextStyle?): McObjectId

添加线型

Parameters ​

NameTypeDefault value
sNamestringundefined
sLineDefinestringundefined
sTextStylestring""

Returns ​

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
 const mxcad:McObject = MxCpp.getCurrentMxCAD()
   //增加一个带有字体样式的线型
   mxcad.addTextStyle("MyLineTypeTextStyle", "txt.shx", "hztxt.shx", 1);
   mxcad.addLinetypeEx("MyLineType3", "(12.7,(\"T=MxDraw\",\"S=2.54\",\"L=-5.08\",\"R=0.0\",\"X=-2.54\",\"Y=-1.27\"),-10.08)", "MyLineTypeTextStyle");
   mxcad.drawLinetype = "MyLineType3";
   mxcad.drawLineWidth = 0;
   //绘制一个带宽度的红色点划线。
   mxcad.drawLine(350, 120, 600, 120);

addPatternDefinition ​

▸ addPatternDefinition(sName, sDefinitionData): void

增加一个图案定义

Parameters ​

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

Returns ​

void

Example

ts
   import { MxCpp, McObject } from "mxcad"
   const mxcad:McObject = MxCpp.getCurrentMxCAD()
   //angle, x-origin,y-origin, delta-x,delta-y,dash-1,dash-2, …
   //45 = angle 是图案线角度.
   //0 = x-origin 是第一个填充线经过的点位置X坐标
   //0 = y-origin 是第一个填充线经过的点位置Y坐标
   //0 = delta-x   是下一个填充线相对前一个线的X方向偏移
   //0.125 = delta-y   是下一个填充线相对前一个线的Y方向偏移
   mxcad.addPatternDefinition("MyHatchPattern1", "((45, 0,0, 0,0.125))");
   mxcad.drawPatternDefinition = "MyHatchPattern1";
   //定义一个路径的开始点
   mxcad.pathMoveToEx(600, 3300, 0, 0, 0.3);
   //路径的一下个点
   mxcad.pathLineTo(700, 3300);
   //路径的一下个点
   mxcad.pathLineTo(700, 3400);
   //路径的一下个点
   mxcad.pathLineTo(600, 3300);
   //把路径变成一个填充,80,是填充图案的缩放比例.
   mxcad.drawPathToHatch(80);

addSystemVarNameForEvent ​

▸ addSystemVarNameForEvent(aryVarName): void

注册需要监听的系统变量名。

当这些系统变量被修改时,会触发 sysVarChanged 事件,适用于联动控制、 状态同步或自定义交互逻辑。

Parameters ​

NameTypeDescription
aryVarNamestring[]系统变量名称数组。

Returns ​

void

Example

ts
const mxcad = MxCpp.getCurrentMxCAD();
mxcad.addSystemVarNameForEvent(["GRIDMODE", "AUTOSNAP"]);

addTextStyle ​

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

添加文字样式

Parameters ​

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

Returns ​

McObjectId

Example

ts
import { MxCpp, McObject } from "mxcad"
 const mxcad:McObject = MxCpp.getCurrentMxCAD() 
   //按指定样式绘制文字
   mxcad.addTextStyle("MyTextStyle", "italicc.shx", "gbcbig.shx", 0.7);
   mxcad.drawTextStyle = "MyTextStyle";
   mxcad.drawColor = new McCmColor(255, 0, 0);
   mxcad.drawText(0, 3000, "绘图控件文字测试", 100, 0, 0, 1);

cadCoord2View ​

▸ cadCoord2View(pt): McGePoint3d

cad坐标到视区坐标

Parameters ​

NameTypeDescription
ptMcGePoint3d点对象

Returns ​

McGePoint3d

转换后的点坐标


cadCoordLong2View ​

▸ cadCoordLong2View(l): number

CAD长度到视区长度

Parameters ​

NameTypeDescription
lnumberCAD长度

Returns ​

number

视区长度


cadToSmallcoord ​

▸ cadToSmallcoord(pt): McGePoint3d

cad坐标转绘图修正的小坐标系

Parameters ​

NameTypeDescription
ptMcGePoint3d点的对象

Returns ​

McGePoint3d


callEvent ​

▸ callEvent(sEventName, param?): boolean

触发一个系统事件的调用

Parameters ​

NameTypeDescription
sEventNamestring-
param?any事件参数

Returns ​

boolean

Example

ts
import { MxCpp, McObject } from "mxcad"

// 手动触发init事件
const mxcad:McObject = MxCpp.getCurrentMxCAD();
mxcad.callEvent("init");

clearDwgBackground ​

▸ clearDwgBackground(): void

清空当前背景绘制对象。

适用于关闭背景显示、切换参考图或重新加载背景资源时使用。

Returns ​

void


clearGripDisplay ​

▸ clearGripDisplay(): void

清除显示的夹点

Returns ​

void


clearMxCurrentSelect ​

▸ clearMxCurrentSelect(): void

清除当前所有选择

Returns ​

void


create ​

▸ create(config): void

创建并初始化一个 MxCAD 实例。

这个方法会根据传入的配置启动 CAD 运行时并完成初始化。 适用于你需要在页面中嵌入一个新的 CAD 容器、加载自定义文件、或者创建独立实例时使用。 如果只是操作当前页面已存在的 CAD 窗口,通常不需要手动调用此方法。

Parameters ​

NameTypeDescription
configMxCadConfigcreateMxCad 的初始化配置,通常包含 canvas、locateFile、fileUrl、fontspath 等信息。

Returns ​

void

Example

ts
import { McObject } from "mxcad";

const mxcad = new McObject();
mxcad.create({
  canvas: "#myCanvas",
  locateFile: (fileName) => new URL(`/node_modules/mxcad/dist/wasm/2d/${fileName}`, import.meta.url).href,
  fileUrl: new URL("../src/assets/test.mxweb", import.meta.url).href,
  fontspath: new URL("node_modules/mxcad/dist/fonts", import.meta.url).href,
});

createLayout ​

▸ createLayout(sName): McObjectId

创建布局

Parameters ​

NameType
sNamestring

Returns ​

McObjectId


deleteLayout ​

▸ deleteLayout(sName): boolean

删除布局

Parameters ​

NameType
sNamestring

Returns ​

boolean


drawArc ​

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

绘制圆弧

Parameters ​

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

Returns ​

McObjectId

成功返回 1,失败返回 0


drawArc2 ​

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

绘制圆弧

Parameters ​

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

Returns ​

McObjectId


drawArc3 ​

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

绘制圆弧

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

绘制圆

Parameters ​

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

Returns ​

McObjectId


drawDimAligned ​

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

绘制对齐标注

Parameters ​

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

Returns ​

McObjectId

成功返回 1,失败返回 0


drawDimAngular ​

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

绘制角度标注

Parameters ​

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

Returns ​

McObjectId

成功返回 1,失败返回 0


drawDimDiametric ​

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

绘制直径标注

Parameters ​

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

Returns ​

McObjectId

直径标注对象id


drawDimOrdinate ​

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

绘制标注线性尺寸

Parameters ​

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

Returns ​

McObjectId

线性尺寸对象id


drawDimRadial ​

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

绘制标注径向尺寸

Parameters ​

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

Returns ​

McObjectId

径向尺寸对象id


drawDimRotated ​

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

绘制旋转标注

Parameters ​

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

Returns ​

McObjectId

旋转标注对象id


drawEllipse ​

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

绘制椭圆

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

绘制椭圆弧

Parameters ​

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

Returns ​

McObjectId


drawEntity ​

▸ drawEntity(entity, isUseDatabaseCurrentProperties?): McObjectId

绘制实体

Parameters ​

NameTypeDefault valueDescription
entityMcDbEntityundefined实体对象
isUseDatabaseCurrentPropertiesbooleanfalse-

Returns ​

McObjectId

绘制结果

Example

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

drawHatch ​

▸ drawHatch(hatch, dPatternScale?): McObjectId

绘制填充对象

Parameters ​

NameTypeDefault value
hatchMcDbHatchundefined
dPatternScalenumber1.0

Returns ​

McObjectId

绘制对象id

Example

ts
import { MxCADUiPrPoint, MxCADUtility, MxCpp, McGePoint3d } from "mxcad";

    async function Mx_TestDrawHatchFormPoint() {
        const getPoint = new MxCADUiPrPoint();
        getPoint.setMessage("\n指定填充区域内部一点:");
        getPoint.disableAllTrace(true);
        getPoint.setDisableOsnap(true);
        let pt = (await getPoint.go()) as McGePoint3d;
        if (!pt) return;

        let hatch = MxCADUtility.builderHatchFromPoint(pt);
        if (!hatch) {
            MxFun.acutPrintf("\n 没有找到闭合区域")
            return;
        }

        let mxcad = MxCpp.getCurrentMxCAD();
        mxcad.addPatternDefinition("My图案", "((45, 0,0, 0,0.125))");
        mxcad.drawPatternDefinition = "My图案";
        mxcad.drawHatch(hatch, 5.0);
    }

drawImage ​

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

绘制一个图片

Parameters ​

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

Returns ​

McObjectId

Example

ts
import { MxCpp } from "mxcad";

   async function Mx_Test_DrawImageBase64() {
       const getPoint = new MxCADUiPrPoint();
       getPoint.setMessage("\n指定插入点:");
       let pt = await getPoint.go();
       if (!pt) return;

       let mxcad = MxCpp.getCurrentMxCAD();
       let imagData = "data:image/jpeg;base64,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";
       mxcad.loadImageBase64(imagData, "test.jpg", (image) => {
           if (!image) {
               console.log("loadImage failed");
               return;
           }
           let width = mxcad.mxdraw.viewCoordLong2Cad(100);
           let height = (image.height / image.width) * width;

           let viewAngle = 0.0;
           let id = mxcad.drawImage((pt as any).x, (pt as any).y, width, height, viewAngle, "test.jpg", false, image.width, image.height);
           let ent = id.getMcDbEntity();
           if (ent) {
               ent.trueColor = new McCmColor(255, 255, 255, 160);
           }
           mxcad.updateDisplay();
       });
   }

drawLine ​

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

绘制二维直线

Parameters ​

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

Returns ​

McObjectId

Example

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

drawLine3d ​

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

绘制三维直线

Parameters ​

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

Returns ​

McObjectId


drawMText ​

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

绘制多行文本

Parameters ​

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

Returns ​

McObjectId

多行文本对象id

Example

ts
import { MxCpp, McObject } from "mxcad"
const mxcad:McObject = MxCpp.getCurrentMxCAD()
mxcad.drawMText(0, -100, "控件:\\P多行文字测试", 50, 400, 0, 1);
ts
 let mxcad = MxCpp.getCurrentMxCAD();
 mxcad.newFile();
 mxcad.drawMText(0,0,"\\A1;平方方法下标: m{\\H0.7x;\\S^2;}",15,500,0.0,7);
 mxcad.drawMText(0,30,"\\A2;平方方法上标: m{\\H0.3x;\\S 2^;}",15,500,0.0,7);
 mxcad.zoomAll();
 mxcad.updateDisplay();

drawPathToHatch ​

▸ drawPathToHatch(dPatternScale?): McObjectId

将路径转换为填充图案

Parameters ​

NameTypeDefault valueDescription
dPatternScalenumber1.0图案缩放比例

Returns ​

McObjectId

转换结果

Example

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

drawPathToPolyline ​

▸ drawPathToPolyline(): McObjectId

将路径转换为折线

Returns ​

McObjectId

转换结果

Example

ts
import { MxCpp } from "mxcad"

 let mxcad = MxCpp.getCurrentMxCAD();
   //绘制一个箭头
   mxcad.pathMoveToEx(1000, 300, 10, 10, 0);

   mxcad.pathLineToEx(1000, 500, 30, 0, 0);

   mxcad.pathLineTo(1000, 580);

   mxcad.drawPathToPolyline();

drawPathToSpline ​

▸ drawPathToSpline(): McObjectId

将路径转换为样条曲线

Returns ​

McObjectId

转换结果


drawPoint ​

▸ drawPoint(dX, dY): McObjectId

绘制点

Parameters ​

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns ​

McObjectId


drawSolid ​

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

绘制实体

Parameters ​

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

Returns ​

McObjectId

实体对象id


drawText ​

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

绘制单行文本

Parameters ​

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

Returns ​

McObjectId

成功返回 1,失败返回 0

Example

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

endBlockEdit ​

▸ endBlockEdit(): boolean

退出块编辑状态

Returns ​

boolean


endViewPortEdit ​

▸ endViewPortEdit(): boolean

退出视口编辑状态

Returns ​

boolean


getAllLayoutName ​

▸ getAllLayoutName(): McGeStringArray

得到所有布局名

Returns ​

McGeStringArray


getBackgroundEntity ​

▸ getBackgroundEntity(): McDbBackgroundEntity

返回当前已加载的背景对象。

该对象可用于进一步控制背景图的显示、清空或修改样式。

Returns ​

McDbBackgroundEntity

当前背景对象实例。


getCooperate ​

▸ getCooperate(): MxCooperate

返回协同工作对象

Returns ​

MxCooperate


getCurrentDatabaseDrawColor ​

▸ getCurrentDatabaseDrawColor(): Color

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

Returns ​

Color

返回当前数据库中设置的绘制颜色,THREE.Color对象


getCurrentFileName ​

▸ getCurrentFileName(): string

获取当前文件名

Returns ​

string

当前文件名


getCurrentLayout ​

▸ getCurrentLayout(): string

得到当前布局名

Returns ​

string


getCurrentLayoutId ​

▸ getCurrentLayoutId(): McObjectId

得到当前布局ID

Returns ​

McObjectId


getCurrentOpenFileMd5 ​

▸ getCurrentOpenFileMd5(): string

当回当前打开的文件的在md5码。

Returns ​

string


getCurrentOriginaFileName ​

▸ getCurrentOriginaFileName(): string

获取当前源文件名

Returns ​

string

当前源文件名


getDatabase ​

▸ getDatabase(): McDbDatabase

获取数据库对象

Returns ​

McDbDatabase

数据库对象


getImp ​

▸ getImp(): any

获取内部实现对象

Returns ​

any

内部实现对象


getMxCADViewSpinMatrix ​

▸ getMxCADViewSpinMatrix(): McGeMatrix3d

返回与MxCAD当前视区旋转矩阵

Returns ​

McGeMatrix3d

McGeMatrix3d对象


getMxCpp ​

▸ getMxCpp(): any

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

Returns ​

any


getMxDrawObject ​

▸ getMxDrawObject(): MxDrawObject

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

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

获取临时绘制管理器。

这个方法返回的对象用于在当前视口上进行“临时绘制”,例如高亮选中对象、显示拖拽预览、动态测量提示等。 它的特点是只在视图中显示,不会真正写入图形数据库,因此适合做 UI 反馈和辅助显示。

Returns ​

McObjectTempDraw

临时绘制对象,调用其 addLines / addTriangles / setDrawColor 等方法即可。

Example

ts
import { MxCpp } from "mxcad";

const mxcad = MxCpp.getCurrentMxCAD();
const tempDraw = mxcad.getTempDraw();
tempDraw.clearAll();
tempDraw.setDrawColor(0xFF0000);
tempDraw.addLines(new McGePoint3dArray([new McGePoint3d(0, 0, 0), new McGePoint3d(100, 100, 0)]));

getViewBackgroundColor ​

▸ getViewBackgroundColor(): number

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

Returns ​

number


getViewCADCoord ​

▸ getViewCADCoord(): Object

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

Returns ​

Object

当前视区显示范围

NameType
pt1McGePoint3d
pt2McGePoint3d
pt3McGePoint3d
pt4McGePoint3d

iniAuthorizedService ​

▸ iniAuthorizedService(sUrl): void

初始化用户授权服务url.

Parameters ​

NameTypeDescription
sUrlstring授权服务url

Returns ​

void


init ​

▸ init(imp): void

初始对象

Parameters ​

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

Returns ​

void


initMxObject ​

▸ initMxObject(mxObject): void

初始化对象模型

Parameters ​

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

Returns ​

void

Description


initRegist ​

▸ initRegist(sRegist): void

初始化用户注册数据.

Parameters ​

NameTypeDescription
sRegiststring注册数据

Returns ​

void


insertBlock ​

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

插件图块文件

Parameters ​

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

Returns ​

Promise<McObjectId>

Example

ts
import { McDbBlockReference, MxCADUiPrPoint, MxCpp } from "mxcad";
   // 插入图块
   async function MxTest_InsertBlock() {
       let baseUrl = "http://localhost:3000/mxcad/"
       // 设置图块路径
       let blkFilePath = baseUrl + "tree.mxweb";

       // 插入图块文件
       let mxcad = MxCpp.App.getCurrentMxCAD();
       let blkrecId = await mxcad.insertBlock(blkFilePath, "tree");
       if (!blkrecId.isValid()) {
           // 插入图块
           return;
       }

       // 设置图块大小
       let blkRef = new McDbBlockReference();
       blkRef.blockTableRecordId = blkrecId;
       let box = blkRef.getBoundingBox();
       if (box.ret) {
           let dLen = box.maxPt.distanceTo(box.minPt);
           if (dLen > 0.00001) {
               blkRef.setScale(mxcad.getMxDrawObject().screenCoordLong2Doc(100) / dLen);
           }
       }

       // 指定插入基点
       let getPoint = new MxCADUiPrPoint();
       getPoint.setMessage("\指定插入基点");

       // 动态绘制图块
       getPoint.setUserDraw((v, worldDraw) => {
           blkRef.position = v;
           worldDraw.drawMcDbEntity(blkRef);
       });

       let pt = await getPoint.go();
       if (!pt) return;
       blkRef.position = pt;
       // 绘制图块
       let newBlkRefId = mxcad.drawEntity(blkRef);
       if (!newBlkRefId.isValid) {
           console.log("insert error");
           return;
       }
   };

isBlockEditing ​

▸ isBlockEditing(): boolean

当前是否正在块编辑

Returns ​

boolean


isTryVersion ​

▸ isTryVersion(): boolean

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

Returns ​

boolean


isUselessLayer ​

▸ isUselessLayer(layerName): boolean

判断层是不是一个在使用的有用层,删除一个层之前调用该函数判断一下。

Parameters ​

NameTypeDescription
layerNamestring层名

Returns ​

boolean

true: 有用层,false: 无用层


isViewPortEditing ​

▸ isViewPortEditing(): boolean

当前是否正视口编辑

Returns ​

boolean


layoutRename ​

▸ layoutRename(sName, sToName): boolean

布局改名

Parameters ​

NameTypeDescription
sNamestring布局名称
sToNamestring新布局名称

Returns ​

boolean


loadDwgBackground ​

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

将另一个 DWG 文件作为当前图纸的背景对象加载。

常用于底图对比、参考图叠加、背景图显示等场景。加载成功后, 该背景对象会以当前图纸的背景方式参与显示。

Parameters ​

NameTypeDefault valueDescription
sFileUrlstringundefined背景文件地址。
call(ret: boolean) => voidundefined加载完成后的回调,参数为布尔值,表示是否加载成功。
colornumber0背景对象显示颜色,默认为 0。
isShowbooleantrue是否显示背景对象。

Returns ​

void

Example

ts
import { MxCpp } from "mxcad";

const mxcad = MxCpp.getCurrentMxCAD();
mxcad.loadDwgBackground("./demo/background.dwg.mxweb", (ret) => {
  console.log("背景加载结果:", ret);
});

loadImage ​

▸ loadImage(imageUrl, call, imageFileName?, fileType?): void

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

Parameters ​

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

Returns ​

void

Example

ts
import { MxCpp, MxCADUiPrPoint } from "mxcad"

   async function Mx_Test_DrawImage() {
       const getPoint = new MxCADUiPrPoint();
       getPoint.setMessage("\n指定插入点:");
       let pt = await getPoint.go();
       if (!pt) return;
       let mxcad = MxCpp.getCurrentMxCAD();
       let imagUrl = "https://cdn.pixabay.com/photo/2022/11/15/12/23/winter-7593872_960_720.jpg";
       mxcad.loadImage(imagUrl, (image) => {
           if (!image) {
               console.log("loadImage failed");
               return;
           }
           let width = mxcad.mxdraw.viewCoordLong2Cad(100);
           let height = (image.height / image.width) * width;
           //let viewAngle = mxcad.mxdraw.getViewAngle() * 180  / Math.PI;
           //let viewAngle = mxcad.database.ucsMatrix.angleXYPlane() * 180  / Math.PI;
           //let viewAngle = 15.0;
           let viewAngle = 0.0;
           let id = mxcad.drawImage((pt as any).x, (pt as any).y, width, height, viewAngle, imagUrl, true, image.width, image.height);
           let ent = id.getMcDbEntity();
           if (ent) {
               ent.trueColor = new McCmColor(255, 255, 255, 160);
               // ent.rotate(pt,45 * 3.14159265 / 180.0);
           }
           mxcad.updateDisplay();
       });
   }

loadImageBase64 ​

▸ loadImageBase64(sImageBase64, imageFileName, call): void

加载Base64图片。

Parameters ​

NameTypeDescription
sImageBase64string-
imageFileNamestring-
call(image: any) => void回调函数

Returns ​

void

Example

ts
    import { MxCpp } from "mxcad";
    function selectLocalFile() {
        return new Promise((resolve) => {
            const input = document.createElement("input");
            input.type = "file";
            input.accept = "image/*";
            input.onchange = (e) => resolve(e.target.files[0]);
            input.click();
        });
    }
    function fileToBase64(file) {
        return new Promise((resolve, reject) => {
            const reader = new FileReader();
            reader.onload = () => resolve(reader.result);
            reader.onerror = reject;
            reader.readAsDataURL(file);
        });
    }

    const file = await selectLocalFile();
    if (!file) return;
    const imagData = await fileToBase64(file);
    let mxcad = MxCpp.getCurrentMxCAD();

    mxcad.loadImageBase64(imagData, "test.jpg", (image) => {
        if (!image) {
            console.log("loadImage failed");
            return;
        }
        let width = mxcad.mxdraw.viewCoordLong2Cad(100);
        let height = (image.height / image.width) * width;

        let viewAngle = 0.0;
        let id = mxcad.drawImage(100, 100, width, height, viewAngle, "test.jpg", true, image.width, image.height,"",imagData);
        mxcad.updateDisplay();
    })

makeCurrent ​

▸ makeCurrent(): void

把mxcad设置当前的cad对象

Returns ​

void


newFile ​

▸ newFile(): boolean

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

Returns ​

boolean


objectIdToObject ​

▸ objectIdToObject(lIdIndex): null | McDbObject

将 lIdIndex 转换成 McDbObject 对象

Parameters ​

NameTypeDescription
lIdIndexnumber对象 ID

Returns ​

null | McDbObject

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


off ​

▸ off(name, fun?): void

关闭事件监听

Parameters ​

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

Returns ​

void

Example

ts
import { MxCpp, McObject } from "mxcad"

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

on ​

▸ on(name, fun): void

监听对象选择事件

Parameters ​

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

Returns ​

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

▸ 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?, obj_param?, fetchAttributes?, isFetchTzFile?): boolean

打开网络文件

Parameters ​

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

Returns ​

boolean

是否成功打开文件

Example

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

pathCircle ​

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

根据圆对象创建一个路径

Parameters ​

NameTypeDefault value
dCenXnumberundefined
dCenYnumberundefined
dRnumberundefined
dPrecisionnumber0.0
dWidthnumber0

Returns ​

boolean


pathLineTo ​

▸ pathLineTo(dX, dY): void

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

Parameters ​

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns ​

void


pathLineToEx ​

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

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

Parameters ​

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

Returns ​

void


pathMakeClosed ​

▸ pathMakeClosed(): void

闭合路径

Returns ​

void

Example

ts
import { MxCpp } from "mxcad"

 let mxcad = MxCpp.getCurrentMxCAD();
   //用Plyline显示绘制矩形框

   //定义一个路径的开始点
   mxcad.pathMoveTo(0, 300);

   //路径的一下个点
   mxcad.pathLineTo(100, 300);

   //路径的一下个点
   mxcad.pathLineTo(100, 400);

   //路径的一下个点
   mxcad.pathLineTo(0, 400);

   //把路径设置成闭合
   mxcad.pathMakeClosed();

   //把路径闭合,生成一个矩形框
   mxcad.drawPathToPolyline();

pathMakeExclude ​

▸ pathMakeExclude(isExclude): void

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

Parameters ​

NameTypeDescription
isExcludeboolean是否排除

Returns ​

void

Example

ts
//绘制一个实心有圆弧边界填充,中间挖去一块.

   import { MxCpp, McObject } from "mxcad";

   const mxcad:McObject = MxCpp.getCurrentMxCAD()
   
   //定义一个路径的开始点
   mxcad.pathMoveToEx(440, 3310, 0, 0, 0);
   //路径的一下个点
   mxcad.pathLineTo(480, 3310);
   //路径的一下个点
   mxcad.pathLineTo(480, 3360);
   //路径的一下个点
   mxcad.pathLineTo(450, 3340);
   // 把上面定义的路径定义填充排除区域.
   mxcad.pathMakeExclude(true);
   //定义一个路径的开始点
   mxcad.pathMoveToEx(400, 3300, 0, 0, 0.3);
   //路径的一下个点
   mxcad.pathLineTo(500, 3300);
   //路径的一下个点
   mxcad.pathLineTo(500, 3400);
   //路径的一下个点
   mxcad.pathLineTo(400, 3300);
   mxcad.drawColor = new McCmColor(255, 25, 0);
   //把路径变成一个填充
   mxcad.drawPathToHatch(1);

pathMoveTo ​

▸ pathMoveTo(dX, dY): void

将路径移动到指定位置

Parameters ​

NameTypeDescription
dXnumberX 坐标
dYnumberY 坐标

Returns ​

void


pathMoveToEx ​

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

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

Parameters ​

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

Returns ​

void


redo ​

▸ redo(): void

反回退,重做。

Returns ​

void


regen ​

▸ regen(delayTime?): void

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

Parameters ​

NameTypeDefault valueDescription
delayTimenumber0执行时间

Returns ​

void

Example

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

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

   mxcad.drawLineWidth = 40;

   mxcad.drawCircle(600, 800, 120);

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

regenBlockRecord ​

▸ regenBlockRecord(idBlockRecord): boolean

重绘块表记录中的对象,在修改了块表记录中的对象后,显示效果没有及时更新时,需要调用一下这个函数。

Parameters ​

NameTypeDescription
idBlockRecordMcObjectId块表记录对象

Returns ​

boolean

boolean


saveFile ​

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

保存文件

Parameters ​

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

Returns ​

boolean

是否成功保存文件

Example

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

saveFileToUrl ​

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

将文件保存到服务器并转换为网络路径下载

Parameters ​

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

Returns ​

boolean

是否成功保存文件

Example

ts
import { MxCpp, McObject } from "mxcad"
//保存dwg文件
const mxcad:McObject = MxCpp.getCurrentMxCAD()
 MxCpp.getCurrentMxCAD().saveFileToUrl("http://localhost:1337/mxcad/savedwg", (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);
   }
})
//保存pdf文件。
import { MxCpp, McObject, MxTools } 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" }));

setAttribute ​

▸ setAttribute(val): boolean

设置全局显示和运行属性。

通过这个方法可以控制一些影响用户体验或运行行为的参数,常见用途包括:

  • 打开/关闭撤销回退;
  • 控制坐标轴显示;
  • 调整显示精度;
  • 切换黑白显示模式。

Parameters ​

NameTypeDescription
valobject属性配置对象,支持以下常见项: 1. DisplayPrecision:number 显示精度,取值 0 ~ 1000,数值越大越精细; 2. EnableUndo:boolean 是否启用撤销/重做; 3. ShowCoordinate:boolean 是否显示 XY 坐标轴; 4. BlackWhiteDisplay:boolean 是否启用黑白显示。

Returns ​

boolean

Example

ts
import { MxCpp } from "mxcad";
//获取当前MxCAD对象
const mxcad = MxCpp.getCurrentMxCAD();
//设置全局属性:打开撤销功能并显示坐标轴
mxcad.setAttribute({ EnableUndo: true, ShowCoordinate: true });

setBrowse ​

▸ setBrowse(browse): void

设置浏览模式 param browse 是否浏览模式,true为浏览模式,false为编辑模式

Parameters ​

NameType
browseboolean

Returns ​

void


setCurrentFileName ​

▸ setCurrentFileName(fileName): void

设置当前文件名

Parameters ​

NameTypeDescription
fileNamestring当前文件名

Returns ​

void


setCurrentLayout ​

▸ setCurrentLayout(layoutName): boolean

设置当前布局名

Parameters ​

NameTypeDescription
layoutNamestring布局名称

Returns ​

boolean


setCurrentOriginaFileName ​

▸ setCurrentOriginaFileName(fileName): void

设置当前源文件名

Parameters ​

NameTypeDescription
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

设置视区的背景色.

Parameters ​

NameTypeDescription
rednumber红色分量 (0-255)
green?number绿色分量 (0-255)
blue?number蓝色分量 (0-255)

Returns ​

void

Example

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

showLineWeight ​

▸ showLineWeight(isShow): boolean

控制当前视口是否显示线宽效果。

适用于需要查看线宽显示效果、调试绘图样式或在图纸中观察线宽是否生效的场景。 开启后会立即刷新当前视图,便于观察绘制结果。

Parameters ​

NameTypeDescription
isShowboolean是否显示线宽。

Returns ​

boolean

执行结果。

Example

ts
import { MxCpp } from "mxcad";

const mxcad = MxCpp.getCurrentMxCAD();
let showLineWeight = false;

function toggleLineWeight() {
  showLineWeight = !showLineWeight;
  mxcad.showLineWeight(showLineWeight);
}

smallcoordToCad ​

▸ smallcoordToCad(pt): McGePoint3d

绘图修正的小坐标系转cad坐标

Parameters ​

NameTypeDescription
ptMcGePoint3d点对象

Returns ​

McGePoint3d

转换后的点坐标


startBlockEdit ​

▸ startBlockEdit(idBlockRecord): boolean

进入块编辑状态

Parameters ​

NameTypeDescription
idBlockRecordMcObjectId块记录的ID

Returns ​

boolean

是否成功进入块编辑状态

Example

ts
import { MxCpp, McDbBlockReference, MxCADUtility, MxCADResbuf, DxfCode } from "mxcad";
  async function Mx_StartBlockEdit() {
   let retIds = await MxCADUtility.selectEnt("选择需要被编辑的块引用", new MxCADResbuf([DxfCode.kEntityType, "INSERT"]));
   if (retIds.length == 0) {
       return;
   }
   let id = retIds[0];
   let ent = id.getMcDbEntity();
   if(ent instanceof McDbBlockReference){
       MxCpp.mxcad.startBlockEdit((ent as McDbBlockReference).blockTableRecordId);
   }
  }

startViewPortEdit ​

▸ startViewPortEdit(idBlockRecord): boolean

开始进入视口编辑状态

Parameters ​

NameTypeDescription
idBlockRecordMcObjectId视口记录对象id

Returns ​

boolean

Example

ts
import { MxCpp, McDbViewport, MxCADUtility, MxCADResbuf, DxfCode } from "mxcad";

 async function Mx_StartViewPortEdit() {
   let retIds = await MxCADUtility.selectEnt("选择需要编辑的视口", new MxCADResbuf([DxfCode.kEntityType, "VIEWPORT"]));
   if (retIds.length == 0) {
       return;
   }
   let id = retIds[0];
   
   let ent = id.getMcDbEntity();
   if(ent instanceof McDbViewport){
       MxCpp.mxcad.startViewPortEdit(id);
   }
  }

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


viewCoord2Cad ​

▸ viewCoord2Cad(pt): McGePoint3d

视区坐标到CAD坐标

Parameters ​

NameTypeDescription
ptMcGePoint3d点对象

Returns ​

McGePoint3d

转换后的点坐标


viewCoordLong2Cad ​

▸ viewCoordLong2Cad(l): number

视区长度到CAD长度

Parameters ​

NameTypeDescription
lnumber视区长度

Returns ​

number

CAD长度


zoomAll ​

▸ zoomAll(autoRegen?): boolean

显示全部

Parameters ​

NameTypeDefault valueDescription
autoRegenbooleanfalse是否在方法执行后自动执行重绘方法

Returns ​

boolean


zoomAngle ​

▸ zoomAngle(viewangle): void

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

Parameters ​

NameTypeDescription
viewanglenumber旋转角度 Math.PI

Returns ​

void

void


zoomCenter ​

▸ zoomCenter(dCenX, dCenY): void

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

Parameters ​

NameTypeDescription
dCenXnumber视区中心点X坐标
dCenYnumber视区中心点Y坐标

Returns ​

void

void


zoomScale ​

▸ zoomScale(scale): void

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

Parameters ​

NameTypeDescription
scalenumberscale缩放比例

Returns ​

void

void


zoomW ​

▸ zoomW(minPt, maxPt): void

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

Parameters ​

NameTypeDescription
minPtMcGePoint3d坐标1 McGePoint3d
maxPtMcGePoint3d坐标2 McGePoint3d

Returns ​

void

void