Options
All
  • Public
  • Public/Protected
  • All
Menu

Class MxFun

MxFun 模块 导出库时已实例化,只需要调用实例方法 例如:

 Mx.MxFun.createMxObject

Hierarchy

  • MxFun

Index

Constructors

Properties

InitLanguageString: ((mapid2str: Object) => void)

Type declaration

    • (mapid2str: Object): void
    • 初始化语言表

      Parameters

      • mapid2str: Object

      Returns void

acutPrintf: ((format: string, ...val: string[]) => void)

Type declaration

    • (format: string, ...val: string[]): void
    • 输出字符串到命令行.

      example
      Mx.MxFun.acutPrintf("{0}:", "draw")
      

      Parameters

      • format: string
      • Rest ...val: string[]

      Returns void

      void

addCommand: ((cmdName: string, fun: Function, cmdFlag?: number) => void)

Type declaration

    • (cmdName: string, fun: Function, cmdFlag?: number): void
    • 注册命令

      example
      Mx.MxFun.addCommand("draw", ()=> {
      console.log("draw")
      })

      Parameters

      • cmdName: string

        命令名

      • fun: Function

        命令函数,cmdFlag取值MxCommandFlag枚举的逻辑或

      • Optional cmdFlag: number

      Returns void

      void

addWindowsEvent: ((fun: ((type: string, event: any) => number)) => void)

Type declaration

    • (fun: ((type: string, event: any) => number)): void
    • 设置窗口鼠标等事件的回调操作

      example
      Mx.MxFun.addWindowsEvent((type, event)=> {
      console.log(event)
      if(type = "mouseup") {
      console.log("鼠标释放")
      }else {
      console.log("鼠标按下")
      }
      // 事件往下传递
      // return 0
      // 事件已处理不再传递
      return -1
      })

      Parameters

      • fun: ((type: string, event: any) => number)

        参数1 type: 鼠标事件类型 "mouseup"鼠标释放 、"mousedown" 鼠标按下 参数2 event:事件对象 返回值: number 为0,表示事件往下传递,如果非0,表示事件已经被处理,不要往下传递了

          • (type: string, event: any): number
          • Parameters

            • type: string
            • event: any

            Returns number

      Returns void

      void

cadCoord2Doc: ((x: number, y: number, z: number) => Vector3)

Type declaration

    • (x: number, y: number, z: number): Vector3
    • CAD坐标到文档坐标. 默认情况下,cad等于doc,当前m_isCorrectLargeCoordinates为true时,doc变成了把cad图纸修改到小范围坐标系下的坐标。

      example

      Parameters

      • x: number
      • y: number
      • z: number

      Returns Vector3

      number

cadCoordLong2Doc: ((l: number) => number)

Type declaration

    • (l: number): number
    • MxCAD的DWG坐标长度转Three.js坐标.

      Parameters

      • l: number

      Returns number

cadCoordLong2View: ((l: number) => number)

Type declaration

    • (l: number): number
    • MxCAD的DWG坐标长度转View坐标.

      Parameters

      • l: number

      Returns number

call: ((funName: string, param?: any, retfun?: Function) => void)

Type declaration

    • (funName: string, param?: any, retfun?: Function): void
    • 调用后台服务程序中的NodeJS用户定义函数 后台程序使用Mx.MxFun.registFun注册用户定义函数

      example
      Mx.MxFun.call("getDrawObject", {
      cadFile: "test.dwg"
      }, (res)=> {
      console.log(res)
      })

      Parameters

      • funName: string

        函数名

      • Optional param: any

        函数参数

      • Optional retfun: Function

        函数返回值回调

      Returns void

      void

callCommand: ((cmd: string, param: string, retCall?: ((param: any) => void)) => void)

Type declaration

    • (cmd: string, param: string, retCall?: ((param: any) => void)): void
    • 调用服务器后台CAD命令.

      Parameters

      • cmd: string
      • param: string
      • Optional retCall: ((param: any) => void)
          • (param: any): void
          • Parameters

            • param: any

            Returns void

      Returns void

callEvent: ((eventName: string, param?: any) => any)

Type declaration

    • (eventName: string, param?: any): any
    • 触发一个系统事件的调用

      Parameters

      • eventName: string
      • Optional param: any

      Returns any

createMxObject: ((this: MxFun, __namedParameters: { cadFile?: string | string[]; canvasId?: string; isAutoResize?: boolean; isCPPMxCAD?: boolean; isMxCAD?: boolean; isNewFile?: boolean; mapBox?: any; useWebsocket?: boolean; userIdentitySign?: string; callback?: any }) => void) = createMxObject

