mxdraw 0.0.17 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +74 -169
  3. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js +22 -11
  4. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js +0 -1
  5. package/dist/lib/MxModule/McGiWorldDraw/McGiWorldDraw.js +2 -0
  6. package/dist/lib/MxModule/McGiWorldDraw/index.js +2 -0
  7. package/dist/lib/MxModule/McGiWorldDrawType/McGiWorldDrawType.js +19 -0
  8. package/dist/lib/MxModule/McGiWorldDrawType/index.js +4 -0
  9. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js +0 -1
  10. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js +0 -1
  11. package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js +0 -1
  12. package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js +0 -1
  13. package/dist/lib/MxModule/MxDbEntity/MxDbEntity.js +174 -0
  14. package/dist/lib/MxModule/MxDbEntity/index.js +5 -0
  15. package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js +401 -27
  16. package/dist/lib/MxModule/MxDrawObject/index.js +0 -1
  17. package/dist/lib/MxModule/MxFun/MxFun.js +84 -22
  18. package/dist/lib/MxModule/MxFun/index.js +0 -1
  19. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js +5 -35
  20. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js +71 -29
  21. package/dist/lib/MxModule/MxThreeJS/SVGLoader.js +4 -5
  22. package/dist/lib/MxModule/MxThreeJS/index.js +0 -1
  23. package/dist/lib/MxModule/MxType/MxType.js +27 -0
  24. package/dist/lib/MxModule/MxType/index.js +4 -0
  25. package/dist/lib/MxModule/loadCoreCode/index.js +0 -1
  26. package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js +48 -41
  27. package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js +1164 -943
  28. package/dist/lib/MxModule/store/PubsubClass.js +0 -1
  29. package/dist/lib/MxModule/store/StoreClass.js +0 -1
  30. package/dist/lib/MxModule/store/index.js +0 -1
  31. package/dist/lib/MxModule/store/store.js +0 -1
  32. package/dist/lib/MxModule/useCanvasResizeListener/index.js +0 -1
  33. package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js +77 -25
  34. package/dist/lib/doc.js +5 -2
  35. package/dist/lib/mxdraw.js +12 -4
  36. package/dist/lib/tools/algorithm/math.js +0 -1
  37. package/dist/lib/tools/algorithm/random.js +0 -1
  38. package/dist/lib/tools/dom/create.js +0 -1
  39. package/dist/lib/tools/dynamicImport/index.js +142 -0
  40. package/dist/lib/tools/formatting/index.js +0 -1
  41. package/dist/lib/tools/proxy/index.js +0 -1
  42. package/dist/lib/tools/three/index.js +0 -1
  43. package/dist/lib/types/McEdGetPointWorldDrawObject.js +2 -0
  44. package/dist/lib/types/MrxDbgUiPrPoint.js +2 -0
  45. package/dist/lib/types/MxCADObject.js +3 -0
  46. package/dist/lib/types/MxDrawObject.js +2 -0
  47. package/dist/lib/types/MxFun.js +2 -0
  48. package/dist/mxdraw.es5.js +28 -3
  49. package/dist/mxdraw.es5.js.map +1 -1
  50. package/dist/mxdraw.umd.js +29 -4
  51. package/dist/mxdraw.umd.js.map +1 -1
  52. package/dist/types/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.d.ts +12 -2
  53. package/dist/types/MxModule/McGiWorldDraw/McGiWorldDraw.d.ts +227 -0
  54. package/dist/types/MxModule/McGiWorldDraw/index.d.ts +2 -0
  55. package/dist/types/MxModule/McGiWorldDrawType/McGiWorldDrawType.d.ts +16 -0
  56. package/dist/types/MxModule/McGiWorldDrawType/index.d.ts +2 -0
  57. package/dist/types/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.d.ts +1 -1
  58. package/dist/types/MxModule/MxDbEntity/MxDbEntity.d.ts +198 -0
  59. package/dist/types/MxModule/MxDbEntity/index.d.ts +3 -0
  60. package/dist/types/MxModule/MxDrawObject/MxDrawObject.d.ts +317 -1
  61. package/dist/types/MxModule/MxFun/MxFun.d.ts +66 -20
  62. package/dist/types/MxModule/MxThreeJS/MxThreeJS.d.ts +11 -14
  63. package/dist/types/MxModule/MxType/MxType.d.ts +24 -0
  64. package/dist/types/MxModule/MxType/index.d.ts +2 -0
  65. package/dist/types/MxModule/store/store.d.ts +1 -1
  66. package/dist/types/MxModule/useCanvasResizeListener/useCanvasResizeListener.d.ts +9 -5
  67. package/dist/types/doc.d.ts +4 -1
  68. package/dist/types/mxdraw.d.ts +8 -2
  69. package/dist/types/tools/dynamicImport/index.d.ts +1 -0
  70. package/dist/types/types/McEdGetPointWorldDrawObject.d.ts +9 -0
  71. package/dist/types/types/MrxDbgUiPrPoint.d.ts +23 -0
  72. package/dist/types/types/MxCADObject.d.ts +40 -0
  73. package/dist/types/types/MxDrawObject.d.ts +57 -0
  74. package/dist/types/types/MxFun.d.ts +37 -0
  75. package/package.json +8 -3
  76. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js.map +0 -1
  77. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js.map +0 -1
  78. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js.map +0 -1
  79. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js.map +0 -1
  80. package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js.map +0 -1
  81. package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js.map +0 -1
  82. package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js.map +0 -1
  83. package/dist/lib/MxModule/MxDrawObject/index.js.map +0 -1
  84. package/dist/lib/MxModule/MxFun/MxFun.js.map +0 -1
  85. package/dist/lib/MxModule/MxFun/index.js.map +0 -1
  86. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js.map +0 -1
  87. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js.map +0 -1
  88. package/dist/lib/MxModule/MxThreeJS/SVGLoader.js.map +0 -1
  89. package/dist/lib/MxModule/MxThreeJS/index.js.map +0 -1
  90. package/dist/lib/MxModule/loadCoreCode/index.js.map +0 -1
  91. package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js.map +0 -1
  92. package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js.map +0 -1
  93. package/dist/lib/MxModule/store/PubsubClass.js.map +0 -1
  94. package/dist/lib/MxModule/store/StoreClass.js.map +0 -1
  95. package/dist/lib/MxModule/store/index.js.map +0 -1
  96. package/dist/lib/MxModule/store/store.js.map +0 -1
  97. package/dist/lib/MxModule/useCanvasResizeListener/index.js.map +0 -1
  98. package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js.map +0 -1
  99. package/dist/lib/doc.js.map +0 -1
  100. package/dist/lib/mxdraw.js.map +0 -1
  101. package/dist/lib/tools/algorithm/math.js.map +0 -1
  102. package/dist/lib/tools/algorithm/random.js.map +0 -1
  103. package/dist/lib/tools/dom/create.js.map +0 -1
  104. package/dist/lib/tools/formatting/index.js.map +0 -1
  105. package/dist/lib/tools/proxy/index.js.map +0 -1
  106. package/dist/lib/tools/three/index.js.map +0 -1
