Skip to content

mxcad_2d API 文档 / 2d / McAppType

Class: McAppType ​

2d.McAppType

McAppType 是 MxCAD 应用级核心入口类。

Description

该类负责封装 MxCAD 运行时的全局能力,包括应用初始化、当前 CAD 实例获取、颜色与背景设置、字体加载、对象类型转换、以及与底层 C++ 实现的交互。 它是插件和扩展开发中访问 MxCAD 全局能力的主要入口。 使用方法总结:

  1. 通过 MxCpp.App 获取实例;
  2. 使用 getCurrentMxCAD() 获取当前 CAD 对象;
  3. 调用字体、背景、对象转换等方法进行全局配置和运行时控制。

Example

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

const app = MxCpp.App;
// 获取当前mxcad对象
const mxcad =  MxCpp.App.getCurrentMxCAD();
// 设置默认视区背景色为白色
app.setDefaultViewBackgroundColor(255, 255, 255);
// 设置默认字体为 Arial
app.setDefaultTrueTypeFontFile("Arial.ttf");
// 判断对象类型
const isCurve = app.objectIdIsKindOf(someId, "McDbCurve");

Table of contents ​

Constructors ​

Methods ​

Constructors ​

constructor ​

• new McAppType()

Methods ​

GetVersionDateString ​

▸ GetVersionDateString(): string

得当前程序的数字日期版本信息

Returns ​

string

数字日期版本信息


IniSet ​

▸ IniSet(ini): boolean

全局参数的初始设置

Parameters ​

NameTypeDescription
iniany初始设置值

Returns ​

boolean

Description

ini 初始设置值

ini对象名类型说明
UseUtf8booleanC++ 程序是否使用 utf8 编码格式。
McGeTolnumber几何计算时点和向量相等判断精度,默认值为 1.0E-7。
EnableObjectModificationEventnumber1 启用对象增加/删除通知事件,2 启用对象修改通知事件,默认值为 0。
SupportTruetypeFontboolean是否支持 truetype 字体,默认值为 true。
BlockReferenceExGripboolean块参照的外部抓手是否启用,默认值为 false。
Enable3dboolean是否启用 3D 功能,默认值为 false。
ShowLayoutBackgroundPaperboolean布局背景纸张是否显示,默认值为 true。
LayoutBackgroundColornumber布局背景颜色,默认值为 0xFFFFFF。
min_object_display_lengthnumber当对象显示小于该像素值时,将直接用点显示,默认值为 1。

Example

ts
import { MxCpp } from 'mxcad';

// 设置全局参数
MxCpp.App.IniSet({SupportTruetypeFont:false, BlockReferenceExGrip:true});

addNetworkLoadingBigFont ​

▸ addNetworkLoadingBigFont(fontfiles, fontFilesLoadOnInitialization?, isAddTo?): void

配置需要通过网络加载的 bigfont 字体

Parameters ​

NameTypeDefault valueDescription
fontfilesstring | string[]undefined加载的字体文件
fontFilesLoadOnInitializationstring[][]需要在初始化时加载的字体文件
isAddTobooleanfalse是否追加到当前字体列表中,默认值为false

Returns ​

void

Example

ts
import { MxCpp } from 'mxcad'
import { MxFun } from "mxdraw";

