@manycore/custom-sdk 1.13.0 → 1.13.4-beta.0

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 +437 -203
  2. package/index.js +35 -21
  3. package/package.json +5 -5
package/index.d.ts CHANGED
@@ -1,10 +1,7 @@
1
- import { ELineType as ELineType_2 } from '@manycore/custom-miniapp-sdk';
2
1
  import { IExportModelData } from '@manycore/custom-miniapp-sdk';
3
2
  import { IParamModelPhotoResponse } from '@manycore/custom-miniapp-sdk';
4
3
  import { IServClientService } from 'servkit';
5
- import { Number2 } from '@manycore/custom-miniapp-sdk';
6
- import { Number3 } from '@manycore/custom-miniapp-sdk';
7
- import { PlankArea } from '@qunhe/miniapp-model-viewer-core/src/model/base/plankArea';
4
+ import { Number2 as Number2_2 } from '@manycore/custom-miniapp-sdk';
8
5
  import { ServService } from 'servkit';
9
6
 
10
7
  declare interface AMap<K, V> {
@@ -29,6 +26,7 @@ export declare class Application {
29
26
  private serviceMap;
30
27
  private sappSDK;
31
28
  constructor();
29
+ private startOnApiCalledEvent;
32
30
  /**
33
31
  * 判断当前是否在定制小程序下运行
34
32
  */
@@ -182,6 +180,24 @@ export declare class CustomModelService extends BaseService {
182
180
  }): Promise<void>;
183
181
  }
184
182
 
183
+ /**
184
+ * 自定议字段枚举类型
185
+ */
186
+ declare enum EBzPropertyType {
187
+ /**
188
+ * 数字类型
189
+ */
190
+ number = "number",
191
+ /**
192
+ * 字符串类型
193
+ */
194
+ string = "string",
195
+ /**
196
+ * boolean类型
197
+ */
198
+ boolean = "boolean"
199
+ }
200
+
185
201
  /**
186
202
  * 相机展示模式
187
203
  */
@@ -240,6 +256,26 @@ declare enum EClockWise {
240
256
  FALSE = "false"
241
257
  }
242
258
 
259
+ /**
260
+ * 定制模型类型
261
+ */
262
+ declare enum ECustomModelType {
263
+ /** 实体模型 */
264
+ PARAM_ENTITY = 1,
265
+ /** 家具模型,3d模型文件 */
266
+ PARAM_FURNITURE = 2,
267
+ /** 基元模型,需要计算mesh */
268
+ PARAM_PRIMITIVE = 3,
269
+ /** 虚拟模型 */
270
+ PARAM_VIRTUAL = 4,
271
+ /** 参数化组合:即在设计方案当中,选中多个模型,组合之后的结果 */
272
+ PARAM_ASSEMBLY = 5,
273
+ /**
274
+ * 参数化组合:在参数化编辑器中,对多个模型进行组合操作
275
+ */
276
+ TEMPLATE_ASSEMBLY = 6
277
+ }
278
+
243
279
  /**
244
280
  * 交互模式
245
281
  */
@@ -315,7 +351,7 @@ export declare enum EFittingType {
315
351
  /**
316
352
  * 交接面信息
317
353
  */
318
- INTERSECTED = 'intersected',
354
+ INTERSECTED = "intersected"
319
355
  }
320
356
 
321
357
  /**
@@ -325,11 +361,11 @@ export declare enum EIntersectedCreatedType {
325
361
  /**
326
362
  * 板与板之间产生的交界
327
363
  */
328
- BOTH_PLANK,
364
+ BOTH_PLANK = 0,
329
365
  /**
330
366
  * 板与五金之间产生的交界信息
331
367
  */
332
- PLANK_FURNITURE,
368
+ PLANK_FURNITURE = 1
333
369
  }
334
370
 
335
371
  /**
@@ -339,11 +375,29 @@ export declare enum EIntersectedType {
339
375
  /**
340
376
  * 交接体
341
377
  */
342
- SHELL = '1',
378
+ SHELL = "1",
343
379
  /**
344
380
  * 交界面
345
381
  */
346
- FACE = '2',
382
+ FACE = "2"
383
+ }
384
+
385
+ /**
386
+ * 交接对象类型
387
+ */
388
+ export declare enum EIntersectModelType {
389
+ /**
390
+ * 板件
391
+ */
392
+ PLANK = 0,
393
+ /**
394
+ * 五金
395
+ */
396
+ HARDWARE = 1,
397
+ /**
398
+ * 商品
399
+ */
400
+ PRODUCT = 2
347
401
  }
348
402
 
349
403
  /**
@@ -365,28 +419,39 @@ export declare enum ELanguage {
365
419
  }
366
420
 
367
421
  /**
368
- * 线的类型
422
+ * 设计对象 ID
369
423
  */