package/LICENSE CHANGED
@@ -1,5 +1,6 @@
1
1
  Copyright 2017 --username-- <--usermail-->
2
2
 
3
+
3
4
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
5
 
5
6
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
package/README.md CHANGED
@@ -1,177 +1,45 @@
1
- <!-- START doctoc generated TOC please keep comment here to allow auto update -->
2
- <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3
- 目录
4
-
5
- - [简介](#%E7%AE%80%E4%BB%8B)
6
- - [mxdraw 是什么?](#mxdraw-%E6%98%AF%E4%BB%80%E4%B9%88)
7
- - [项目应用构建](#%E9%A1%B9%E7%9B%AE%E5%BA%94%E7%94%A8%E6%9E%84%E5%BB%BA)
8
- - [基于Vue-cli构建Vue单页面应用程序](#%E5%9F%BA%E4%BA%8Evue-cli%E6%9E%84%E5%BB%BAvue%E5%8D%95%E9%A1%B5%E9%9D%A2%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F)
9
- - [安装](#%E5%AE%89%E8%A3%85)
10
- - [npm](#npm)
11
- - [用法](#%E7%94%A8%E6%B3%95)
12
- - [引入](#%E5%BC%95%E5%85%A5)
13
- - [加载](#%E5%8A%A0%E8%BD%BD)
14
- - [如何实现一个画线的功能命令?](#%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E7%94%BB%E7%BA%BF%E7%9A%84%E5%8A%9F%E8%83%BD%E5%91%BD%E4%BB%A4)
15
- - [按需引入配置](#%E6%8C%89%E9%9C%80%E5%BC%95%E5%85%A5%E9%85%8D%E7%BD%AE)
16
- - [License](#license)
17
-
18
- <!-- END doctoc generated TOC please keep comment here to allow auto update -->
19
- ## 简介
20
- ### mxdraw 是什么?
21
- > 是一套用于构建CAD在线绘图的JS库,可以方便快捷构建起一个网页界面,实现CAD图纸预览和编辑功能的一套解决方案
22
- ### 浏览器兼容
23
- > 支持大部分现代主流浏览器比如Chrome、Edge等, 不支持IE浏览器
24
- ### 使用人群
1
+ <!-- START doctoc generated TOC please keep comment here to allow auto update -->
2
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3
+ 目录
4
+
5
+ - [快速上手](#%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B)
6
+ - [简介](#%E7%AE%80%E4%BB%8B)
7
+ - [安装](#%E5%AE%89%E8%A3%85)
8
+ - [用法](#%E7%94%A8%E6%B3%95)
9
+ - [Mx模块集](#mx%E6%A8%A1%E5%9D%97%E9%9B%86)
10
+ - [loadCoreCode 动态加载核心(初始化)](#loadcorecode-%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BD%E6%A0%B8%E5%BF%83%E5%88%9D%E5%A7%8B%E5%8C%96)
11
+ - [MxDrawObject 控件对象](#mxdrawobject-%E6%8E%A7%E4%BB%B6%E5%AF%B9%E8%B1%A1)
12
+ - [MxThreeJS 创建THREE图形物体对象](#mxthreejs-%E5%88%9B%E5%BB%BAthree%E5%9B%BE%E5%BD%A2%E7%89%A9%E4%BD%93%E5%AF%B9%E8%B1%A1)
13
+ - [McEdGetPointWorldDrawObject / MrxDbgUiPrPoint / MrxDbgUiPrBaseReturn 动态绘制](#mcedgetpointworlddrawobject--mrxdbguiprpoint--mrxdbguiprbasereturn-%E5%8A%A8%E6%80%81%E7%BB%98%E5%88%B6)
14
+ - [MxDbEntity / McGiWorldDraw / McGiWorldDrawType 自定义对象](#mxdbentity--mcgiworlddraw--mcgiworlddrawtype-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%AF%B9%E8%B1%A1)
15
+ - [按需引入配置](#%E6%8C%89%E9%9C%80%E5%BC%95%E5%85%A5%E9%85%8D%E7%BD%AE)
16
+ - [License](#license)
17
+
18
+ <!-- END doctoc generated TOC please keep comment here to allow auto update -->
19
+
20
+ ## 快速上手
21
+ ### 简介
22
+ #### mxdraw 是什么?
23
+ > mxdraw 是配合[MxDraw云图程序](https://help.mxdraw.com/?pid=32&keywords=)构建CAD网页在线绘图功能的JS库,实现在线CAD图纸预览和编辑等功能的一套解决方案, 支持大部分现代主流浏览器比如Chrome、Edge等, 不支持IE浏览器。
24
+ #### 使用人群
25
25
  > 面向前端开发者 熟悉了解`JavaScript` 并且会使用 `three.js`框架。
26
26
  > 如从未接触过three.js建议先阅读[three.js中文文档](http://www.yanhuangxueyuan.com/threejs/docs/index.html#manual/zh/) 后再进行开发使用。
27
27
 
28
-
29
- ## 项目应用构建
30
- ### 基于Vue-cli构建Vue单页面应用程序
31
-
32
- #### 1.打开命令行安装vue-cli脚手架工具(已安装跳过此步骤)
33
- ``` sh
34
- npm install -g @vue/cli
35
- # OR(或)
36
- yarn global add @vue/cli
37
-
38
- # 通过查看版本检查是否安装成功
39
- vue --version
40
- ```
41
- #### 2.命令行运行命名创建新项目
42
- ``` sh
43
- # 创建名为mxdraw-test-vue3 的一个新Vue项目
44
- vue create mxdraw-test-vue3
45
-
46
- # 如果选择default则会直接创建项目,创建项目包括babel\eslin这些工具,比如Router/Vuex等其他依赖需要自己手动安装
47
- ? P1ease pick a preset:
48
- # 默认选项
49
- Default (vue 3)([vue 3] babel, eslint)
50
- # 手动选择功能
51
- Manually select features
52
-
53
- # 如果选择Manually select features(手动安装)则会进入下一步选项:(这里推荐大家进行手动配置)
54
- ? Check the features needed for your project :
55
- (*) Choose vue version # 选择vue版本
56
- (*) Babel # 代码编译
57
- (*) TypeScript # ts
58
- ( ) Progressive Web App (PWA)Support # 支持渐进式网页应用程序
59
- (*) Router # vue路由
60
- ( ) vuex # 状态管理模式
61
- ( ) css Pre-processors # css预处理
62
- (*) Linter ; Formatter # 代码风格、格式校验
63
- ( ) Unit Testing # 单元测试
64
- ( ) E2E Testing # 端对端测试
65
-
66
- ### TypeScript 选项配置
67
- # 选择使用哪个版本的vue框架
68
- ? Choose a version of Vue.js that you want to start the project with
69
- 2.x # vue2.x
70
- 3.x # vue3.x
71
-
72
- # 询问的是是否使用class风格的组件语法,如果在项目中想要保持使用TypeScript的class风格的话,建议大家选择y。
73
- ? Use class-style component syntax? (Y/n)
74
-
75
- # 使用Babel与TypeScript一起用于自动检测的填充?这里一定要选择y
76
- ? Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)? (Y/n)
77
-
78
- ### Router 选项配置
79
- # 路由是否使用history模式?如果项目中存在要求就使用history(即:y),但是一般还是推荐大家使用hash模式,毕竟history模式需要依赖运维。
80
- ? Use history mode for router? (Requires proper server setup for index fallback in production) (Y/n)
81
-
82
-
83
- ### CSS Pre-processors css 选项配置
84
- # 选择一种CSS预处理类型,根据各个项目的要求使用对应css编译处理
85
- ? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): (Use arrow keys)
86
- > Sass/SCSS (with dart-sass)
87
- Sass/SCSS (with node-sass)
88
- Less
89
- Stylus
90
-
91
- ### Linter / Formatter 选项配置
92
- # TSLint只有在选择TypeScript时才会存在。
93
- ? Pick a linter / formatter config: (Use arrow keys)
94
- > ESLint with error prevention only # 只进行报错提醒
95
- ESLint + Airbnb config # 不严谨模式
96
- ESLint + Standard config # 正常模式
97
- ESLint + Prettier # 严格模式
98
- TSLint (deprecated) # TypeScript格式验证工具
99
- # 选择校验时机,一般都会选择保存时校验,好及时做出调整
100
- ? Pick additional lint features: (Press <space> to select, <a> to toggle all, <i> to invert selection)
101
- (*) Lint on save # 保存时检测
102
- ( ) Lint and fix on commit # 修复和提交时检测
103
- ### Unit Testing 选项配置
104
- # 选择单元测试解决方案,普遍用到最多的是Mocha + chai
105
- ? Pick a unit testing solution: (Use arrow keys)
106
- > Mocha + Chai
107
- Jest
108
- ### E2E Testing E2E(End To End)选项配置
109
- # 选择端对端测试的类型
110
- ? Pick a E2E testing solution: (Use arrow keys)
111
- > Cypress (Chrome only)
112
- Nightwatch (WebDriver-based)
113
- ### 额外选项
114
- # 选择Babel,PostCSS, ESLint等自定义配置的存放位置。这里建议大家选择第一个
115
- ? Where do you prefer placing config for Babel, ESLint, etc.? (Use arrow keys)
116
- > In dedicated config files # 存放在专用配置文件中
117
- In package.json # 存放在package.json中
118
- # 是否保存当前选择的配置项,如果当前配置是经常用到的配置,建议选择y存储一下当前配置项
119
- ? Save this as a preset for future projects? (y/N)
120
- # 选择n之后则会直接开始创建项目了,选择y之后则会输入一个存储当前配置项的名称:
121
- ? Save preset as:
122
- ```
123
- #### 3.运行项目
124
- ``` sh
125
- cd mxdraw-test-vue3
126
- yarn serve
127
- ```
128
-
129
- <!-- > 选择Manually select features自定义选项
130
- ![alt](./media/create-project-init1.png)
131
-
132
- > 按空格键选择对应需要选项 选取完成后按回车键进行下一项配置
133
- ![alt](./media/create-project-init2.png)
134
-
135
- > 这里选择vue3 框架
136
- ![alt](./media/create-project-init3.png)
137
- > 这里询问的是是否使用class风格的组件语法,如果在项目中想要保持使用TypeScript的class风格的话,建议大家选择y。
138
- ![alt](./media/create-project-init4.png)
139
- > 使用Babel与TypeScript一起用于自动检测的填充
140
- ![alt](./media/create-project-init5.png)
141
- > 选择一个代码格式器配置:
142
- ![alt](./media/create-project-init6.png)
143
- > 选择校验时机
144
- ![alt](./media/create-project-init7.png)
145
- > 设置Babel,ESLint等的配置放在哪里?
146
- ![alt](./media/create-project-init8.png)
147
- > 这里选择vue3 框架
148
- ![alt](./media/create-project-init9.png) -->
149
-
150
-
151
-
152
-
153
-
154
-
155
-
156
- > 详细说明请参考[vue-cli文档指南](https://cli.vuejs.org/zh/guide/prototyping.html)
157
- >`vue`框架使用请参考[Vue.js 中文文档](https://vuejs.bootcss.com/guide/installation.html)
158
-
159
-
160
- ## 安装
161
- ### npm
28
+ ### 安装
29
+ #### npm
162
30
  ``` sh
163
31
  yarn add mxdraw 或 npm install mxdraw
164
32
  ```
165
33
 
166
- ## 用法
34
+ ### 用法
167
35
 
168
- ### 引入
36
+ #### 引入
169
37
 
170
38
  ``` javascript
171
39
  import Mx from "mxdraw"
172
40
  ```
173
41
 
174
- ### 加载
42
+ #### 加载
175
43
  > html
176
44
  ``` html
177
45
  <canvas id="mxcad">
@@ -188,7 +56,7 @@ Mx.loadCoreCode().then(()=> {
188
56
  // 创建控件对象
189
57
  Mx.MxFun.createMxObject({
190
58
  canvasId: "mxcad", // canvas元素的id
191
- drawName:"test2.dwg", // 服务器中图纸名称
59
+ cadFile"test2.dwg", // 服务器中图纸名称
192
60
  callback: (mxDraw, {
193
61
  canvas,
194
62
  canvasParent
@@ -207,9 +75,9 @@ Mx.loadCoreCode().then(()=> {
207
75
  ```
208
76
 
209
77
 
210
- ### 如何实现一个画线的功能命令?
211
- #### 1.实现画线功能
212
- 参考资料:
78
+ #### 如何实现一个画线的功能命令?
79
+ ##### 1.实现画线功能
80
+ 参考内容:
213
81
  * [MrxDbgUiPrPointClass | getPoint](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MrxDbgUiPrPointClass.html) 构建取点对象
214
82
  * [status](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/enums/MrxDbgUiPrBaseReturn.html) MrxDbgUiPrBaseReturn 表示对应状态
215
83
  * [McEdGetPointWorldDrawObjectClass | pWorldDraw](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/McEdGetPointWorldDrawObjectClass.html) 用于构建一个动态绘制回调对象
@@ -221,9 +89,9 @@ import Mx from "mxdraw"
221
89
  // 画线的函数
222
90
  function BR_Line() {
223
91
  // 构建取点对象
224
- const getPoint = new Mx.MrxDbgUiPrPointClass();
92
+ const getPoint = new Mx.MrxDbgUiPrPoint();
225
93
  // 构建动态绘制对象
226
- const worldDrawComment = new Mx.McEdGetPointWorldDrawObjectClass();
94
+ const worldDrawComment = new Mx.McEdGetPointWorldDrawObject();
227
95
  // 开始动态拖动 行为: 鼠标点击画布时只执行一次回调函数,后续点击无效
228
96
  getPoint.go((status) => {
229
97
  if (status !== 0) {
@@ -266,8 +134,8 @@ function BR_Line() {
266
134
 
267
135
 
268
136
 
269
- #### 2.注册使用命名
270
- 参考资料:
137
+ ##### 2.注册使用命名
138
+ 参考内容:
271
139
  * [MxFun.addCommand](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#addCommand) 注册命名方法
272
140
  * [MxFun.sendStringToExecute](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#sendStringToExecute) 执行命名方法
273
141
  * [MxFun.isRunningCommand](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#isRunningCommand) 检查是否有命令在运行
@@ -289,8 +157,45 @@ Mx.MxFun.sendStringToExecute("BR_Line")
289
157
 
290
158
  > 更多Api使用说明请参考[Mx模块集](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/modules.html)对应模块中的Api接口说明
291
159
 
160
+ ## Mx模块集
161
+ > 暴露出来的函数/类/对象 包括接口/枚举等Ts的类型
162
+
163
+ ### loadCoreCode 动态加载核心(初始化)
164
+ > CoreCode 这里加载了核心程序(包括three.js)以及jquery.js库 请在需要时自行调用(所有模块都需要等待CoreCode加载完成才能使用) 列如:
165
+ ``` javascript
166
+ import { loadCoreCode } from "mxdraw"
167
+ loadCoreCode().then(()=> {
168
+ console.log('CoreCode加载完成')
169
+ })
170
+ ```
171
+ ### MxFun 方法集合
172
+ > MxFun提供了核心方法, 其中最重要的两个方法就是[setMxServer](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#setMxServer)设置服务器地址
173
+ 以及 [createMxObject](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#createMxObject) 创建控制对象
174
+ * 服务器地址就是[MxDraw云图开发包](https://www.mxdraw.com/download.html) 所启动的后台服务地址...[详情](https://help.mxdraw.com/?pid=32&keywords=)
175
+
176
+ ### MxDrawObject 控件对象
177
+ > [MxFun.createMxObject](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#createMxObject) 创建的控件对象可以对canvas画布上展示的图纸进行控制修改以及添加three.js中各种组合图形等功能[详情](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDrawObject.html)
178
+
179
+ ### MxThreeJS 创建THREE图形物体对象
180
+ > [MxThreeJS](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxThreeJS.html)是根据Three.js提供的APi 创建各种常见的基础图形文字以及加载的图片/SVG等的方法集合
181
+ * 一般情况最终创建返回的都是基于THREE.Object3D的物体对象,可以通过[MxDrawObject控件对象的addObject](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDrawObject.html#addObject) 方法添加到场景中,最后通过[MxDrawObject.updateDisplay](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDrawObject.html#updateDisplay)更新显示场景,就可以将物体对象渲染到canvas画布上了。
182
+ * 当然也可以不使用MxThreeJS提供的创建物体的方式,可以用three.js自定义创建各种需要的物体图形模型。
183
+
184
+ ### McEdGetPointWorldDrawObject / MrxDbgUiPrPoint / MrxDbgUiPrBaseReturn 动态绘制
185
+ * [McEdGetPointWorldDrawObject](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/McEdGetPointWorldDrawObject.html)是动态绘制对象的类, 一个McEdGetPointWorldDrawObject实例可以使用setDraw方法设置动态的回调函数,一般情况下回调函数中会通过drawCustomEntity或者提供的其他方法绘制出需要动态绘制的部分(鼠标移动将会触发动态回调函数)
186
+ * [MrxDbgUiPrPoint](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MrxDbgUiPrPoint.html)是一个配合动态绘制的鼠标去点的类,实例化后通过go或者goWhile 方式设置鼠标点击回调事件, 通过setUserDraw方法设置动态绘制对象, 此时动态绘制对象生效,在鼠标移动时会触发其动态回调函数
187
+ * [MrxDbgUiPrBaseReturn](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MrxDbgUiPrBaseReturn.html)是MrxDbgUiPrPoint的go或者goWhile的回调参数判断点击类型的一个枚举类型。
188
+ * McEdGetPointWorldDrawObject / MrxDbgUiPrPoint 配合使用 就能够完成大部分图形动态绘制的需求,例:[如何实现一个画线的功能命令?](#%E7%94%A8%E6%B3%95)
189
+
190
+ ### MxDbEntity / McGiWorldDraw / McGiWorldDrawType 自定义对象
191
+ > 自定义对象是为了更加方便的控制一个图形物体对象创建的一个控制器, 在需要对已经绘制在画布上的图形物体进行动态改动操作时,有一系列繁琐的过程,选取对象/选取状态/生成可改动的顶点/拖动改变顶点位置/动态绘制...
192
+
193
+ > 如果遵循自定义对象的规范(实现MxDbEntity抽象类),就可以忽略这些步骤,在实现了预设行为(抽象方法)后,鼠标操作就可以完成对物体对象的顶点操作,从而改变图形物体。
292
194
 
293
195
 
196
+ * [MxDbEntity](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDbEntity.html)抽象类 通过继承的方式实现一个自定义对象
197
+ * [McGiWorldDraw](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/McGiWorldDraw.html) 是 [MxDbEntity.worldDraw](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDbEntity.html#worldDraw)抽象方法的回调对象 可以实现再鼠标拖动过程中的一些动态绘制任务
198
+ * [McGiWorldDrawType](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/McGiWorldDrawType.html) 是[McGiWorldDraw.getType](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/McGiWorldDraw.html#getType)方法返回的枚举类型表示MxDbEntity.worldDraw的绘制类型
294
199
 
295
200
 
296
201
  ## 按需引入配置
@@ -2,7 +2,7 @@
2
2
  /** @module McEdGetPointWorldDrawObject*/
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  var store_1 = require("../store/store");
5
- var _McEdGetPointWorldDraw;
5
+ //let _McEdGetPointWorldDraw: McEdGetPointWorldDrawObjectClass
6
6
  /**
7
7
  * McEdGetPointWorldDrawObject 用于构建一个动态绘制回调对象
8
8
  * @example ```typescript
@@ -11,10 +11,11 @@ var _McEdGetPointWorldDraw;
11
11
  */
12
12
  var McEdGetPointWorldDrawObject = /** @class */ (function () {
13
13
  function McEdGetPointWorldDrawObject() {
14
- _McEdGetPointWorldDraw = new (store_1.default.state.MxFun.getMxJigCmdManager().McEdGetPointWorldDrawObjectClass())();
14
+ var _this = this;
15
+ this._McEdGetPointWorldDraw = new (store_1.default.state.MxFun.getMxJigCmdManager().McEdGetPointWorldDrawObjectClass())();
15
16
  /** @internal */
16
17
  this._get = function () {
17
- return _McEdGetPointWorldDraw;
18
+ return _this._McEdGetPointWorldDraw;
18
19
  };
19
20
  }
20
21
  /**
@@ -29,7 +30,7 @@ var McEdGetPointWorldDrawObject = /** @class */ (function () {
29
30
  *
30
31
  */
31
32
  McEdGetPointWorldDrawObject.prototype.drawCircle = function (cen, dRadius) {
32
- return _McEdGetPointWorldDraw.drawCircle(cen, dRadius);
33
+ return this._McEdGetPointWorldDraw.drawCircle(cen, dRadius);
33
34
  };
34
35
  /**
35
36
  * 绘制直线
@@ -43,7 +44,7 @@ var McEdGetPointWorldDrawObject = /** @class */ (function () {
43
44
  *
44
45
  */
45
46
  McEdGetPointWorldDrawObject.prototype.drawLine = function (pt1, pt2) {
46
- return _McEdGetPointWorldDraw.drawLine(pt1, pt2);
47
+ return this._McEdGetPointWorldDraw.drawLine(pt1, pt2);
47
48
  };
48
49
  /**
49
50
  * 绘制一个Three.js对象.
@@ -56,7 +57,7 @@ var McEdGetPointWorldDrawObject = /** @class */ (function () {
56
57
  *
57
58
  */
58
59
  McEdGetPointWorldDrawObject.prototype.drawEntity = function (ent) {
59
- return _McEdGetPointWorldDraw.drawEntity(ent);
60
+ return this._McEdGetPointWorldDraw.drawEntity(ent);
60
61
  };
61
62
  /**
62
63
  * 绘制一个文档对象
@@ -72,7 +73,7 @@ var McEdGetPointWorldDrawObject = /** @class */ (function () {
72
73
  *
73
74
  */
74
75
  McEdGetPointWorldDrawObject.prototype.drawText = function (sText, iSize, dAngle, pt) {
75
- return _McEdGetPointWorldDraw.drawText(sText, iSize, dAngle, pt);
76
+ return this._McEdGetPointWorldDraw.drawText(sText, iSize, dAngle, pt);
76
77
  };
77
78
  /**
78
79
  * 设置动态绘制回调函数。
@@ -86,7 +87,7 @@ var McEdGetPointWorldDrawObject = /** @class */ (function () {
86
87
  * ```
87
88
  */
88
89
  McEdGetPointWorldDrawObject.prototype.setDraw = function (call) {
89
- return _McEdGetPointWorldDraw.setDraw(call);
90
+ return this._McEdGetPointWorldDraw.setDraw(call);
90
91
  };
91
92
  /**
92
93
  * 设置绘制对象颜色.
@@ -98,7 +99,7 @@ var McEdGetPointWorldDrawObject = /** @class */ (function () {
98
99
  * ```
99
100
  */
100
101
  McEdGetPointWorldDrawObject.prototype.setColor = function (iColor) {
101
- return _McEdGetPointWorldDraw.setColor(iColor);
102
+ return this._McEdGetPointWorldDraw.setColor(iColor);
102
103
  };
103
104
  /**
104
105
  * 得到绘制对象颜色.
@@ -109,9 +110,19 @@ var McEdGetPointWorldDrawObject = /** @class */ (function () {
109
110
  * ```
110
111
  */
111
112
  McEdGetPointWorldDrawObject.prototype.getColor = function () {
112
- return _McEdGetPointWorldDraw.getColor();
113
+ return this._McEdGetPointWorldDraw.getColor();
114
+ };
115
+ /**
116
+ * 动态绘制一个自定义实体
117
+ * @returns
118
+ * @example
119
+ * ``` typescript
120
+ *
121
+ * ```
122
+ */
123
+ McEdGetPointWorldDrawObject.prototype.drawCustomEntity = function (ent) {
124
+ return this._McEdGetPointWorldDraw.drawCustomEntity(ent);
113
125
  };
114
126
  return McEdGetPointWorldDrawObject;
115
127
  }());
116
128
  exports.default = McEdGetPointWorldDrawObject;
117
- //# sourceMappingURL=McEdGetPointWorldDrawObjectClass.js.map
@@ -3,4 +3,3 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  var McEdGetPointWorldDrawObjectClass_1 = require("./McEdGetPointWorldDrawObjectClass");
5
5
  exports.default = McEdGetPointWorldDrawObjectClass_1.default;
6
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /** @module McGiWorldDrawType*/
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /**
5
+ * 动态绘制类型
6
+ * @example ```typescript
7
+
8
+ * ```
9
+ */
10
+ var McGiWorldDrawType;
11
+ (function (McGiWorldDrawType) {
12
+ /** 正常绘制 */
13
+ McGiWorldDrawType[McGiWorldDrawType["kWorldDraw"] = 1] = "kWorldDraw";
14
+ /** 动态拖动的绘制 */
15
+ McGiWorldDrawType[McGiWorldDrawType["kDynDragDraw"] = 2] = "kDynDragDraw";
16
+ /** 对选择高亮的绘制 */
17
+ McGiWorldDrawType[McGiWorldDrawType["kSelectDraw"] = 3] = "kSelectDraw";
18
+ })(McGiWorldDrawType || (McGiWorldDrawType = {}));
19
+ exports.default = McGiWorldDrawType;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var McGiWorldDrawType_1 = require("./McGiWorldDrawType");
4
+ exports.default = McGiWorldDrawType_1.default;
@@ -29,4 +29,3 @@ var MrxDbgUiPrBaseReturn;
29
29
  MrxDbgUiPrBaseReturn[MrxDbgUiPrBaseReturn["kKeyWord"] = 1] = "kKeyWord";
30
30
  })(MrxDbgUiPrBaseReturn || (MrxDbgUiPrBaseReturn = {}));
31
31
  exports.default = MrxDbgUiPrBaseReturn;
32
- //# sourceMappingURL=MrxDbgUiPrBaseReturn.js.map
@@ -3,4 +3,3 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  var MrxDbgUiPrBaseReturn_1 = require("./MrxDbgUiPrBaseReturn");
5
5
  exports.default = MrxDbgUiPrBaseReturn_1.default;
6
- //# sourceMappingURL=index.js.map
@@ -131,4 +131,3 @@ var MrxDbgUiPrPoint = /** @class */ (function () {
131
131
  return MrxDbgUiPrPoint;
132
132
  }());
133
133
  exports.default = MrxDbgUiPrPoint;
134
- //# sourceMappingURL=MrxDbgUiPrPointClass.js.map
@@ -3,4 +3,3 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  var MrxDbgUiPrPointClass_1 = require("./MrxDbgUiPrPointClass");
5
5
  exports.default = MrxDbgUiPrPointClass_1.default;
6
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ /** @module MxDbEntity*/
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ var MxType_1 = require("../MxType");
5
+ var store_1 = require("../store/store");
6
+ /**
7
+ * MxDbEntity 用于构建一个自定义对象的抽象类(该类无法实例化 请通过继承的方式对其抽象方法进行实现)
8
+ * @description MxDbEntity 属于 abstract class(抽象类) 主要用途是通过继承这个类实现一个用于动态绘制的回调对象
9
+ * 继承实现这个类必须实现的抽象方法:(方法名称前有'Abstract'标签就是必须实现的方法)
10
+ * @example ```typescript
11
+ * import THREE from "three"
12
+ * import { McGiWorldDraw, MxDbEntity } from "mxdraw"
13
+ * class MxLineEntity extends MxDbEntity {
14
+ * constructor() {
15
+ * super(); // 在派生类的构造函数中必须调用 super()
16
+ * }
17
+ * private pt1: THREE.Vector3 = new THREE.Vector3();
18
+ * private pt2: THREE.Vector3 = new THREE.Vector3();
19
+ * worldDraw(pWorldDraw: McGiWorldDraw) {
20
+ * pWorldDraw.drawLine(this.pt1,this.pt2);
21
+ * }
22
+ * ...
23
+ * }
24
+ * ```
25
+ */
26
+ var MxDbEntity = /** @class */ (function () {
27
+ function MxDbEntity() {
28
+ this.iColor = 0xffffff;
29
+ }
30
+ /**
31
+ * 自定义实体的坐标变换.
32
+ * @param
33
+ * @returns void
34
+ * @example
35
+ * }
36
+ * ```
37
+ */
38
+ MxDbEntity.prototype.transformBy = function (mat) {
39
+ };
40
+ MxDbEntity.prototype.getImp = function () {
41
+ var myThis = this;
42
+ var imp = myThis['MxDbEntityImp'];
43
+ return imp;
44
+ };
45
+ /**
46
+ * 更新显示
47
+ * @param
48
+ * @returns boolean
49
+ * @example
50
+ * ``` typescript
51
+ *
52
+ * ```
53
+ */
54
+ MxDbEntity.prototype.setNeedUpdateDisplay = function (isImmediate) {
55
+ var imp = this.getImp();
56
+ if (imp) {
57
+ if (isImmediate) {
58
+ imp.upDisplay();
59
+ }
60
+ else {
61
+ imp.setDirtyDisplay(true);
62
+ }
63
+ return true;
64
+ }
65
+ else {
66
+ return false;
67
+ }
68
+ };
69
+ /**
70
+ * 得到对象的id.
71
+ * @param
72
+ * @returns number
73
+ * @example
74
+ * ``` typescript
75
+ *
76
+ * ```
77
+ */
78
+ MxDbEntity.prototype.objectId = function () {
79
+ var imp = this.getImp();
80
+ if (imp) {
81
+ return imp.objectId();
82
+ }
83
+ else {
84
+ return 0;
85
+ }
86
+ };
87
+ /**
88
+ * 删除对象
89
+ * @param
90
+ * @returns boolean
91
+ * @example
92
+ * ``` typescript
93
+ *
94
+ * ```
95
+ */
96
+ MxDbEntity.prototype.erase = function () {
97
+ var imp = this.getImp();
98
+ if (imp) {
99
+ return imp.erase();
100
+ }
101
+ else {
102
+ return false;
103
+ }
104
+ };
105
+ /**
106
+ * 设置颜色
107
+ * @param
108
+ * @returns boolean
109
+ * @example
110
+ * ``` typescript
111
+ *
112
+ * ```
113
+ */
114
+ MxDbEntity.prototype.setColor = function (iColor) {
115
+ this.iColor = iColor;
116
+ };
117
+ /**
118
+ * 得到颜色
119
+ * @param
120
+ * @returns boolean
121
+ * @example
122
+ * ``` typescript
123
+ *
124
+ * ```
125
+ */
126
+ MxDbEntity.prototype.getColor = function () {
127
+ return this.iColor;
128
+ };
129
+ /**
130
+ * 复制对象。
131
+ * @param
132
+ * @returns MxDbEntity
133
+ * @example
134
+ * ``` typescript
135
+ *
136
+ * ```
137
+ */
138
+ MxDbEntity.prototype.clone = function (type) {
139
+ var ret = this.create();
140
+ var objData = { type: type ? type : MxType_1.default.MxCloneType.kClone };
141
+ this.dwgOut(objData);
142
+ ret.dwgIn(objData);
143
+ return ret;
144
+ };
145
+ /**
146
+ * 自定义对象内部数据输入同步(实现dwgIn抽象方法 必须在实现中调用 this.onDwgIn())
147
+ * @param obj dwgIn抽象方法的回调数据
148
+ */
149
+ MxDbEntity.prototype.onDwgIn = function (obj) {
150
+ this.iColor = obj['iColor'];
151
+ };
152
+ /**
153
+ * 自定义对象内部数据输出同步(实现dwgIn抽象方法 必须在实现中调用 this.onDwgIn()
154
+ * @param obj dwgOut抽象方法的回调数据
155
+ */
156
+ MxDbEntity.prototype.onDwgOut = function (obj) {
157
+ obj['iColor'] = this.iColor;
158
+ };
159
+ /**
160
+ * 初始自定义对象的类型信息.
161
+ * @param
162
+ * @returns
163
+ * @example
164
+ * ``` typescript
165
+ *
166
+ * ```
167
+ */
168
+ MxDbEntity.prototype.rxInit = function () {
169
+ ;
170
+ store_1.default.state.MxFun.initMxDbEntityType(this);
171
+ };
172
+ return MxDbEntity;
173
+ }());
174
+ exports.default = MxDbEntity;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /** @module McEdGetPointWorldDrawObject*/
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ var MxDbEntity_1 = require("./MxDbEntity");
5
+ exports.default = MxDbEntity_1.default;