// MxCAD创建成功
MxFun.on("mxcadApplicationCreatedMxCADObject", () => {
  MxCpp.App.addNetworkLoadingBigFont(["hztxt.shx", "gbcbig.shx"]);
}

addNetworkLoadingFont ​

▸ addNetworkLoadingFont(fontfiles, fontFilesLoadOnInitialization?, isAddTo?): void

配置需要通过网络加载的shx字体

Parameters ​

NameTypeDefault valueDescription
fontfilesstring | string[]undefined加载的字体文件
fontFilesLoadOnInitializationstring[][]-
isAddTobooleanfalse-

Returns ​

void

Example

ts
import { MxCpp } from 'mxcad';
import { MxFun } from "mxdraw";

// MxCAD创建成功
MxFun.on("mxcadApplicationCreatedMxCADObject", () => {
  MxCpp.App.addNetworkLoadingFont( ["txt.shx","simplex.shx","aaa.shx","ltypeshp.shx","complex.shx"]);
}

addNetworkLoadingTrueTypeFont ​

▸ addNetworkLoadingTrueTypeFont(fontname, fontzhName, fontfile, fontNamesLoadOnInitialization?): void

配置需要通过网络加载的 Truetype 字体

Parameters ​

NameTypeDefault valueDescription
fontnamestring[]undefined字体名数组
fontzhNamestring[]undefined字体中文名数组
fontfilestring[]undefined加载字体文件数组
fontNamesLoadOnInitializationstring[][]-

Returns ​

void

Example

ts
import { MxCpp } from 'mxcad'
import { MxFun } from "mxdraw";

// MxCAD创建成功
MxFun.on("mxcadApplicationCreatedMxCADObject", () => {
  MxCpp.App.addNetworkLoadingTrueTypeFont(["simsun","syadobe"],["思原宋体","思原黑体"],["stadobe.otf","syadobe.otf"]);
}

getCurrentMxCAD ​

▸ getCurrentMxCAD(): McObject

获取当前的 MxDraw 对象。

Returns ​

McObject

返回当前的 McObject 对象。

Example

ts
//添加图层
import { MxCpp } from 'mxcad'
// 获取当前cad对象
let mxcad = MxCpp.App.getCurrentMxCAD();
// 获取图层表
let layerTable = mxcad.getDatabase().getLayerTable();
if (!layerTable.has("xxx11")) {
  let newLayer = new McDbLayerTableRecord();// 构造新图层记录对象
  newLayer.name = "xxx11";// 设置新图层名为:"xxx11"
  layerTable.add(newLayer);// 图层表新增图层记录对象
}

if (layerTable.has("xxx11")) {
  console.log("add layer ok");
}

getImp ​

▸ getImp(): any

获取 imp 对象。

Returns ​

any

返回 imp 对象。


getLastCallResult ​

▸ getLastCallResult(): number

获取最后一次调用的结果。

Returns ​

number

返回最后一次调用的结果


getShxBigFonts ​

▸ getShxBigFonts(): string[]

得到当前支持的所有bigfont shx字体.

Returns ​

string[]

字体数组


getShxFonts ​

▸ getShxFonts(): string[]

得到当前支持的所有shx字体.

Returns ​

string[]

字体数组


getTrueTypeFonts ​

▸ getTrueTypeFonts(): { file: string ; name: string ; zhname: string }[]

得到当前支持的所有TrueType字体.

Returns ​

{ file: string ; name: string ; zhname: string }[]

name 字体名| zhname 字体中文名 | file 字体文件


getVersionString ​

▸ getVersionString(): string

得当前程序的版本信息

Returns ​

string

版本信息


init ​

▸ init(imp): void

初始化 McAppType 对象。

Parameters ​

NameType
impany

Returns ​

void


isAlreadyLoaded ​

▸ isAlreadyLoaded(sFont, iType?): boolean

得到该字体是否已经从网上加载

Parameters ​

NameTypeDefault valueDescription
sFontstringundefined字体名
iTypenumber0字体类型 0:shx字体 1:bigshx字体 2:truetype字体

Returns ​

boolean

boolean


isWasmx64 ​

▸ isWasmx64(): boolean

Returns ​

boolean


loadFonts ​

▸ loadFonts(vecShxFonts, vecBigShxFonts, vecTureTypeFonts, retCall): void

通知cad程序,将来要使用的字体需要加载,方便后面程序使用.

Parameters ​

NameTypeDescription
vecShxFontsstring[]-
vecBigShxFontsstring[]-
vecTureTypeFontsstring[]Truetype字体
retCall() => void回调函数

Returns ​

void

Example

ts
 import { MxCpp } from 'mxcad';

 //修改文字样式
 function Mx_Test_TrueText(){
 let mxcad = MxCpp.getCurrentMxCAD();
 //清空当前显示内容
 mxcad.newFile();
 MxCpp.App.loadFonts([], [], ["syadobe","simsun"], () => {
    // 添加一个黑体文字样式
    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";
    mxcad.zoomAll();
    mxcad.regen();
    mxcad.updateDisplay();
   });
 }

mcedRGB2Index ​

▸ mcedRGB2Index(red, green, blue, bAutoNearest?): number

将 RGB 值转换为索引。

Parameters ​

NameTypeDefault valueDescription
rednumberundefined红色值。
greennumberundefined绿色值。
bluenumberundefined蓝色值。
bAutoNearestbooleantrue是否自动获取最近的颜色值。

Returns ​

number

返回转换后的索引值。


newMcObjectId ​

▸ newMcObjectId(id?, type?): McObjectId

new 一个McObjectId对象。

Parameters ​

NameTypeDescription
id?number对象id
type?McObjectIdType对象类型

Returns ​

McObjectId

返回新创建的McObjectId


objectIdIsKindOf ​

▸ objectIdIsKindOf(lIdIndex, className): boolean

判断一个对象id是否指类类型名对象

Parameters ​

NameTypeDescription
lIdIndexnumber对象id索引
classNamestring对象名称

Returns ​

boolean

返回布尔值

Example

ts
import { MxCADUiPrEntity } from "mxcad";
// 选择目标对象
let selEntity = new MxCADUiPrEntity();
selEntity.setMessage("选择对象");
let val = await selEntity.go();
if (!val.isValid()) return;
// 判断目标对象是为多段线类
const isSuccess = MxCpp.App.objectIdIsKindOf(val.id, "McDbPolyline");
if(isSuccess){
  console.log("目标对象为多段线")
}else{
  console.log("目标对象不为多段线")  
}

objectIdToObject ​

▸ objectIdToObject(lIdIndex): null | McDbObject

将对象 id 转换为 McDbObject 对象。

Parameters ​

NameTypeDescription
lIdIndexnumber对象的 id。

Returns ​

null | McDbObject

返回转换后的 McDbObject 对象,如果转换失败,则返回 null。

Example

ts
import { MxCADUiPrEntity, MxCpp } from "mxcad";
// 获取目标对象
let selEntity = new MxCADUiPrEntity();
let val = await selEntity.go();
if (!val.isValid()) return;
const obj = MxCpp.App.objectIdToObject(val.id);
console.log(obj)

restoreMcGeTol ​

▸ restoreMcGeTol(): void

恢复几何计算时,点和向量变量判断是否相等的默认精度范围值

Returns ​

void


setDefaultShxFontFile ​

▸ setDefaultShxFontFile(sShxFile, sBigShxFile): void

配置默认的shx,bigshx字体

Parameters ​

NameType
sShxFilestring
sBigShxFilestring

Returns ​

void

Example

ts
import { MxCpp } from "mxcad";
mxcad.on("init_cpp", async () => {
  MxCpp.App.setDefaultShxFontFile("txt.shx","hztxt.shx");
})

setDefaultTrueTypeFontFile ​

▸ setDefaultTrueTypeFontFile(sTrueTypeFontName): void

配置默认的TrueType字体

Parameters ​

NameTypeDescription
sTrueTypeFontNamestringTrueType字体名

Returns ​

void

Example

ts
import { MxCpp } from "mxcad";
//设置默认TrueType字体为Arial.ttf
mxcad.on("init_cpp", async () => {
   MxCpp.App.setDefaultTrueTypeFontFile("Arial.ttf");
})

setDefaultViewBackgroundColor ​

▸ setDefaultViewBackgroundColor(red, green, blue): void

设置默认的视区的背景色.

Parameters ​

NameTypeDescription
rednumber红色值。
greennumber绿色值。
bluenumber蓝色值。

Returns ​

void


setFontFilePath ​

▸ setFontFilePath(path): void

配置字体加载位置,默值是fonts

Parameters ​

NameTypeDescription
pathstring字体文件路径

Returns ​

void


setImp ​

▸ setImp(imp): void

设置McAppType的 imp 对象。

Parameters ​

NameTypeDescription
impany传入的 imp 对象。

Returns ​

void


setMcGeTol ​

▸ setMcGeTol(dTol): number

设置几何计算时,点和向量变量判断是否相等的精度范围,默认值是1.0E-7

Parameters ​

NameType
dTolnumber

Returns ​

number