@manycore/custom-sdk 1.0.1-rc.5 → 1.0.1-rc.6

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 (3) hide show
  1. package/index.d.ts +304 -66
  2. package/index.js +15 -15
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -2,40 +2,69 @@ import { ELineType as ELineType_2 } from '@manycore/custom-miniapp-sdk';
2
2
  import { IExportModelData } from '@manycore/custom-miniapp-sdk';
3
3
  import { Number3 } from '@manycore/custom-miniapp-sdk';
4
4
 
5
+ /**
6
+ * 对接2.0主应用
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const application = new Application();
11
+ * ```
12
+ */
5
13
  export declare class Application {
6
14
  constructor();
7
15
  /**
8
- * 启动当前应用
16
+ * 启动对接2.0应用
17
+ *
18
+ * 当前,在启动对接2.0应用时,默认会自动把酷家乐主工具当中,选中的模型,加载至对接2.0场景当中。
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * await application.start();
23
+ * ```
9
24
  */
10
25
  start(): Promise<void>;
11
26
  /**
12
- * 初始化语言类型
27
+ * 初始化语言类型(默认不需要处理)
28
+ *
29
+ * 如果你有多语言的诉求,可能会用到此功能
30
+ *
13
31
  * @param lang
14
32
  * @param resource
15
33
  */
16
34
  initLange(lang?: string, resource?: {}): void;
35
+ /**
36
+ * 停止对接2.0应用
37
+ *
38
+ * 当停用时,会让主工具当中,更新模型最新的锁定状态。
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * await application.stop();
43
+ * ```
44
+ */
17
45
  stop(): Promise<void>;
46
+ /**
47
+ *
48
+ * 对接2.0中,获取相关的service
49
+ *
50
+ * 如果需要调用此方法,需要确保`Application`调用过`start`方法
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const s = application.getService(FittingDesignService);
55
+ * ```
56
+ *
57
+ * @param serv
58
+ */
18
59
  getService<T extends BaseService>(serv: {
19
60
  new (): T;
20
61
  }): T;
21
62
  }
22
63
 
23
- declare class BaseService {
24
- }
25
-
26
64
  /**
27
- * 配件附加参数数据类型
65
+ * @private
28
66
  */