Type declaration

    • (this: MxFun, __namedParameters: { cadFile?: string | string[]; canvasId?: string; isAutoResize?: boolean; isCPPMxCAD?: boolean; isMxCAD?: boolean; isNewFile?: boolean; mapBox?: any; useWebsocket?: boolean; userIdentitySign?: string; callback?: any }): void
    • 创建图纸展示控件实例

      paramtype

      string | HTMLCanvasElement | JQuery

      paramtype

      string

      paramtype

      function

      paramtype

      boolean

      example
      Mx.MxFun.createMxObject({
      canvasId: "my-app",
      cadFile: "test2.dwg",
      callback(mxDraw, { canvas, canvasParent }) {
      console.log(mxDraw, canvas, canvasParent)
      },
      isNewFile: true
      })

      Parameters

      • this: MxFun
      • __namedParameters: { cadFile?: string | string[]; canvasId?: string; isAutoResize?: boolean; isCPPMxCAD?: boolean; isMxCAD?: boolean; isNewFile?: boolean; mapBox?: any; useWebsocket?: boolean; userIdentitySign?: string; callback?: any }
        • Optional cadFile?: string | string[]
        • Optional canvasId?: string
        • Optional isAutoResize?: boolean
        • Optional isCPPMxCAD?: boolean
        • Optional isMxCAD?: boolean
        • Optional isNewFile?: boolean
        • Optional mapBox?: any
        • Optional useWebsocket?: boolean
        • Optional userIdentitySign?: string
        • callback?:function

      Returns void

      void

docCoord2Cad: ((x: number, y: number, z: number) => Vector3)

Type declaration

    • (x: number, y: number, z: number): Vector3
    • 文档坐标坐标到CAD. 默认情况下,cad等于doc,当前m_isCorrectLargeCoordinates为true时,doc变成了把cad图纸修改到小范围坐标系下的坐标。

      example

      Parameters

      • x: number
      • y: number
      • z: number

      Returns Vector3

      number

docCoord2World: ((x: number, y: number, z: number) => Vector3)

Type declaration

    • (x: number, y: number, z: number): Vector3
    • 文档坐标转THREE.JS坐标 说明: 文档坐标,THREE.JS坐标的X轴都是从左到右,Y轴是下到上,但是屏幕像素坐标系:X轴都是从左到右,Y轴是上到下

      example
      const vector3 = Mx.MxFun.docCoord2World(36, 21, 0)
      console.log(vector3)

      Parameters

      • x: number

        坐标x

      • y: number

        坐标y

      • z: number

        坐标z

      Returns Vector3

      THREE.Vector3 THREE.JS坐标

docCoordLong2Cad: ((l: number) => number)

Type declaration

    • (l: number): number
    • Three.js坐标转MxCAD的DWG坐标长度

      Parameters

      • l: number

      Returns number

docCoordLong2Screen: ((len: number) => number)

Type declaration

    • (len: number): number
    • 文档坐标长度转屏幕坐标长度

      example
      const len = Mx.MxFun.docCoordLong2Screen(36)
      console.log(len)

      Parameters

      • len: number

        文档坐标长度

      Returns number

      number 屏幕坐标长度

docCoordLong2World: ((l: number) => number)

Type declaration

    • (l: number): number
    • DWG文档坐标长度到ThreeJS坐标长度

      example

      Parameters

      • l: number

      Returns number

      number

enablStaticLoad: ((isStaticLoad?: boolean) => void)

Type declaration

    • (isStaticLoad?: boolean): void
    • 设置加载dwg文件,直接使用html get协议加载数据,这样就不需要梦想后台服务器程序。

      example
      Mx.MxFun.enablStaticLoad(true)
      

      Parameters

      • Optional isStaticLoad: boolean

        是否启用html get协议加载数据文件

      Returns void

      void

getHostUrl: (() => string)

Type declaration

    • (): string
    • 得到当前主机路径 init 事件会在模块加载完成后触发。

      Returns string

getLanguageString: ((id: string, sDef?: string) => string)

Type declaration

    • (id: string, sDef?: string): string
    • 得以语言字符串

      Parameters

      • id: string
      • Optional sDef: string

      Returns string

getLocationPageUrl: (() => string)

Type declaration

    • (): string
    • 得到当前网页路径 init 事件会在模块加载完成后触发。

      Returns string

getMxEntity: ((id: number) => undefined | MxDbEntity)

