@manycore/custom-sdk 1.13.0 → 1.13.4

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