370
- export declare enum ELineType {
371
- /**
372
- * 直线
373
- */
374
- SEGMENT = 0,
375
- /**
376
- * 圆弧
377
- */
378
- CIRCLE_ARC = 1,
379
- /**
380
- * 椭圆
381
- * 当前代码中,暂不支持
382
- */
383
- ELLIPSE_ARC = 3,
424
+ declare interface ElementId {
425
+ /** 实例 ID */
426
+ id: string;
427
+ /** 类型 */
428
+ type: ElementType;
429
+ }
430
+
431
+ /**
432
+ * 定制设计对象类型
433
+ */
434
+ declare enum ElementType {
435
+ /** 全屋定制家具 */
436
+ Wardrobe = "Wardrobe",
437
+ /** 全屋定制家具副本 */
438
+ WardrobeCopy = "WardrobeCopy",
439
+ /** 厨卫 */
440
+ Cabinet = "Cabinet",
441
+ /** 厨卫副本 */
442
+ CabinetCopy = "CabinetCopy",
443
+ /** 门窗 */
444
+ DoorWindow = "DoorWindow",
445
+ /** 门窗副本 */
446
+ DoorWindowCopy = "DoorWindowCopy",
447
+ /** 定制组合 */
448
+ CustomGroup = "CustomGroup"
384
449
  }
385
450
 
386
451
  /**
387
452
  * 线的类型
388
453
  */
389
- declare enum ELineType_3 {
454
+ export declare enum ELineType {
390
455
  /**
391
456
  * 直线
392
457
  */
@@ -554,33 +619,16 @@ export declare enum EPointType {
554
619
  /**
555
620
  * 椭圆
556
621
  */
557
- ELLIPSE = 4,
622
+ ELLIPSE = 4
558
623
  }
559
624
 
560
625
  /**
561
- * 点的类型
626
+ * 商品建模方向
562
627
  */
563
- declare enum EPointType_2 {
564
- /**
565
- * 普通点
566
- */
567
- NONE = 0,
568
- /**
569
- * 倒圆
570
- */
571
- CIRCLE = 1,
572
- /**
573
- * 倒角
574
- */
575
- LINE = 2,
576
- /**
577
- * 切圆,就是内挖一个倒圆的形状
578
- */
579
- CUT_CIRCLE = 3,
580
- /**
581
- * 椭圆
582
- */
583
- ELLIPSE = 4
628
+ export declare enum EProductDirection {
629
+ XY = 0,
630
+ YZ = 1,
631
+ XZ = 2
584
632
  }
585
633
 
586
634
  /**
@@ -787,6 +835,9 @@ export declare class FittingDesignService extends BaseService {
787
835
  * 保存孔/槽数据至方案
788
836
  * 如果design不传,即表示将分步保存数据存储至后端
789
837
  *
838
+ * 之前的孔槽会被design直接替换
839
+ *
840
+ * 如果只想展示孔槽可使用 {@link FittingDesignService.appendFittingDesign}
790
841
  * @example
791
842
  * ```typescript
792
843
  * await fittingDesignService.saveDesign({
@@ -848,7 +899,7 @@ export declare class FittingDesignService extends BaseService {
848
899
  export declare class FittingModelService extends BaseService {
849
900
  /**
850
901
  * 获取所有五金孔槽模型
851
- * @param modelId paramModel id,查找相关联孔槽五金
902
+ * @param modelId 模型id,查找相关联的孔槽五金或模型下所有的板件关联的孔槽五金
852
903
  * @returns Promise<IFittingModelLite[]>
853
904
  */
854
905
  getAllFittingModels(modelId?: string): Promise<IFittingModelLite[]>;
@@ -914,17 +965,14 @@ export declare class FittingDesignService extends BaseService {
914
965
  * 孔/槽的深度
915
966
  */
916
967
  depth: number;
917
-
918
968
  /**
919
969
  * 所处的板面
920
970
  */
921
971
  plankFaceId: number;
922
-
923
972
  /**
924
973
  * 起点
925
974
  */
926
975
  start: Number3;
927
-
928
976
  /**
929
977
  * 终点
930
978
  */
@@ -933,6 +981,7 @@ export declare class FittingDesignService extends BaseService {
933
981
 
934
982
  /**
935
983
  * 交接信息
984
+ * @vm-type UnknownType
936
985
  */
937
986
  export declare interface IBaseIntersected {
938
987
  /**
@@ -945,7 +994,6 @@ export declare class FittingDesignService extends BaseService {
945
994
  * * 如果为交接体,length为8
946
995
  */
947
996
  points: Number3[];
948
-
949
997
  /**
950
998
  * 当前交接信息产生的元件ID
951
999
  */
@@ -985,6 +1033,52 @@ export declare class FittingDesignService extends BaseService {
985
1033
  modelId?: string;
986
1034
  }
987
1035
 
1036
+ /**
1037
+ * 自定议参数
1038
+ */
1039
+ declare interface IBzParamModelLiteProperty<T extends number | string | boolean = string> {
1040
+ /**
1041
+ * 参数命名空间
1042
+ */
1043
+ namespace: string;
1044
+ /**
1045
+ * 参数名称,为key
1046
+ */
1047
+ name: string;
1048
+ /**
1049
+ * 参数中存取的值
1050
+ */
1051
+ value: string | undefined;
1052
+ /**
1053
+ * 当前字段数据类型
1054
+ */
1055
+ type: EBzPropertyType | string;
1056
+ /**
1057
+ * 当前参数是否只读
1058
+ */
1059
+ readonly: boolean;
1060
+ /**
1061
+ * 获取参数名称
1062
+ */
1063
+ getName(): string;
1064
+ /**
1065
+ * 获取参数命名空间
1066
+ */
1067
+ getNamespace(): string;
1068
+ /**
1069
+ * 获取当前参数类型
1070
+ */
1071
+ getType(): string;
1072
+ /**
1073
+ * 读取值
1074
+ */
1075
+ getValue(): T | undefined;
1076
+ /**
1077
+ * 设置值
1078
+ */
1079
+ setValue(value: T): void;
1080
+ }
1081
+
988
1082
  declare interface IChangeMap {
989
1083
  update?: IUpdateInfo[];
990
1084
  }
@@ -1049,19 +1143,19 @@ export declare class FittingDesignService extends BaseService {
1049
1143
  /**
1050
1144
  * 所有的孔的数据
1051
1145
  */
1052
- holes: IFittingHoleCollect;
1146
+ holes: IFittingHoleCollect_2;
1053
1147
  /**
1054
1148
  * 槽的数据
1055
1149
  */
1056
- grooves: IFittingGrooveCollect;
1150
+ grooves: IFittingGrooveCollect_2;
1057
1151
  /**
1058
1152
  * 五金数据
1059
1153
  */
1060
- hardwares: IFittingHardwareCollect;
1154
+ hardwares: IFittingHardwareCollect_2;
1061
1155
  /**
1062
1156
  * 五金槽数据
1063
1157
  */
1064
- hardwareGrooves: IFittingHardwareGrooves;
1158
+ hardwareGrooves: IFittingHardwareGrooves_2;
1065
1159
  }
1066
1160
 
1067
1161
  export declare interface IFittingDesignValidateResult {
@@ -1076,16 +1170,31 @@ export declare class FittingDesignService extends BaseService {
1076
1170
  */
1077
1171
  export declare type IFittingGrooveCollect = Record<string, IGrooveData[]>;
1078
1172
 
1173
+ /**
1174
+ * 方案中的所有槽的数据
1175
+ */
1176
+ declare type IFittingGrooveCollect_2 = Record<string, IGrooveData[]>;
1177
+
1079
1178
  /**
1080
1179
  * 五金数据
1081
1180
  */
1082
1181
  export declare type IFittingHardwareCollect = Record<string, IHardwareData[]>;
1083
1182
 
1183
+ /**
1184
+ * 五金数据
1185
+ */
1186
+ declare type IFittingHardwareCollect_2 = Record<string, IHardwareData[]>;
1187
+
1084
1188
  /**
1085
1189
  * 五金槽数据
1086
1190
  */
1087
1191
  export declare type IFittingHardwareGrooves = Record<string, IHardwareGrooveData[]>;
1088
1192
 
1193
+ /**
1194
+ * 五金槽数据
1195
+ */
1196
+ declare type IFittingHardwareGrooves_2 = Record<string, IHardwareGrooveData[]>;
1197
+
1089
1198
  /**
1090
1199
  * 五金孔槽模型ID - 标识信息
1091
1200
  *
@@ -1109,6 +1218,11 @@ export declare class FittingDesignService extends BaseService {
1109
1218
  */
1110
1219
  export declare type IFittingHoleCollect = Record<string, IHoleData[]>;
1111
1220
 
1221
+ /**
1222
+ * 方案中,所有孔的数据
1223
+ */
1224
+ declare type IFittingHoleCollect_2 = Record<string, IHoleData[]>;
1225
+
1112
1226
  /**
1113
1227
  * 五金孔槽通用模型
1114
1228
  */
@@ -1157,17 +1271,71 @@ export declare class FittingDesignService extends BaseService {
1157
1271
  }
1158
1272
 
1159
1273
  /**
1160
- * 获取交接面配置信息
1274
+ * 获取模型的交接信息
1161
1275
  */
1162
- export declare interface IGetModelIntersectedOption extends IBaseOptions {
1276
+ declare interface IGetIntersectedOption {
1277
+ /**
1278
+ * 模型ID
1279
+ */
1280
+ modelId: string;
1163
1281
  /**
1282
+ * @deprecated 可使用bodyDistTol/faceDistTol分别指定交接体/面阈值
1164
1283
  * 含义为交接面/体进行运算过程中的阈值容差;即两个平行面之间,生成交接信息时,最大距离
1165
1284
  * 默认值为 0.1mm
1166
1285
  * 单位:毫米
1167
1286
  */
1168
1287
  tolerance?: number;
1288
+ /**
1289
+ * 超时时间
1290
+ * 单位:秒
1291
+ */
1292
+ timeout?: number;
1293
+ /**
1294
+ * 交接体阈值
1295
+ * 单位:毫米
1296
+ * @default 0.1
1297
+ */
1298
+ bodyDistTol?: number;
1299
+ /**
1300
+ * 交接面阈值
1301
+ * 单位:毫米
1302
+ * @default 0.1
1303
+ */
1304
+ faceDistTol?: number;
1305
+ /**
1306
+ * 是否过滤板厚
1307
+ * @default true
1308
+ */
1309
+ thicknessFilter?: boolean;
1310
+ /**
1311
+ * 参与计算的对象
1312
+ * 传入商品需要明确指定prodCatIds
1313
+ * @default [EIntersectModelType.PLANK,EIntersectModelType.HARDWARE]
1314
+ */
1315
+ computeModelTypes?: Array<EIntersectModelType>;
1316
+ /**
1317
+ * 参与计算的商品
1318
+ */
1319
+ products?: Array<{
1320
+ /**
1321
+ * 真分类
1322
+ */
1323
+ category: number;
1324
+ }>;
1325
+ /**
1326
+ * 商品统一建模方向
1327
+ * @default EProductDirection.XY
1328
+ */
1329
+ direction?: EProductDirection;
1169
1330
  }
1170
1331
 
1332
+ /**
1333
+ * 获取交接面配置信息
1334
+ */
1335
+ export declare interface IGetModelIntersectedOption
1336
+ extends Omit<IGetIntersectedOption, 'modelId'>,
1337
+ IBaseOptions {}
1338
+
1171
1339
  /**
1172
1340
  * 获取模型数据
1173
1341
  */
@@ -1184,7 +1352,6 @@ export declare class FittingDesignService extends BaseService {
1184
1352
  }
1185
1353
 
1186
1354
  export declare interface IGrooveData extends IBaseHoleGrooveData {
1187
- // 槽宽
1188
1355
  width: number;
1189
1356
  }
1190
1357
 
@@ -1196,22 +1363,18 @@ export declare class FittingDesignService extends BaseService {
1196
1363
  * 建模原点在板件坐标系下的坐标
1197
1364
  */
1198
1365
  position: Number3;
1199
-
1200
1366
  /**
1201
1367
  * 相对建模坐标系中夹角,不传默认没有任何基于板件坐标的旋转,会将五金以建模原点放在 position 上,五金建模方向和板件建模方向一致进行摆放。
1202
1368
  */
1203
1369
  rotate: Number3;
1204
-
1205
1370
  /**
1206
1371
  * 相对建模坐标系中缩放,不传默认五金和上传大小完全一致
1207
1372
  */
1208
1373
  scale: Number3;
1209
-
1210
1374
  /**
1211
1375
  * 商品ID
1212
1376
  */
1213
1377
  brandGoodId: string;
1214
-
1215
1378
  /**
1216
1379
  * 关联孔槽ID
1217
1380
  */
@@ -1226,7 +1389,6 @@ export declare class FittingDesignService extends BaseService {
1226
1389
  * 槽的深度
1227
1390
  */
1228
1391
  depth: number;
1229
-
1230
1392
  /**
1231
1393
  * 所处的板面
1232
1394
  */
@@ -1316,6 +1478,16 @@ export declare class FittingDesignService extends BaseService {
1316
1478
  diameter: number;
1317
1479
  }
1318
1480
 
1481
+ /**
1482
+ * 交接信息
1483
+ */
1484
+ export declare interface IIntersectedData {
1485
+ /**
1486
+ * 交接信息集合
1487
+ */
1488
+ intersectedGroups: IIntersectedGroup[];
1489
+ }
1490
+
1319
1491
  /**
1320
1492
  * 一组交接信息
1321
1493
  */
@@ -1337,12 +1509,7 @@ export declare class FittingDesignService extends BaseService {
1337
1509
  /**
1338
1510
  * 交接信息
1339
1511
  */
1340
- export declare interface IIntersectedResult {
1341
- /**
1342
- * 交接信息集合
1343
- */
1344
- intersectedGroups: IIntersectedGroup[];
1345
- }
1512
+ export declare type IIntersectedResult = IIntersectedData;
1346
1513
 
1347
1514
  /**
1348
1515
  * 轮廓路径线段表示
@@ -1352,7 +1519,7 @@ export declare class FittingDesignService extends BaseService {
1352
1519
  * 获取实际渲染端点
1353
1520
  * >线段两端
1354
1521
  */
1355
- getRenderPoints(): [Number2, Number2];
1522
+ getRenderPoints(): [Number2_2, Number2_2];
1356
1523
  /**
1357
1524
  * 设置线段的高亮,高亮深度为板件厚度
1358
1525
  * @param hint 高亮配置
@@ -1402,50 +1569,26 @@ export declare class FittingDesignService extends BaseService {
1402
1569
  ellipseCenter?: Number2;
1403
1570
  }
1404
1571
 
1405
- declare interface ILineData$1 {
1406
- /**
1407
- * 线条类型
1408
- */
1409
- type: ELineType_3;
1410
- /**
1411
- * 是否顺时针
1412
- */
1413
- clockwise?: boolean;
1414
- /**
1415
- * 优弧劣弧 (只有弧线有)
1416
- */
1417
- minorArc?: boolean;
1418
- /**
1419
- * 半径 (只有弧线有)
1420
- */
1421
- radius?: number;
1422
- }
1423
-
1424
1572
  export declare type ILineData = ILineDataBase | ILineDataCircle;
1425
1573
 
1426
1574
  /**
1427
1575
  * 直线
1428
1576
  */
1429
- export declare interface ILineDataBase
1430
- extends Omit<
1431
- ILineBase,
1432
- 'ellipseCenter' | 'clockwise' | 'minorArc' | 'radius' | 'majorRadius' | 'minorRadius'
1433
- > {
1577
+ export declare interface ILineDataBase extends Omit<ILineBase, 'ellipseCenter' | 'clockwise' | 'minorArc' | 'radius' | 'majorRadius' | 'minorRadius'> {
1434
1578
  /**
1435
1579
  * 线条类型
1436
1580
  */
1437
- type: ELineType_2.SEGMENT;
1581
+ type: ELineType.SEGMENT;
1438
1582
  }
1439
1583
 
1440
1584
  /**
1441
1585
  * 弧线
1442
1586
  */
1443
- export declare interface ILineDataCircle
1444
- extends Omit<ILineBase, 'ellipseCenter' | 'majorRadius' | 'minorRadius'> {
1587
+ export declare interface ILineDataCircle extends Omit<ILineBase, 'ellipseCenter' | 'majorRadius' | 'minorRadius'> {
1445
1588
  /**
1446
1589
  * 线条类型
1447
1590
  */
1448
- type: ELineType_2.CIRCLE_ARC;
1591
+ type: ELineType.CIRCLE_ARC;
1449
1592
  /**
1450
1593
  * 是否顺时针
1451
1594
  */
@@ -1609,6 +1752,12 @@ export declare class FittingDesignService extends BaseService {
1609
1752
  * @type string
1610
1753
  */
1611
1754
  readonly id: string;
1755
+ /**
1756
+ * 定制模型类型,在 @modelType 基础上进行了细分
1757
+ * @public
1758
+ * @type ECustomModelType
1759
+ */
1760
+ type: ECustomModelType;
1612
1761
  /**
1613
1762
  * 模型在方案中的名称
1614
1763
  * @readonly
@@ -1629,7 +1778,7 @@ export declare class FittingDesignService extends BaseService {
1629
1778
  * @public
1630
1779
  * @typedef Number3
1631
1780
  */
1632
- position: Number3_2;
1781
+ position: Number3;
1633
1782
  /**
1634
1783
  * 当前模型的旋转信息
1635
1784
  * @readonly
@@ -1637,21 +1786,21 @@ export declare class FittingDesignService extends BaseService {
1637
1786
  * @typedef Number3
1638
1787
  * @deprecated 将废弃,推荐使用 rotation
1639
1788
  */
1640
- rotate: Number3_2;
1789
+ rotate: Number3;
1641
1790
  /**
1642
1791
  * 当前模型的旋转信息
1643
1792
  * @readonly
1644
1793
  * @public
1645
1794
  * @typedef Number3
1646
1795
  */
1647
- rotation: Number3_2;
1796
+ rotation: Number3;
1648
1797
  /**
1649
1798
  * 当前尺寸信息
1650
1799
  * @readonly
1651
1800
  * @public
1652
1801
  * @typedef Number3
1653
1802
  */
1654
- size: Number3_2;
1803
+ size: Number3;
1655
1804
  /**
1656
1805
  * 模型当中自定议的参数信息
1657
1806
  * @readonly
@@ -1659,6 +1808,10 @@ export declare class FittingDesignService extends BaseService {
1659
1808
  * @typedef AMap<string, IParamModelLiteParam>
1660
1809
  */
1661
1810
  readonly params: AMap<string, IParamModelLiteParam>;
1811
+ /**
1812
+ * 模型当前用户自定义属性
1813
+ */
1814
+ readonly bzProperties: AMap<string, IBzParamModelLiteProperty>;
1662
1815
  /**
1663
1816
  * 商品ID,即商品后台的商品ID
1664
1817
  * @readonly
@@ -1695,6 +1848,13 @@ export declare class FittingDesignService extends BaseService {
1695
1848
  * @readonly
1696
1849
  */
1697
1850
  isRoot?: boolean;
1851
+ /**
1852
+ * 当前模型是否是合法(隐藏)模型
1853
+ * @readonly
1854
+ * @public
1855
+ * @type boolean
1856
+ */
1857
+ readonly legal?: boolean;
1698
1858
  /**
1699
1859
  * 获取当前模型名称
1700
1860
  */
@@ -1719,38 +1879,48 @@ export declare class FittingDesignService extends BaseService {
1719
1879
  * 更新当前模型的位置信息
1720
1880
  * @param position {Number3} 坐标
1721
1881
  */
1722
- setPosition(position: Number3_2): void;
1882
+ setPosition(position: Number3): void;
1723
1883
  /**
1724
1884
  * 获取当前模型的坐标信息
1725
1885
  * @return Number3 相对父模型坐标,如果为顶层模型,则为世界坐标
1726
1886
  */
1727
- getPosition(): Number3_2;
1887
+ getPosition(): Number3;
1728
1888
  /**
1729
1889
  * 更新当前模型的旋转信息
1730
1890
  * @description 特别说明,定制模型,使用的是右手坐标系,rotate字段中
1731
1891
  * @param rotate {Number3} 旋转的弧度
1732
1892
  * @deprecated 将废弃,推荐使用 rotation
1733
1893
  */
1734
- setRotate(rotate: Number3_2): void;
1894
+ setRotate(rotate: Number3): void;
1735
1895
  /**
1736
1896
  * 获取当前模型相对父级的旋转信息
1737
1897
  * @deprecated 将废弃,推荐使用 rotation
1738
1898
  */
1739
- getRotate(): Number3_2;
1899
+ getRotate(): Number3;
1740
1900
  /**
1741
1901
  * 更新当前模型的旋转信息
1742
1902
  * @description 特别说明,定制模型,使用的是右手坐标系,rotation字段中
1743
1903
  * @param rotation {Number3} 旋转的弧度
1744
1904
  */
1745
- setRotation(rotation: Number3_2): void;
1905
+ setRotation(rotation: Number3): void;
1746
1906
  /**
1747
1907
  * 获取当前模型相对父级的旋转信息
1748
1908
  */
1749
- getRotation(): Number3_2;
1909
+ getRotation(): Number3;
1910
+ /**
1911
+ * 获取当前模型所处的工具线
1912
+ */
1913
+ getToolType(): EToolType_2 | undefined;
1914
+ /**
1915
+ * 设置当前模型工具线
1916
+ * @param toolType
1917
+ * @throws 如果工具线不被允许,将会报错
1918
+ */
1919
+ setToolType(toolType: EToolType_2): void;
1750
1920
  /**
1751
1921
  * 模型的复制,返回一个新的`ParamModel`对象
1752
1922
  */
1753
- clone(): IParamModelLite_2;
1923
+ clone(): this;
1754
1924
  /**
1755
1925
  * 将当前模型与父级模型断开联系
1756
1926
  * 可以更直接的理解为:删除当前模型
@@ -1760,31 +1930,32 @@ export declare class FittingDesignService extends BaseService {
1760
1930
  /**
1761
1931
  * 查找当前模型的父节点
1762
1932
  */
1763
- getParent(): IParamModelLite_2 | undefined;
1933
+ getParent(): this | undefined;
1764
1934
  /**
1765
- * 获取当前模型的顶层模型,如果当前模型就是顶层模型,则会返回undefined
1935
+ * 获取root节点,如果当前模型为root节点,则返回自身
1936
+ * @param recursion 存在多root时,是否获取最顶层root
1766
1937
  */
1767
- getRoot(): IParamModelLite_2 | undefined;
1938
+ getRoot(recursion?: boolean): this;
1768
1939
  /**
1769
1940
  * 获取当前模型的所有子模型
1770
1941
  */
1771
- getChild(): IParamModelLite_2[];
1942
+ getChild(): this[];
1772
1943
  /**
1773
1944
  * 获取当前模型下的所有非原生模型
1774
1945
  * @description 说明一下:非原生模型可以大致理解为:在方案当中,手动生成一个模型,添加到其他模型上;与之对应子模型可以理解为原生模型,即参数
1775
1946
  * 化编辑中自带的模型
1776
1947
  */
1777
- getAccessory(): IParamModelLite_2[];
1948
+ getAccessory(): this[];
1778
1949
  /**
1779
1950
  * 向当前模型中,添加一个子模型;一般会向包裹层当中,添加子模型;另外,五金配件,也必须使用此方法添加
1780
1951
  * @param child {IParamModelLite} 待添加的模型
1781
1952
  */
1782
- appendChild(child: IParamModelLite_2): void;
1953
+ appendChild(child: this): void;
1783
1954
  /**
1784
1955
  * 向当前模型中,添加一个非原生模型;一般会使用在添加五金
1785
1956
  * @param accessory {IParamModelLite} 待添加的模型
1786
1957
  */
1787
- appendAccessory(accessory: IParamModelLite_2): void;
1958
+ appendAccessory(accessory: this): void;
1788
1959
  /**
1789
1960
  * 获取当前模型中的参数信息(参数即在参数化编辑中的信息)
1790
1961
  * @example
@@ -1792,6 +1963,25 @@ export declare class FittingDesignService extends BaseService {
1792
1963
  * @param name {string} 参数名称
1793
1964
  */
1794
1965
  getParam(name: string): IParamModelLiteParam | undefined;
1966
+ /**
1967
+ * 获取用户自定义属性
1968
+ * @param name {string} 属性名称
1969
+ * @param namespace {string} 命名空间(当不传时,即表示当前小程序下的命名空间,格式如下:miniapp-${appId})
1970
+ */
1971
+ getBzProperty(name: string, namespace?: string): IBzParamModelLiteProperty | undefined;
1972
+ /**
1973
+ * 判断当前模型是否包含某个属性
1974
+ * @param name {string} 属性名称
1975
+ * @param namespace {string} 命名空间
1976
+ */
1977
+ hasBzProperty(name: string, namespace?: string): boolean;
1978
+ /**
1979
+ * 删除自定义属性、当删除成功时,将返回true,否则返回false
1980
+ *
1981
+ * @param name
1982
+ * @param namespace
1983
+ */
1984
+ removeBzProperty(name: string, namespace?: string): boolean;
1795
1985
  /**
1796
1986
  * 判断当前模型是否包含某个参数
1797
1987
  * @param name {string} 参数名称
@@ -1809,7 +1999,7 @@ export declare class FittingDesignService extends BaseService {
1809
1999
  /**
1810
2000
  * 将一个序列化之后的模型,进行反序列化操作
1811
2001
  */
1812
- deserialize(model: string): IParamModelLite_2;
2002
+ deserialize(model: string): this;
1813
2003
  /**
1814
2004
  * 刷新某个模型,此API仅适用于反向对接的模型:
1815
2005
  * 当前某个模型在后台更新了,但用户方案中,存储的仍然是之前的版本,调用此方法后,会自动将当前模型更新成后台最新的版本。
@@ -1817,6 +2007,10 @@ export declare class FittingDesignService extends BaseService {
1817
2007
  * > 模型中,添加的appendChild或addAccessory等参数,可能会失效不起作用
1818
2008
  */
1819
2009
  forceUpdate(update?: boolean): void;
2010
+ /**
2011
+ * 获取设计对象id
2012
+ */
2013
+ getElementId(): ElementId | undefined;
1820
2014
  }
1821
2015
 
1822
2016
  /**
@@ -1887,34 +2081,27 @@ export declare class FittingDesignService extends BaseService {
1887
2081
  setPrimitiveOverride(value: boolean): void;
1888
2082
  }
1889
2083
 
1890
- declare interface IPathData {
1891
- /**
1892
- * 偏移, 正数扩大路径范围,负数缩小路径范围
1893
- */
1894
- offset?: number;
1895
- /**
1896
- * 轮廓上的点
1897
- */
1898
- paramPoints: IPointData$1[];
1899
- /**
1900
- * 轮廓上的线
1901
- */
1902
- paramPathLines: ILineData$1[];
1903
- }
1904
-
1905
2084
  /**
1906
2085
  * 板件轮廓描述
1907
2086
  */
1908
2087
  export declare interface IPlankArea {
1909
2088
  /**
1910
2089
  * 由板件原始轮廓数据解析出的所有路径
2090
+ * >包含一个外轮廓路径和任意个内部轮廓路径
1911
2091
  */
1912
2092
  paths: IPlankPath[];
1913
2093
 
1914
2094
  /**
1915
- * 对板件原始轮廓数据进行非直角端点处理、重合、偏移计算后的实际展示路径
2095
+ * 对板件原始轮廓数据进行非直角端点处理、重合、偏移计算后的实际展示路径,高亮时会将轮廓中心点放置到 (0, 0)
2096
+ * @param option.resetCenter 是否重置轮廓中心点为 (0, 0),默认为true
2097
+ * @param option.force 忽略计算缓存,同一个PlankArea对象,getRealPaths计算结果会被缓存,默认为false
1916
2098
  */
1917
- getRealPaths(): IPlankArea;
2099
+ getRealPaths(option?: { resetCenter?: boolean; force?: boolean }): IPlankArea;
2100
+
2101
+ /**
2102
+ * 获取外轮廓路径中心点坐标
2103
+ */
2104
+ getCenterPoint(): Number2_2;
1918
2105
  }
1919
2106
 
1920
2107
  /**
@@ -1952,78 +2139,53 @@ export declare class FittingDesignService extends BaseService {
1952
2139
  /**
1953
2140
  * 获取路径上实际渲染的端点
1954
2141
  */
1955
- getRenderPoints(): Number2[];
2142
+ getRenderPoints(): Number2_2[];
1956
2143
  }
1957
2144
 
1958
2145
  declare interface IPlankPathData {
1959
- path?: IPathData;
1960
- holes: IPathData[];
2146
+ path?: IPlankPathPathData;
2147
+ holes: IPlankPathPathData[];
1961
2148
  /**
1962
2149
  * other fields
1963
2150
  */
1964
2151
  [key: string]: any;
1965
2152
  }
1966
2153
 
1967
- /**
1968
- * 轮廓路径端点表示
1969
- */
1970
- export declare interface IPoint extends IPointBase {
2154
+ declare interface IPlankPathLineData {
1971
2155
  /**
1972
- * 获取实际渲染端点
1973
- * >非直角端点为渲染线段的两端,直角端点两个端点相同
2156
+ * 线条类型
1974
2157
  */
1975
- getRenderPoints(): [Number2, Number2];
2158
+ type: ELineType;
1976
2159
  /**
1977
- * 设置非直角端点渲染线段的高亮,高亮深度为板件厚度
1978
- * @param hint 高亮配置
2160
+ * 是否顺时针
1979
2161
  */
1980
- setHint(hint: IHintBase): void;
2162
+ clockwise?: boolean;
1981
2163
  /**
1982
- * 清除高亮
2164
+ * 优弧劣弧 (只有弧线有)
1983
2165
  */
1984
- clearHint(): void;
2166
+ minorArc?: boolean;
1985
2167
  /**
1986
- * 获取高亮
2168
+ * 半径 (只有弧线有)
1987
2169
  */
1988
- getHint(): IHintBase | undefined;
2170
+ radius?: number;
1989
2171
  }
1990
2172
 
1991
- /**
1992
- * 点的基本类型
1993
- */
1994
- export declare interface IPointBase {
1995
- type: EPointType;
1996
- /**
1997
- * 点的位置
1998
- */
1999
- position: Number3 | Number2;
2000
- /**
2001
- * 切角长度
2002
- */
2003
- cornerCutDistance?: [number, number];
2173
+ declare interface IPlankPathPathData {
2004
2174
  /**
2005
- * 椭圆端点长轴
2006
- */
2007
- majorRadius?: number;
2008
- /**
2009
- * 椭圆端点短轴
2010
- */
2011
- minorRadius?: number;
2012
- /**
2013
- * 圆弧、切圆半径
2175
+ * 偏移, 正数扩大路径范围,负数缩小路径范围
2014
2176
  */
2015
- radius?: number;
2177
+ offset?: number;
2016
2178
  /**
2017
- * 圆弧是否为顺时针
2179
+ * 轮廓上的点
2018
2180
  */
2019
- clockwise?: boolean;
2181
+ paramPoints: IPlankPathPointData[];
2020
2182
  /**
2021
- * 圆弧、椭圆弧圆心偏移
2183
+ * 轮廓上的线
2022
2184
  */
2023
- offset?: Number2;
2185
+ paramPathLines: IPlankPathLineData[];
2024
2186
  }
2025
2187
 
2026
- declare interface IPointData$1 {
2188
+ declare interface IPlankPathPointData {
2027
2189
  /**
2028
2190
  * 点的位置
2029
2191
  *
@@ -2034,7 +2196,7 @@ export declare class FittingDesignService extends BaseService {
2034
2196
  /**
2035
2197
  * 点的类型
2036
2198
  */
2037
- type: EPointType_2;
2199
+ type: EPointType;
2038
2200
  /**
2039
2201
  * 切角两边上切点距离当前点的距离(切角专用)
2040
2202
  */
@@ -2069,6 +2231,68 @@ export declare class FittingDesignService extends BaseService {
2069
2231
  minorRadius?: string;
2070
2232
  }
2071
2233
 
2234
+ /**
2235
+ * 轮廓路径端点表示
2236
+ */
2237
+ export declare interface IPoint extends IPointBase {
2238
+ /**
2239
+ * 获取实际渲染端点
2240
+ * >非直角端点为渲染线段的两端,直角端点两个端点相同
2241
+ */
2242
+ getRenderPoints(): [Number2_2, Number2_2];
2243
+ /**
2244
+ * 设置非直角端点渲染线段的高亮,高亮深度为板件厚度
2245
+ * @param hint 高亮配置
2246
+ */
2247
+ setHint(hint: IHintBase): void;
2248
+ /**
2249
+ * 清除高亮
2250
+ */
2251
+ clearHint(): void;
2252
+ /**
2253
+ * 获取高亮
2254
+ */
2255
+ getHint(): IHintBase | undefined;
2256
+ }
2257
+
2258
+ /**
2259
+ * 点的基本类型
2260
+ */
2261
+ export declare interface IPointBase {
2262
+ type: EPointType;
2263
+ /**
2264
+ * 点的位置
2265
+ *
2266
+ * @example
2267
+ * "123,-345"
2268
+ */
2269
+ position: Number3 | Number2;
2270
+ /**
2271
+ * 切角长度
2272
+ */
2273
+ cornerCutDistance?: [number, number];
2274
+ /**
2275
+ * 椭圆端点长轴
2276
+ */
2277
+ majorRadius?: number;
2278
+ /**
2279
+ * 椭圆端点短轴
2280
+ */
2281
+ minorRadius?: number;
2282
+ /**
2283
+ * 圆弧、切圆半径
2284
+ */
2285
+ radius?: number;
2286
+ /**
2287
+ * 圆弧是否为顺时针
2288
+ */
2289
+ clockwise?: boolean;
2290
+ /**
2291
+ * 圆弧、椭圆弧圆心偏移
2292
+ */
2293
+ offset?: Number2;
2294
+ }
2295
+
2072
2296
  /**
2073
2297
  * 点的类型参数
2074
2298
  */
@@ -2077,11 +2301,7 @@ export declare class FittingDesignService extends BaseService {
2077
2301
  /**
2078
2302
  * 倒圆
2079
2303
  */
2080
- export declare interface IPointWithCircle
2081
- extends Omit<
2082
- IPointBase,
2083
- 'clockwise' | 'majorRadius' | 'minorRadius' | 'cornerCutDistance' | 'offset'
2084
- > {
2304
+ export declare interface IPointWithCircle extends Omit<IPointBase, 'clockwise' | 'majorRadius' | 'minorRadius' | 'cornerCutDistance' | 'offset'> {
2085
2305
  /**
2086
2306
  * 切角类型
2087
2307
  */
@@ -2112,8 +2332,7 @@ export declare class FittingDesignService extends BaseService {
2112
2332
  /**
2113
2333
  * 切角
2114
2334
  */
2115
- export declare interface IPointWithLine
2116
- extends Omit<IPointBase, 'clockwise' | 'majorRadius' | 'minorRadius' | 'radius' | 'offset'> {
2335
+ export declare interface IPointWithLine extends Omit<IPointBase, 'clockwise' | 'majorRadius' | 'minorRadius' | 'radius' | 'offset'> {
2117
2336
  /**
2118
2337
  * 切角类型
2119
2338
  */
@@ -2127,11 +2346,7 @@ export declare class FittingDesignService extends BaseService {
2127
2346
  /**
2128
2347
  * 普通点类型
2129
2348
  */
2130
- export declare interface IPointWithNone
2131
- extends Omit<
2132
- IPointBase,
2133
- 'cornerCutDistance' | 'majorRadius' | 'minorRadius' | 'radius' | 'offset'
2134
- > {
2349
+ export declare interface IPointWithNone extends Omit<IPointBase, 'cornerCutDistance' | 'majorRadius' | 'minorRadius' | 'radius' | 'offset'> {
2135
2350
  /**
2136
2351
  * 普通点
2137
2352
  */
@@ -2728,12 +2943,22 @@ export declare class FittingDesignService extends BaseService {
2728
2943
  * const json = await service.getModelJsonDataByModelId('请输入模型ID');
2729
2944
  * ```
2730
2945
  *
2731
- * > 以上 API 暂不建议在非对接 2.0 环境下使用,主要是与孔/槽方案数据存在关联关系。
2732
- > > 替代的 service 为`CustomDesignExportService`,将会在 9 月底最新的`@manycore/custom-miniapp-sdk`中提供。
2946
+ * > 以上 API 暂不建议在非对接 2.0 环境下使用,主要是与孔/槽方案数据存在关联关系
2947
+ > > 耗时API 建议后台异步请求并配合做好缓存
2948
+ > > >替代的 service 为`CustomDesignExportService`,将会在 9 月底最新的`@manycore/custom-miniapp-sdk`中提供。
2733
2949
  *
2734
- * @example
2950
+ * @example 最佳实践
2735
2951
  * ```typescript
2736
- * await modelService.getParamData();
2952
+ * // 后台异步任务 串行执行不建议并发
2953
+ * const cache = new Map<string, any>();
2954
+ * for (const model of models) {
2955
+ * const { id } = model;
2956
+ * const data = await getParamData({ modelId: id });
2957
+ * cache.set(id, data)
2958
+ * }
2959
+ *
2960
+ * // 主线程获取
2961
+ * cache.get(id);
2737
2962
  * ```
2738
2963
  *
2739
2964
  * @param options
@@ -2741,10 +2966,19 @@ export declare class FittingDesignService extends BaseService {
2741
2966
  getParamData(options?: IGetParamModelJsonOption): Promise<any>;
2742
2967
  /**
2743
2968
  * 获取模型的交接数据
2744
- *
2969
+ * > 耗时API 建议后台异步请求并配合做好缓存
2745
2970
  * @example
2746
2971
  * ```typescript
2747
- * await modelService.getParamIntersected();
2972
+ * // 后台异步任务 串行执行不建议并发
2973
+ * const cache = new Map<string, any>();
2974
+ * for (const model of models) {
2975
+ * const { id } = model;
2976
+ * const data = await getParamIntersected({ modelId: id });
2977
+ * cache.set(id, data)
2978
+ * }
2979
+ *
2980
+ * // 主线程获取
2981
+ * cache.get(id);
2748
2982
  * ```
2749
2983
  *
2750
2984
  * @param options
@@ -3008,7 +3242,7 @@ export declare class FittingDesignService extends BaseService {
3008
3242
  /**
3009
3243
  * 二维空间下:坐标/向量/旋转/尺寸的基础表示
3010
3244
  */
3011
- declare interface Number2_2 {
3245
+ declare interface Number2 {
3012
3246
  /**
3013
3247
  * x轴上的数据
3014
3248
  */
@@ -3022,7 +3256,7 @@ export declare class FittingDesignService extends BaseService {
3022
3256
  /**
3023
3257
  * 三维空间下,坐标/向量/旋转/尺寸的基础表示
3024
3258
  */
3025
- declare interface Number3_2 extends Number2_2 {
3259
+ declare interface Number3 extends Number2 {
3026
3260
  /**
3027
3261
  * z轴方向数据
3028
3262
  */
@@ -3056,7 +3290,7 @@ export declare class FittingDesignService extends BaseService {
3056
3290
  parseModelPlankPath(option: {
3057
3291
  modelID: string;
3058
3292
  data: IPlankPathData;
3059
- }): PlankArea;
3293
+ }): IPlankArea;
3060
3294
  /**
3061
3295
  * 同步板件轮廓修改到渲染场景中
3062
3296
  *