Type declaration

    • 通过id得到对象.

      example

      Parameters

      • id: number

      Returns undefined | MxDbEntity

      返MxDbEntity

getNumberColor: ((iColor: string | number | Color) => number)

Type declaration

    • (iColor: string | number | Color): number
    • 把一个颜色变量转成一个数组颜色

      Parameters

      • iColor: string | number | Color

      Returns number

getQueryString: ((name: string) => string)

Type declaration

    • (name: string): string
    • 得到地址栏参数

      example
       if(Mx.MxFun.getQueryString("mousetest") === "y")
      

      Parameters

      • name: string

      Returns string

      string 地址栏参数

getTHREE: (() => __module)

Type declaration

    • (): __module
    • 获取THREE

      Returns __module

initMxCpp: ((mxcppimp: any) => void)

Type declaration

    • (mxcppimp: any): void
    • 设置当前运行MxCAD的MxCPP环境对象。

      Parameters

      • mxcppimp: any

      Returns void

initMxDbEntityType: ((entity: MxDbEntity) => void)

Type declaration

initQuickCommand: ((aryQuickCommand: string[][]) => void)

Type declaration

    • (aryQuickCommand: string[][]): void
    • 初始快捷命令。

      Parameters

      • aryQuickCommand: string[][]

      Returns void

isRunningCommand: (() => boolean)

Type declaration

    • (): boolean
    • 当前是否有命令在运行

      example
      if(Mx.MxFun.isRunningCommand()) {
      // 当前已有命令在运行
      }

      Returns boolean

      boolean

on: ((eventName: string, call: any) => void)

Type declaration

    • (eventName: string, call: any): void
    • 注册一个系统事件的监听 init 事件会在模块加载完成后触发。

      Parameters

      • eventName: string
      • call: any

      Returns void

openFile: ((sFile: string | string[], useWebsocket?: boolean) => boolean)

Type declaration

    • (sFile: string | string[], useWebsocket?: boolean): boolean
    • 重新打开cad文件,该函数在控件创建完后,需要再次重新打开文件,调用。

      example
      
      

      Parameters

      • sFile: string | string[]

        打的cad文件路径

      • Optional useWebsocket: boolean

      Returns boolean

      any

postMessageToParentFrame: ((param: any) => boolean)

Type declaration

    • (param: any): boolean
    • 发送一个消息到ifarme的父窗口

      Parameters

      • param: any

      Returns boolean

screenCoord2World: ((x: number | Vector3, y?: number, z?: number) => Vector3)

Type declaration

    • (x: number | Vector3, y?: number, z?: number): Vector3
    • 屏幕坐标转THREE.JS坐标.

      example
      const vector3 = Mx.MxFun.screenCoord2World(36, 21, 0)
      console.log(vector3)

      Parameters

      • x: number | Vector3

        坐标x

      • Optional y: number

        坐标y

      • Optional z: number

        坐标z

      Returns Vector3

      THREE.Vector3 THREE.JS坐标

screenCoordLong2Doc: ((len: number) => number)

Type declaration

    • (len: number): number
    • 屏幕坐标长度转文档坐标长度

      example
      const len = Mx.MxFun.screenCoordLong2Doc(36)
      console.log(len)

      Parameters

      • len: number

        屏幕坐标长度

      Returns number

      number 文档坐标长度

screenCoordLong2World: ((len: number) => number)

Type declaration

    • (len: number): number
    • 屏幕坐标长度转THREE.JS坐标长度

      example
      const len = Mx.MxFun.screenCoordLong2World(36)
      console.log(len)

      Parameters

      • len: number

        屏幕坐标长度

      Returns number

      number THREE.JS坐标长度

sendStringToExecute: ((cmdName: string, ages?: any) => boolean)

Type declaration

    • (cmdName: string, ages?: any): boolean
    • 执行命令

      example
      if(Mx.MxFun.sendStringToExecute("draw")) {
      console.log("成功执行draw命令")
      }

      Parameters

      • cmdName: string

        命令名

      • Optional ages: any

      Returns boolean

      boolean 命令执行成功为true

setIniset: ((iniObj: iniConfig) => void)

Type declaration

    • 设置控件的配制参数.

      example
            Mx.MxFun.setIniset({
      EnableIntelliSelect: true
      })

      Parameters

      Returns void

      object 配制参数.

setStaticServer: ((server: string) => void)

Type declaration

    • (server: string): void
    • 设置加载dwg文件,直接使用html get协议加载数据时,使用的服务器地址。

      example
      Mx.MxFun.setStaticServer("http://localhost:3000/demo");
      

      Parameters

      • server: string

        服务网络地址.

      Returns void

      void

