Skip to content

mxcad_2d API 文档 / tools

Module: tools

该模块包含用于mxcad帮助工具相关的导出, 所有导出的内容都可以通过mxcad包导入直接使用

Example

js
import { getJsonFromUrl } from "mxcad"

Table of contents

Classes

Variables

Functions

Variables

MxTools

Const MxTools: Object

Type declaration

NameType
IsZero(val: number) => boolean
_ML_String(strId: string, str: string) => string
b64Decode(str: string) => string
b64Encode(str: string) => string
copyMcDbEntityProperties(fromEnt: McDbEntity, toEnt: McDbEntity) => void
createCursor(cursorSize: number, targetFrameSize: number, color: string) => any
createMdGeLongLongArrayFormAryId(aryId: McObjectId[]) => any
downloadFile(blob: any, filename: string) => void
downloadFileFromUrl(url: string, filename: string) => void
getFileFromUrl(url: string) => Promise<undefined | Response>
getJsonFromUrl(url: string) => Promise<any>
postEmscriptenIndexedDBFile(filekey: string, url: string, retCall: (code: number, message: string) => void, param?: any) => void
postMemoryFile(memoryData: any, url: string, filename: string, retCall: (code: number, message: string) => void, param?: any) => void
saveAsFileDialog(__namedParameters: { blob: Blob ; filename?: string ; types?: FileTypes }) => Promise<undefined | false | FileSystemFileHandle & { createWritable: () => Promise<WritableStreamDefaultWriter<any>> }>

Functions

IsZero

IsZero(val): boolean

检查一个数值是否接近于零的

Parameters

NameTypeDescription
valnumber数值

Returns

boolean

布尔值


_ML_String

_ML_String(strId, str): string

接收输入的提示字符串

Parameters

NameTypeDescription
strIdstring字符串的ID 起一个符合定义的ID名称
strstring提示字符串

Returns

string


b64Decode

b64Decode(str): string

将 Base64 编码的字符串解码为原始数据

Parameters

NameTypeDescription
strstringBase64 编码

Returns

string

原始数据


b64Encode

b64Encode(str): string

将数据进行 Base64 编码

Parameters

NameTypeDescription
strstring目标数据

Returns

string

Base64 编码


copyMcDbEntityProperties

copyMcDbEntityProperties(fromEnt, toEnt): void

复制一个 McDbEntity 对象的属性到另一个 McDbEntity 对象中

Parameters

NameTypeDescription
fromEntMcDbEntity源 McDbEntity 对象
toEntMcDbEntity目标 McDbEntity 对象

Returns

void

Description

该函数会将源对象的图层、线型、线型比例、线宽、真实颜色和文字样式等属性复制到目标对象中。 该函数主要用于在 MxCAD 中进行对象属性的批量复制,以便快速创建具有相同属性的新对象。


crateHexString

crateHexString(str): string

把字符串转成16进制格式编辑

Parameters

NameType
strstring

Returns

string

16进制字符串

String

str 目标字符串


createCursor

createCursor(cursorSize?, targetFrameSize?, color?): any

创建一个自定义的鼠标光标对象

Parameters

NameTypeDefault valueDescription
cursorSizenumber128鼠标大小
targetFrameSizenumber10目标框大小
colorstring"#ffffff"光标颜色

Returns

any

Description

该函数会根据传入的参数,生成一个包含不同类型光标的对象,包括矩形、十字、普通和抓取光标。


createMdGeLongLongArrayFormAryId

createMdGeLongLongArrayFormAryId(aryId): any

创建一个 MdGeLongLongArray 对象,并将传入的 McObjectId 数组中的 id 值添加到该对象中。

Parameters

NameTypeDescription
aryIdMcObjectId[]McObjectId 数组

Returns

any

MdGeLongLongArray 对象

Description

该函数会创建一个新的 MdGeLongLongArray 对象,并遍历传入的 McObjectId 数组,将每个对象的 id 值添加到 MdGeLongLongArray 中。 该函数主要用于在 MxCAD 中处理对象 ID 的集合,以便进行批量操作或传递给其他函数使用。

Example