29
- export declare enum EFittingParametersType {
30
- /**
31
- * 字符串
32
- */
33
- string = "string",
34
- double = "double",
35
- long = "long",
36
- int = "int",
37
- float2 = "float2",
38
- float3 = "float3"
67
+ declare class BaseService {
39
68
  }
40
69
 
41
70
  /**
@@ -79,7 +108,7 @@ export declare enum EIntersectedCreatedType {
79
108
  }
80
109
 
81
110
  /**
82
- * 交接面、交接体数据类型
111
+ * 交接数据的数据类型
83
112
  */
84
113
  export declare enum EIntersectedType {
85
114
  /**
@@ -92,6 +121,9 @@ export declare enum EIntersectedType {
92
121
  FACE = "2"
93
122
  }
94
123
 
124
+ /**
125
+ * 语言
126
+ */
95
127
  export declare enum ELanguage {
96
128
  ZH_CN = "zh_CN",
97
129
  EN_US = "en_US",
@@ -121,6 +153,7 @@ export declare enum ELineType {
121
153
  CIRCLE_ARC = 1,
122
154
  /**
123
155
  * 椭圆
156
+ * 当前代码中,暂不支持
124
157
  */
125
158
  ELLIPSE_ARC = 3
126
159
  }
@@ -147,6 +180,9 @@ export declare enum EPointType {
147
180
  CUT_CIRCLE = 3
148
181
  }
149
182
 
183
+ /**
184
+ * 处理选中的内容
185
+ */
150
186
  export declare enum ESelectedType {
151
187
  /**
152
188
  * 未选中模型
@@ -192,35 +228,73 @@ export declare enum EToolType {
192
228
  DOOR_WINDOW_COPY = "DW_COPY"
193
229
  }
194
230
 
231
+ /**
232
+ * 孔槽方案相关数据的管理
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * const fittingDesignService = application.getService(FittingDesignService);
237
+ * ```
238
+ */
195
239
  export declare class FittingDesignService extends BaseService {
196
240
  /**
197
241
  * 设置孔槽方案自动保存
198
242
  *
243
+ * 当你调用`appendFittingDesign`时,如果开启自动保存,就会将当前数据与之前数据作合并,并保存至后台。如果不开启,那只会临时暂存在状态中,后续调用`saveDesign`时,才会保存至后端。
244
+ *
245
+ * @default true 自动保存
246
+ *
247
+ * @example
248
+ * ```typescript
249
+ * fittingDesignService.toggleAutoSave(false);
250
+ * ```
251
+ *
199
252
  * @param autoSave 默认开启自动保存
200
253
  */
201
254
  toggleAutoSave(autoSave?: boolean): void;
202
255
  /**
203
- * 是否开启了自动保存功能
256
+ * 获取当前是否开启了自动保存
257
+ *
258
+ * @example
259
+ * ```typescript
260
+ * fittingDesignService.isAutoSave();
261
+ * ```
204
262
  */
205
263
  isAutoSave(): boolean;
206
264
  /**
207
265
  * 获取孔/槽方案数据
208
- * @param modelId
266
+ *
267
+ * @example
268
+ * ```typescript
269
+ * fittingDesignService.getFittingDesignData();
270
+ * ```
271
+ *
272
+ * @param modelId 方案模型的ID,当没传时,就是获取场景中,正在预览的模型ID的方案数据
209
273
  */
210
- getFittingDesignDesign(modelId?: string): Promise<IFittingDesignData | null>;
274
+ getFittingDesignData(modelId?: string): Promise<IFittingDesignData | null>;
211
275
  /**
212
276
  *
213
- * 孔槽方案数据
277
+ * 获取某个元件关联的孔/槽方案数据(仅作用于当前正在处理的模型)
214
278
  *
215
- * @param modelid 模型ID,如果为空时,则表示传递的为查询当前模型的数据
279
+ * @example
280
+ * ```typescript
281
+ * // 获取当前正在编辑的方案信息
282
+ * fittingDesignService.getConnectedFittingDesign();
283
+ *
284
+ * // 获取某块板上关联的孔/槽数据
285
+ * fittingDesignService.getConnectedFittingDesign('id');
286
+ *
287
+ * ```
288
+ *
289
+ * @param modelid 模型ID,如果为空时,则表示传递的为查询当前正在编辑的模型的方案数据
216
290
  * @param casbin 是否为五金,当modelid为五金的id时,需要为true
217
291
  */
218
292
  getConnectedFittingDesign(modelid?: string, casbin?: boolean): Promise<IFittingDesignData | null>;
219
293
  /**
220
- * 简单的路径验证
294
+ * 五金槽路径验证API(非稳定API,暂不建议使用)
221
295
  *
222
- * @param path
223
- * @param linkModelId
296
+ * @param path 待验证的路径
297
+ * @param linkModelId 关联的模型ID
224
298
  */
225
299
  validateFittingDesign(path: IHardwareGrooveData, linkModelId: string): IFittingDesignValidateResult;
226
300
  /**
@@ -228,27 +302,56 @@ export declare class FittingDesignService extends BaseService {
228
302
  *
229
303
  * 会自动merge数据,但同一块板上,会进行覆盖
230
304
  *
231
- * @param design
305
+ * > 如果没有开启自动保存,调用此API只影响视图展示,不会立即存储至后端。
306
+ *
307
+ * @example
308
+ * ```typescript
309
+ * await fittingDesignService.save({
310
+ * ...
311
+ * })
312
+ * ```
313
+ *
314
+ * @param design 孔/槽方案信息
232
315
  * @param option { timeout, save} 调用超时,save 是否立即保存至后端,默认为true
233
316
  */
234
317
  appendFittingDesign(design: Partial<IFittingDesignData>, option?: {
318
+ /**
319
+ * 超时时间(只有在往后端保存时,才有效)
320
+ */
235
321
  timeout?: number;
322
+ /**
323
+ * 是否强制立即保存(即覆盖是否自动保存参数)
324
+ */
236
325
  save?: boolean;
237
326
  }): Promise<void>;
238
327
  /**
239
328
  * 保存孔/槽数据至方案
240
- * 如果design不传,即表示将分步保存数据保存至后端
329
+ * 如果design不传,即表示将分步保存数据存储至后端
330
+ *
331
+ * @example
332
+ * ```typescript
333
+ * await fittingDesignService.saveDesign({
334
+ * ...
335
+ * })
336
+ * ```
241
337
  *
242
- * @param design
338
+ * @param design 需要保存的方案信息
243
339
  * @param option
244
340
  */
245
341
  saveDesign(design?: IFittingDesignData, option?: {
246
342
  timeout?: number;
247
343
  }): Promise<void>;
248
344
  /**
249
- * 清空当前孔槽方案
345
+ * 删除当前孔槽方案(解锁主工具模型)
250
346
  *
251
- * @param timeout
347
+ * 主工具当中,模型的锁定与解锁,与当前模型是不存在孔槽方案有关
348
+ * 默认情况下,option不传时,清空当前正在编辑的模型的孔槽方案,当传入modelId时,表示清空指定模型的孔槽方案数据
349
+ *
350
+ * * @example
351
+ * ```typescript
352
+ * await fittingDesignService.clearDesign();
353
+ * ```
354
+ * @param options
252
355
  */
253
356
  clearDesign(options?: IBaseOptions): Promise<void>;
254
357
  }
@@ -258,15 +361,15 @@ export declare class FittingDesignService extends BaseService {
258
361
  */
259
362
  export declare interface IBaseFittingData {
260
363
  /**
261
- * 孔槽的id
364
+ * 开发者自己生成的孔、槽信息标识ID(自行区分)
262
365
  */
263
366
  id: string;
264
367
  /**
265
- * 类型
368
+ * 当前数据类型
266
369
  */
267
370
  fittingType: EFittingType;
268
371
  /**
269
- * 附加通用参数
372
+ * 附加通用参数,开发者可以自己存储一些数据
270
373
  */
271
374
  params?: IBaseFittingParameters[];
272
375
  }
@@ -311,33 +414,40 @@ export declare class FittingDesignService extends BaseService {
311
414
  end: Number3;
312
415
  }
313
416
 
417
+ /**
418
+ * 交接信息
419
+ */
314
420
  export declare interface IBaseIntersected {
315
421
  /**
316
- * 板面
422
+ * 当前交接信息所处的板面信息
317
423
  */
318
424
  plankFaceId: number;
319
425
  /**
320
- * 所有点的信息
426
+ * 当前交接信息所有顶点的信息
427
+ * * 如果为交接面,length为4
428
+ * * 如果为交接体,length为8
321
429
  */
322
430
  points: Number3[];
323
431
  /**
324
- * 关联的模型ID
432
+ * 当前交接信息产生的元件ID
325
433
  */
326
434
  linkedModelId: string;
327
435
  /**
328
- * 关联的父级模型ID
436
+ * 交接信息产生元件的父母ID
329
437
  */
330
438
  linkedParentModelId: string;
331
439
  /**
332
- * 交接类型
440
+ * 交接数据的数据类型
333
441
  */
334
442
  '@type': EIntersectedType;
335
443
  /**
444
+ * @ignore
336
445
  * 交接体的shell数据
337
446
  */
338
447
  shell?: string;
339
448
  /**
340
449
  * 交接体板面是否需要开槽
450
+ * 当五金与板面产生的交接信息,为板面的部分,则为true
341
451
  */
342
452
  needGroove?: boolean;
343
453
  }
@@ -347,7 +457,8 @@ export declare class FittingDesignService extends BaseService {
347
457
  */
348
458
  export declare interface IBaseOptions {
349
459
  /**
350
- * 超时时间
460
+ * 最长等待时间(以ms为单位)
461
+ * @default 500000
351
462
  */
352
463
  timeout?: number;
353
464
  /**
@@ -468,25 +579,31 @@ export declare class FittingDesignService extends BaseService {
468
579
  diameter: number;
469
580
  }
470
581
 
582
+ /**
583
+ * 一组交接信息
584
+ */
471
585
  export declare interface IIntersectedGroup {
472
586
  /**
473
- * 交接面ID
587
+ * 交接信息的唯一标识ID
474
588
  */
475
589
  id: string;
476
590
  /**
477
- * 交接信息产生的方式
591
+ * 交接信息的产生来源
478
592
  */
479
593
  intersectType: EIntersectedCreatedType;
480
594
  /**
481
- * 交接面信息
595
+ * 关联元素产生的多组交接信息
482
596
  */
483
597
  intersecteds: IBaseIntersected[];
484
598
  }
485
599
 
486
600
  /**
487
- * 交接面信息
601
+ * 交接信息
488
602
  */
489
603
  export declare interface IIntersectedResult {
604
+ /**
605
+ * 交接信息集合
606
+ */
490
607
  intersectedGroups: IIntersectedGroup[];
491
608
  }
492
609
 
@@ -518,9 +635,22 @@ export declare class FittingDesignService extends BaseService {
518
635
  radius: number;
519
636
  }
520
637
 
638
+ /**
639
+ * 获取交接信息
640
+ *
641
+ * @example
642
+ * ```typescript
643
+ * const intersectedService = application.getService(IntersectedService);
644
+ * ```
645
+ */
521
646
  export declare class IntersectedService extends BaseService {
522
647
  /**
523
- * 是否显示交接面信息
648
+ * 是否展示交接信息
649
+ *
650
+ * @example
651
+ * ```typescript
652
+ * intersectedService.toggleModelViewIntersected(true);
653
+ * ```
524
654
  *
525
655
  * @param flag
526
656
  */
@@ -528,17 +658,19 @@ export declare class FittingDesignService extends BaseService {
528
658
  /**
529
659
  * 切换展示的交接面、交接体坐标
530
660
  *
661
+ * @example
662
+ * ```typescript
663
+ * intersectedService.toggleModelViewedIntersected({
664
+ * references: true,
665
+ * plankFaceIds: [1],
666
+ * });
667
+ * ```
668
+ *
531
669
  * @param option
532
670
  */
533
671
  toggleModelViewedIntersected(option?: IToggleIntersectedViewOption): void;
534
672
  }
535
673
 
536
- export declare interface IPoint3d {
537
- x: number;
538
- y: number;
539
- z: number;
540
- }
541
-
542
674
  /**
543
675
  * 点的基本类型
544
676
  */
@@ -632,13 +764,35 @@ export declare class FittingDesignService extends BaseService {
632
764
  roomName?: string;
633
765
  }
634
766
 
767
+ /**
768
+ * 当前选中的数据
769
+ */
635
770
  export declare interface ISelected {
771
+ /**
772
+ * 选中的数据内容
773
+ */
636
774
  data: IExportModelData[] | IHardwareData[];
775
+ /**
776
+ * 选中的数据类型
777
+ */
637
778
  type: ESelectedType;
638
779
  }
639
780
 
640
781
  /**
641
- * 处理场景当中
782
+ * 场景中,模型的颜色配置能力
783
+ *
784
+ * @example
785
+ * ```json
786
+ * {
787
+ * // 交接页数据信息
788
+ * intersectedColor: 0xff4500,
789
+ * // 交接体颜色
790
+ * intersectedBodyColor: 0xff00ff,
791
+ * holeColor: 0x00ff00,
792
+ * grooveColor: 0x1e90ff,
793
+ * }
794
+ * ```
795
+ *
642
796
  */
643
797
  export declare interface ISettingColor {
644
798
  /**
@@ -667,12 +821,22 @@ export declare class FittingDesignService extends BaseService {
667
821
  grooveColor: number;
668
822
  }
669
823
 
824
+ /**
825
+ * 展示交接信息时的筛选行为
826
+ */
670
827
  export declare interface IToggleIntersectedViewOption {
671
828
  /**
672
- * 是否展示
673
- * 默认为false
829
+ * 切换展示交接信息数据
830
+ *
831
+ * * `true` 显示第一组交接数据
832
+ * * `false`: 显示第二组交接数据
833
+ *
834
+ * @default false
674
835
  */
675
836
  references?: boolean;
837
+ /**
838
+ * 根据板面信息来筛选展示内容,null 表示空板面
839
+ */
676
840
  plankFaceIds?: Array<number | null>;
677
841
  }
678
842
 
@@ -757,17 +921,53 @@ export declare class FittingDesignService extends BaseService {
757
921
  pageNum?: number;
758
922
  }
759
923
 
924
+ /**
925
+ * 主要提供了获取当前模型的 JSON 输出数据,以及当前模型的交接信息的功能。
926
+ *
927
+ * @example
928
+ * ```typescript
929
+ * const modelService = application.getService(ModelService);
930
+ * ```
931
+ */
760
932
  export declare class ModelService extends BaseService {
761
933
  /**
762
- * 获取当前整个模型数据信息
934
+ * 开发者,通常需要来获取某个模型的 JSON 数据,所以需要用此 API。当前 API 获取 JSON 数据,主要是拿的是当前正在编辑的模型的 JSON 数据。
935
+ * 如果传入modelId,则表示获取其他模型的JSON输出数据。
936
+ *
937
+ * 底层其实是通过`servkit`服务实现的。使用的是`MiniAppParamModelJsonDataService`服务。
938
+ *
939
+ * 使用servkit实现示例如下:
940
+ *
941
+ * @example
942
+ * ```typescript
943
+ * import { MiniAppParamModelJsonDataService } from '@manycore/custom-miniapp-sdk';
944
+ * import { sappSDK } from 'servkit';
945
+ *
946
+ * const service = sappSDK.getServiceUnsafe(MiniAppParamModelJsonDataService);
763
947
  *
764
- * @param timeout
948
+ * const json = await service.getModelJsonDataByModelId('请输入模型ID');
949
+ * ```
950
+ *
951
+ * > 以上 API 暂不建议在非对接 2.0 环境下使用,主要是与孔/槽方案数据存在关联关系。
952
+ > > 替代的 service 为`CustomDesignExportService`,将会在 9 月底最新的`@manycore/custom-miniapp-sdk`中提供。
953
+ *
954
+ * @example
955
+ * ```typescript
956
+ * await modelService.getParamData();
957
+ * ```
958
+ *
959
+ * @param options
765
960
  */
766
961
  getParamData(options?: IBaseOptions): Promise<any>;
767
962
  /**
768
- * 获取交接面信息
963
+ * 获取模型的交接数据
964
+ *
965
+ * @example
966
+ * ```typescript
967
+ * await modelService.getParamData();
968
+ * ```
769
969
  *
770
- * @param timeout
970
+ * @param options
771
971
  */
772
972
  getParamIntersected(options?: IBaseOptions): Promise<IIntersectedResult>;
773
973
  /**
@@ -777,56 +977,94 @@ export declare class FittingDesignService extends BaseService {
777
977
  getTopParamModels(options?: ITopParamModelListOption): Promise<ITopParamModelDataResponse>;
778
978
  }
779
979
 
980
+ /**
981
+ * 主要是用来与场景交互的,监听当前选中的对象, 获取选中的内容
982
+ *
983
+ * @example
984
+ * ```typescript
985
+ * const viewerSelectionService = application.getService(ModelViewerSelectionService);
986
+ * ```
987
+ */
780
988
  export declare class ModelViewerSelectionService extends BaseService {
781
989
  constructor();
782
990
  /**
783
- * 获取当前选中模型
991
+ * 获取当前选中的数据
784
992
  */
785
993
  getSelected(): ISelected;
786
994
  /**
995
+ * @ignore
787
996
  * 设置当前选中内容
788
997
  */
789
998
  select(selected: any[]): void;
790
999
  /**
791
- * 取消选中所有内容
1000
+ * 取消场景当中选中内容
792
1001
  */
793
1002
  unSelect(): void;
1003
+ /**
1004
+ * @ignore
1005
+ */
794
1006
  private onSelectedChanged;
1007
+ /**
1008
+ * 监听当前选中内容
1009
+ * @param fn
1010
+ */
795
1011
  on(fn: (param: ISelected) => any): void;
1012
+ /**
1013
+ * 取消监听选中变化
1014
+ * @param fn
1015
+ */
796
1016
  off(fn?: (param: ISelected) => any): void;
1017
+ /**
1018
+ * 监听当前选中的内容(触发一次后自动取消)
1019
+ * @param fn
1020
+ */
797
1021
  once(fn: (param: ISelected) => any): void;
1022
+ /**
1023
+ * @ignore
1024
+ */
798
1025
  __onDestroy(): void;
799
1026
  }
800
1027
 
801
1028
  /**
802
- * 模型展示的服务
1029
+ * 主要提供了模型展示的控制能力:重置视角,边框,半透明,以及展示颜色配置
1030
+ *
1031
+ * @example
1032
+ * ```typescript
1033
+ * const modelViewerService = application.getService(ModelViewerService);
1034
+ * ```
803
1035
  */
804
1036
  export declare class ModelViewerService extends BaseService {
805
1037
  /**
806
- * 查看当前选中的模型
1038
+ * 将工具方案中,选中的模型,加载到对接 2.0 小程序中展示
1039
+ *
1040
+ * 此方法,会成Application.start方法中,默认执行
1041
+ *
807
1042
  */
808
1043
  viewSelected(): Promise<void>;
809
1044
  /**
810
- * 通过模型的ID来显示某个模型
1045
+ * 指定模型的 ID,将当前模型加载到工具方案当中
1046
+ *
811
1047
  * @param id 模型ID
812
1048
  */
813
1049
  viewModelById(id: string | string[]): Promise<void>;
814
1050
  /**
815
- * 重置视角
1051
+ * 重置视图展示视角
816
1052
  */
817
1053
  resetPerspective(): void;
818
1054
  /**
819
- * 模型渲染是都显示边框
1055
+ * 模型渲染是否显示边框
820
1056
  * @param flag
821
1057
  */
822
1058
  toggleModelBorder(flag: boolean): void;
823
1059
  /**
824
- * 模型渲染是否半透明
1060
+ * 模型渲染是否为半透明
825
1061
  * @param flag
826
1062
  */
827
1063
  toggleModelTransparent(flag: boolean): void;
828
1064
  /**
829
- * 配置场景展示界面
1065
+ * 设置交接信息展示颜色
1066
+ *
1067
+ * > `settings`,需要在application.start()后,立即被设置,否则展示会读取至之前配置信息,展示可能存在异常。
830
1068
  */
831
1069
  setting(settings: Partial<ISettingColor>): void;
832
1070
  }