showLayer: ((idLayer: string | number, isShow: boolean) => void)

Type declaration

    • (idLayer: string | number, isShow: boolean): void
    • 显示或隐藏图层

      example
      Mx.MxFun.showLayer(366, true)
      Mx.MxFun.showLayer("2363", fasle)

      Parameters

      • idLayer: string | number

        图层id,或层名

      • isShow: boolean

        是否显示

      Returns void

      void

stopRunCommand: (() => void)

Type declaration

    • (): void
    • 停止运行当前命令

      example

      Returns void

updateDisplay: (() => void)

Type declaration

    • (): void
    • 更新显示,使用Three.js绘制了对象,调用该函数更新显示。

      example
      Mx.MxFun.updateDisplay()
      

      Returns void

      void

viewCoordLong2Cad: ((l: number) => number)

Type declaration

    • (l: number): number
    • View坐标长度转MxCAD的DWG坐标.

      Parameters

      • l: number

      Returns number

worldCoord2Doc: ((x: number, y: number, z: number) => Vector3)

Type declaration

    • (x: number, y: number, z: number): Vector3
    • THREE.JS坐标转文档坐标.

      example
      const vector3 = Mx.MxFun.worldCoord2Doc(36, 21, 0)
      console.log(vector3)

      Parameters

      • x: number

        坐标x

      • y: number

        坐标y

      • z: number

        坐标z

      Returns Vector3

      THREE.Vector3 文档坐标

worldCoord2Screen: ((x: number | Vector3, y?: number, z?: number) => Vector3)

Type declaration

    • (x: number | Vector3, y?: number, z?: number): Vector3
    • THREE.JS坐标转屏幕坐标.,屏幕坐标的Y轴向下。坐标原点在左上角.

      example
      const vector3 = Mx.MxFun.worldCoord2Screen(36, 21, 0)
      console.log(vector3)

      Parameters

      • x: number | Vector3

        坐标x

      • Optional y: number

        坐标y

      • Optional z: number

        坐标z

      Returns Vector3

      THREE.Vector3 屏幕坐标

worldCoordLong2Doc: ((len: number) => number)

Type declaration

    • (len: number): number
    • THREE.JS坐标长度转屏幕坐标长度

      example
      const len = Mx.MxFun.worldCoordLong2Doc(36)
      console.log(len)

      Parameters

      • len: number

        THREE.JS坐标长度

      Returns number

      number 屏幕坐标长度

zoomAll: (() => void)

Type declaration

    • (): void
    • Returns void

zoomW: ((dLBx: number, dLBy: number, dRTx: number, dRTy: number, isWorld?: boolean) => void)

Type declaration

    • (dLBx: number, dLBy: number, dRTx: number, dRTy: number, isWorld?: boolean): void
    • 窗口缩放,把指定的范围内的图形放到视区中

      example
      Mx.MxFun.zoomW(21, 22, 300, 310, false)
      

      Parameters

      • dLBx: number

        矩形框范围的左下角X坐标

      • dLBy: number

        矩形框范围的左下角X坐标

      • dRTx: number

        矩形框范围的左下角X坐标

      • dRTy: number

        矩形框范围的左下角X坐标

      • Optional isWorld: boolean

        传入的坐标是否是thruee.js坐标,默认传文档坐标

      Returns void

      void