ts
import { MxCADUtility, MxCADResbuf, MxCpp } from "mxdraw";
// 选择多个对象并合并它们
   async function Mx_Join() {
     let filter = new MxCADResbuf();
     filter.AddMcDbEntityTypes("LWPOLYLINE,ARC,LINE");
     let aryId = await MxCADUtility.userSelect("选择要合并的对象", filter);
     if (aryId.length == 0) {
       return;
     }
     
     MxCpp.App.MxCADAssist.MxJoin(createMdGeLongLongArrayFormAryId(aryId));
   }

downloadFile

downloadFile(blob, filename): void

在浏览器中下载一个文件

Parameters

NameTypeDescription
blobanyBlob 对象,它包含了要下载的文件的数据
filenamestring将要保存的文件的文件名

Returns

void


downloadFileFromUrl

downloadFileFromUrl(url, filename): void

从指定的 URL 下载文件到用户的计算机中

Parameters

NameTypeDescription
urlstring下载文件的 URL 地址
filenamestring将要保存的文件的文件名

Returns

void


getFileFromUrl

getFileFromUrl(url): Promise<undefined | Response>

从指定URL中获取文件

Parameters

NameTypeDescription
urlstring文件的 URL 地址

Returns

Promise<undefined | Response>

目标文件


getJsonFromUrl

getJsonFromUrl(url): Promise<any>

从指定URL中获取文件json字符串

Parameters

NameTypeDescription
urlstring文件的 URL 地址

Returns

Promise<any>

json字符串


postEmscriptenIndexedDBFile

postEmscriptenIndexedDBFile(filekey, url, retCall, param?): void

从 IndexedDB(Indexed Database,索引数据库)中获取文件,并将其上传到指定的 URL

Parameters

NameTypeDescription
filekeystring从 IndexedDB 中获取的文件的键(key)
urlstring数据将要发送到的目标 URL 地址,用于上传文件
retCall(code: number, message: string) => void回调函数
param?any可选的额外参数,可以用来传递额外的数据或配置信息给上传函数

Returns

void


postMemoryFile

postMemoryFile(memoryData, url, filename, retCall, param?): void

将内存中的数据发送到指定的 URL,以实现文件上传功能

Parameters

NameTypeDescription
memoryDataany内存中数据的对象或者数据结构
urlstring数据将要发送到的目标 URL 地址
filenamestring上传的文件的文件名
retCall(code: number, message: string) => void回调函数
param?any可选的额外参数,可以用来传递额外的数据或配置信息给上传函数

Returns

void


saveAsFileDialog

saveAsFileDialog(«destructured»): Promise<undefined | false | FileSystemFileHandle & { createWritable: () => Promise<WritableStreamDefaultWriter<any>> }>

文件下载保存弹框(另存为只支持 Chrome86 或 Edge 86 以及 Opera 72)兼容 iE10等较低版本的浏览器

Parameters

NameType
«destructured»Object
› blobBlob
› filename?string
› types?FileTypes

Returns

Promise<undefined | false | FileSystemFileHandle & { createWritable: () => Promise<WritableStreamDefaultWriter<any>> }>

Example

ts
// 导出DWG文件
   import { MxCpp, MxTools } from "mxcad";

   async function Mx_Export_DWG() {
       const baseUrl = "http://localhost:1337";
       const mxfilepath = "/mxcad/file/";
       const saveDwgUrl = baseUrl + "/mxcad/savedwg";
       // 把mxweb文件 ,保存到服务器上,然后转换成 dwg文件 ,再下载。
       MxCpp.getCurrentMxCAD().saveFileToUrl(saveDwgUrl, (iResult: number, sserverResult: string) => {
           try {
               let ret = JSON.parse(sserverResult);
               if (ret.ret == "ok") {
                   let filePath = baseUrl + mxfilepath + ret.file;
                   fetch(filePath).then(async (res) => {
                       const blob = await res.blob()
                       MxTools.saveAsFileDialog({
                           blob,
                           filename: ret.file,
                           types: [{
                               description: "dwg图纸",
                               accept: {
                                   "application/octet-stream": [".dwg"],
                               },
                           }]
                       })
                   })
               }
               else {
                   console.log(sserverResult);
               }
           } catch {
               console.log("Mx: sserverResult error");
           }
       });
   };