Methods

  • 添加一个MxDbEntity实体到当前绘图对象上。

    example

    Parameters

    Returns number

    number 返回对象的id.

  • ceneratecursor(cursorSize?: number, squareSize?: number, isRoss?: boolean, color?: string): HTMLImageElement
  • 创建十字光标图片

    Parameters

    • cursorSize: number = 128
    • squareSize: number = 10
    • isRoss: boolean = true
    • Optional color: string

    Returns HTMLImageElement

  • docCoord2Screen(x: number | Vector3, y?: number): Vector3
  • 文档转屏幕坐标.

    example
    const vector3 = Mx.MxFun.docCoord2Screen(36, 21, 0)
    console.log(vector3)

    Parameters

    • x: number | Vector3

      坐标x

    • Optional y: number

      坐标y

    Returns Vector3

    THREE.Vector3 屏幕坐标

  • 获得到当前数据库对象.

    example
    
    

    Returns MxDbDatabase

    MxDbDatabase

  • 获取当前绘图控件对象

    example
    const mxDraw = Mx.MxFun.getCurrentDraw()
    mxDraw.getScene()

    Returns MxDrawObject

    MxDrawObjectType 当前绘图控件对象

  • getCurrentMousePostion(): Vector3
  • 得到当前鼠标位置,返回的是屏幕坐标 。

    example

    Returns Vector3

  • getMxFunTHREE(): __module
  • 返回mxfun.min.js中的THREE.JS对象,可以用它来创建mxfun.min.js中THREE对象。

    Returns __module

  • getMxFunThreeTool(): any
  • 返回mxfun.min.js中的ThreeJsTool对象

    Returns any

  • getUIData(): MxVueInterface
  • 获取UI数据对象

    example
    
    

    Returns MxVueInterface

    mxUiData

  • initUiDataObject(uiDataObj: MxVueInterface): void
  • 初始化插件的UI数据对象。

    example
    
    

    Parameters

    • uiDataObj: MxVueInterface

    Returns void

  • listenForCommandLineInput(callback: undefined | ((data: { msCmdDisplay: string; msCmdText: string; msCmdTip: string }) => void)): void
  • 监听命令行消息动态更新的数据 在取点对象中设置的命令以及我们提供的图形对象中是有一套命令提示和参数化绘图,而该回调函数主要用来监听消息变化

    parma

    callback 回调函数中data中的msCmdTip表示命令提示 msCmdText表示当前用户输入的输入内容 msCmdDisplay表示所有的消息记录

    Parameters

    • callback: undefined | ((data: { msCmdDisplay: string; msCmdText: string; msCmdTip: string }) => void)

    Returns void

  • listenForCoordTip(callback: ((coordTip: string) => void)): void
  • 监听指针(鼠标光标)移动变化的坐标信息

    parma

    callback 回调函数中返回坐标信息

    Parameters

    • callback: ((coordTip: string) => void)
        • (coordTip: string): void
        • Parameters

          • coordTip: string

          Returns void

    Returns void

  • listenForUpdateCursor(callback: undefined | ((cursorType: string) => void)): void
  • 监听光标更新

    parma

    cursorType当前使用的光标类型

    Parameters

    • callback: undefined | ((cursorType: string) => void)

    Returns void

  • loadImageMaterial(imageUrlPath: string, callResult?: ((material: MeshLambertMaterial) => null | void)): Promise<null | MeshLambertMaterial>
  • 加载一个图片对象,返回Three.js材质对象,该函数具有缓存功能,下次加载同样的图片,可以直接返回.

    example
    
    

    Parameters

    • imageUrlPath: string
    • Optional callResult: ((material: MeshLambertMaterial) => null | void)
        • (material: MeshLambertMaterial): null | void
        • Parameters

          • material: MeshLambertMaterial

          Returns null | void

    Returns Promise<null | MeshLambertMaterial>

    any

  • onUseCreateMxDbEntity(callback: ((...ages: [MxDbEntity]) => any)): void
  • 监听use或者调用自定义图形定义的绘制命令后创建图形对象的回调

    Parameters

    Returns void

  • screenCoord2Doc(x: number | Vector3, y?: number): Vector3
  • 屏幕转文档坐标

    example
    const vector3 = Mx.MxFun.screenCoord2Doc(36, 21, 0)
    console.log(vector3)

    Parameters

    • x: number | Vector3

      坐标x

    • Optional y: number

      坐标y

    Returns Vector3

    THREE.Vector3 文档坐标

  • selectEnt(strPrompt: string, filter?: any): Promise<number>
  • 在图上选择一个对象。

    example

    Parameters

    • strPrompt: string

      提示字符串

    • filter: any = null

      过滤条件

    Returns Promise<number>

    number 返回对象的id

  • setCommandLineInputData(msCmdText: string, keyCode: number): void
  • 设置命令行消息数据 (在监听input输入框的onKeydown事件的回调函数中调用)

    Parameters

    • msCmdText: string

      用户输入的数据 input输入框输入的文本信息

    • keyCode: number

      按键Code input输入框的onKeydown事件的event事件对象的keyCode属性

    Returns void

  • setMxServer(MXSERVER?: string): void
  • 为程序设置服务器地址

    example
    Mx.MxFun.setMxServer("ws://localhost:5090")
    

    Parameters

    • MXSERVER: string = 'ws://localhost:5090'

      服务器地址

    Returns void

    void

  • testMX(p?: any): any
  • 梦想开发测试

    example
    console.log(Mx.MxFun.TestMX());
    

    Parameters

    • Optional p: any

    Returns any

    any