gs-cae-design 1.1.59 → 1.1.61

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 (52) hide show
  1. package/README.md +24 -0
  2. package/lib/.gz +0 -0
  3. package/lib/CAEDesign.common-report.html +2 -2
  4. package/lib/CAEDesign.common.js +32 -32
  5. package/lib/CAEDesign.umd-report.html +2 -2
  6. package/lib/CAEDesign.umd.js +32 -32
  7. package/lib/CAEDesign.umd.min-report.html +2 -2
  8. package/lib/CAEDesign.umd.min.js +32 -32
  9. package/package.json +1 -1
  10. package/src/gsDevFx/managers/caeRenderObjectTreeManager.ts +1 -1
  11. package/src/gsDevFx/managers/datReaderManager.ts +85 -50
  12. package/src/gsDevFx/objects/caeObjects/grupObject.ts +22 -20
  13. package/src/gsDevFx/objects/caeObjects/jointObject.ts +4 -2
  14. package/src/gsDevFx/objects/caeObjects/memberObject.ts +10 -7
  15. package/src/gsDevFx/objects/caeObjects/pGrupObject.ts +9 -8
  16. package/src/gsDevFx/objects/caeObjects/plateObject.ts +96 -32
  17. package/src/gsDevFx/objects/caeObjects/sectionObject.ts +47 -25
  18. package/src/gsDevFx/objects/pretreatmentObjects/cutlineBaseObject.ts +13 -12
  19. package/src/gsDevFx/process.ts +64 -22
  20. package/src/gsDevFx/viewer.ts +4 -4
  21. package/src/viewerWrapper/commands/aftertreatment/postResultCloud/commandPostResultCloud.ts +9 -2
  22. package/src/viewerWrapper/commands/commandUtilities/commandUtilities.ts +99 -91
  23. package/src/viewerWrapper/commands/editGrup/commandEditGrup.ts +22 -35
  24. package/src/viewerWrapper/commands/editSection/commandEditSection.ts +2 -0
  25. package/src/viewerWrapper/commands/mergeMember/commandMergeMember.ts +3 -0
  26. package/src/viewerWrapper/commands/pretreatment/importBoreholes/commandImportBoreholes.ts +19 -3
  27. package/src/viewerWrapper/commands/pretreatment/importBoreholes/importBoreholesConfig.ts +4 -0
  28. package/src/viewerWrapper/commands/showJointProperty/commandShowJointProperty.ts +18 -15
  29. package/types/caeDesign/src/gsDevFx/managers/commandManager.d.ts.map +1 -1
  30. package/types/caeDesign/src/gsDevFx/objects/caeObjects/grupObject.d.ts.map +1 -1
  31. package/types/caeDesign/src/gsDevFx/objects/caeObjects/jointObject.d.ts.map +1 -1
  32. package/types/caeDesign/src/gsDevFx/objects/caeObjects/memberObject.d.ts.map +1 -1
  33. package/types/caeDesign/src/gsDevFx/objects/caeObjects/pGrupObject.d.ts.map +1 -1
  34. package/types/caeDesign/src/gsDevFx/objects/caeObjects/plateObject.d.ts.map +1 -1
  35. package/types/caeDesign/src/gsDevFx/objects/caeObjects/sectionObject.d.ts.map +1 -1
  36. package/types/caeDesign/src/gsDevFx/objects/pretreatmentObjects/cutlineBaseObject.d.ts.map +1 -1
  37. package/types/caeDesign/src/gsDevFx/process.d.ts.map +1 -1
  38. package/types/caeDesign/src/gsDevFx/propertyComponents/propertyComponent.vue.d.ts +0 -13
  39. package/types/caeDesign/src/gsDevFx/viewer.d.ts.map +1 -1
  40. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/postResultCloud/commandPostResultCloud.d.ts.map +1 -1
  41. package/types/caeDesign/src/viewerWrapper/commands/commandUtilities/commandUtilities.d.ts.map +1 -1
  42. package/types/caeDesign/src/viewerWrapper/commands/editGrup/commandEditGrup.d.ts.map +1 -1
  43. package/types/caeDesign/src/viewerWrapper/commands/mergeMember/commandMergeMember.d.ts.map +1 -1
  44. package/types/caeDesign/src/viewerWrapper/commands/showJointProperty/commandShowJointProperty.d.ts.map +1 -1
  45. package/types/caeDesign/src/viewerWrapper/module/createMenu.d.ts.map +1 -0
  46. package/types/caeDesign/src/viewerWrapper/panel/viewPoint/viewPointPanel.d.ts +36 -0
  47. package/types/ceecDesign/src/api/renderObjectServices.d.ts +0 -15
  48. package/types/ceecDesign/src/api/renderObjectServices.d.ts.map +0 -1
  49. package/types/ceecDesign/src/gsDevFx/objects/designLightObject/designLightObject.d.ts +0 -18
  50. package/types/ceecDesign/src/gsDevFx/objects/designLightObject/designLightObject.d.ts.map +0 -1
  51. package/types/ceecDesign/src/utils/cookie.d.ts +38 -0
  52. package/types/ceecDesign/src/utils/cookie.d.ts.map +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gs-cae-design",
3
- "version": "1.1.59",
3
+ "version": "1.1.61",
4
4
  "description": "广州图石科技有限公司发布的基于gs-longan的CAE图形控件",
5
5
  "main": "lib/CAEDesign.umd.min.js",
6
6
  "types": "./types/caeDesign/src/index.d.ts",
@@ -342,7 +342,7 @@ export class CAERenderObjectTreeManager extends Longan.ProcessManagerBase {
342
342
  } else {
343
343
  // 升序
344
344
  newName = this.stringAscendingOrder(name, name.length - 1);
345
- console.log("newName:", newName);
345
+ // console.log("newName:", newName);
346
346
  }
347
347
 
348
348
  // 查重
@@ -215,18 +215,19 @@ enum DatDataTypeSEA {
215
215
  }
216
216
 
217
217
  export class DatReaderManager extends Longan.ViewerManagerBase {
218
- private _modelOptionList: Longan.List<DesignBaseObject> =
218
+
219
+ private _sectList: Longan.List<DesignBaseObject> =
219
220
  new Longan.List<DesignBaseObject>();
220
- private TitleObject: DesignBaseObject = null;
221
- private _seastateOptionList: Longan.List<DesignBaseObject> =
221
+ private _grupList: Longan.List<DesignBaseObject> =
222
+ new Longan.List<DesignBaseObject>();
223
+ private _pgrupList: Longan.List<DesignBaseObject> =
224
+ new Longan.List<DesignBaseObject>();
225
+ private _jointList: Longan.List<DesignBaseObject> =
226
+ new Longan.List<DesignBaseObject>();
227
+ private _memberList: Longan.List<DesignBaseObject> =
228
+ new Longan.List<DesignBaseObject>();
229
+ private _plateList: Longan.List<DesignBaseObject> =
222
230
  new Longan.List<DesignBaseObject>();
223
-
224
- private _sectList: Longan.List<DesignBaseObject> = new Longan.List<DesignBaseObject>();
225
- private _grupList: Longan.List<DesignBaseObject> = new Longan.List<DesignBaseObject>();
226
- private _pgrupList: Longan.List<DesignBaseObject> = new Longan.List<DesignBaseObject>();
227
- private _jointList: Longan.List<DesignBaseObject> = new Longan.List<DesignBaseObject>();
228
- private _memberList: Longan.List<DesignBaseObject> = new Longan.List<DesignBaseObject>();
229
- private _plateList: Longan.List<DesignBaseObject> = new Longan.List<DesignBaseObject>();
230
231
  private _loadConditionList: Longan.List<DesignBaseObject> =
231
232
  new Longan.List<DesignBaseObject>();
232
233
  private _loadCombinationGroupList: Longan.List<DesignBaseObject> =
@@ -238,17 +239,20 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
238
239
  // 海况构件分组数据.
239
240
  private _componentGroupList: Longan.List<DesignBaseObject> =
240
241
  new Longan.List<DesignBaseObject>();
242
+
241
243
  // saeoci荷载数据.
242
244
  private _seaociLoadConditionList: Longan.List<DesignBaseObject> =
243
245
  new Longan.List<DesignBaseObject>();
244
246
  public _seaociJointList = new Map<string, DesignBaseObject>();
245
- private _currentSeaociMember = null;
246
247
  private _seaociMemberList = new Map<string, DesignBaseObject>();
248
+ private _currentSeaociMember = null;
249
+
247
250
  // 附加质量数据.
248
251
  private _weightGroupList: Longan.List<DesignBaseObject> =
249
252
  new Longan.List<DesignBaseObject>();
250
253
  // 牺牲阳极数据.
251
- private _wgtmemANODEList: Longan.List<WGTMEMObject> = new Longan.List<WGTMEMObject>();
254
+ private _wgtmemANODEList: Longan.List<WGTMEMObject> =
255
+ new Longan.List<WGTMEMObject>();
252
256
 
253
257
  // 模型文件标题
254
258
  public title = "";
@@ -288,6 +292,15 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
288
292
  super(viewer);
289
293
 
290
294
  this.registerNativeTypes();
295
+ this.clearRepeatList();
296
+ }
297
+
298
+ private clearRepeatList() {
299
+ this._sectInsNameRepeatList = new Array<string>();
300
+ this._grupNameRepeatList = new Array<string>();
301
+ this._pGrupNameRepeatList = new Array<string>();
302
+ this._jointNameRepeatList = new Array<string>();
303
+ this._memberNameRepeatList = new Array<string>();
291
304
  }
292
305
 
293
306
  registerNativeTypes() {
@@ -346,7 +359,7 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
346
359
  this._currentStateDAT = DatDataTypeDAT.SurfID;
347
360
  } else if (line.startsWith("SURFDR")) {
348
361
  this._currentStateDAT = DatDataTypeDAT.SurfDR;
349
- }else if (line.startsWith("SURFWT")) {
362
+ } else if (line.startsWith("SURFWT")) {
350
363
  this._currentStateDAT = DatDataTypeDAT.SurfWT;
351
364
  } else if (line.startsWith("WGTMEM")) {
352
365
  this._currentStateDAT = DatDataTypeDAT.Wgtmem;
@@ -924,7 +937,8 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
924
937
  * @returns
925
938
  */
926
939
  private readComponentGroupData(line: string) {
927
- let _componentGroupList: Longan.List<DesignBaseObject> = this._componentGroupList;
940
+ let _componentGroupList: Longan.List<DesignBaseObject> =
941
+ this._componentGroupList;
928
942
  let process = Process.activeProcess as Process;
929
943
 
930
944
  let setName = this.getDatData(line, 8, 70).trimEnd();
@@ -984,9 +998,9 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
984
998
  if (componentGroupObject instanceof ColorDivComponentGroupObject) {
985
999
  let card = new CardJOISET(line);
986
1000
  let list = card.toJoiSet();
987
- for(let i = 0; i < list.count(); i++) {
1001
+ for (let i = 0; i < list.count(); i++) {
988
1002
  let obj = list.items[i];
989
- if(componentGroupObject.refercenJointIds.indexOf(obj) === -1) {
1003
+ if (componentGroupObject.refercenJointIds.indexOf(obj) === -1) {
990
1004
  componentGroupObject.refercenJointIds.add(obj);
991
1005
  }
992
1006
  }
@@ -1000,9 +1014,9 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
1000
1014
  if (componentGroupObject instanceof ColorDivComponentGroupObject) {
1001
1015
  let card = new CardMEMSET(line);
1002
1016
  let list = card.toMemSet();
1003
- for(let i = 0; i < list.count(); i++) {
1017
+ for (let i = 0; i < list.count(); i++) {
1004
1018
  let obj = list.items[i];
1005
- if(componentGroupObject.refercenMemberIds.indexOf(obj) === -1) {
1019
+ if (componentGroupObject.refercenMemberIds.indexOf(obj) === -1) {
1006
1020
  componentGroupObject.refercenMemberIds.add(obj);
1007
1021
  }
1008
1022
  }
@@ -1016,9 +1030,9 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
1016
1030
  if (componentGroupObject instanceof ColorDivComponentGroupObject) {
1017
1031
  let card = new CardPLASET(line);
1018
1032
  let list = card.toPlaSet();
1019
- for(let i = 0; i < list.count(); i++) {
1033
+ for (let i = 0; i < list.count(); i++) {
1020
1034
  let obj = list.items[i];
1021
- if(componentGroupObject.refercenPlateIds.indexOf(obj) === -1) {
1035
+ if (componentGroupObject.refercenPlateIds.indexOf(obj) === -1) {
1022
1036
  componentGroupObject.refercenPlateIds.add(obj);
1023
1037
  }
1024
1038
  }
@@ -1462,7 +1476,6 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
1462
1476
  ro.cardData = line;
1463
1477
  ro.cardObject = new CardSURFDR(line);
1464
1478
 
1465
-
1466
1479
  process.addRenderObject(
1467
1480
  process.caeRenderObjectTreeManager.sacinpNode,
1468
1481
  ro
@@ -1528,17 +1541,20 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
1528
1541
 
1529
1542
  let process = Process.activeProcess as Process;
1530
1543
 
1531
- let isAnode = line.substring(72, 80).trimEnd() === 'ANODE';
1532
- if(isAnode) {
1544
+ let isAnode = line.substring(72, 80).trimEnd() === "ANODE";
1545
+ if (isAnode) {
1533
1546
  let card = new CardWGTMEMCONC(line);
1534
1547
  let ro = card.toRenderObject() as WGTMEMObject;
1535
1548
  ro.name = card.weightGroupID.value;
1536
1549
  ro.businessState = BusinessState.Creating;
1537
1550
 
1538
1551
  this._wgtmemANODEList.add(ro);
1539
- }else {
1540
- let weightIdObject = this.weightGroupIdChangeAndWeightIdChange(this.getDatData(line, 6, 4), this.getDatData(line, 72, 8))
1541
- if(weightIdObject) {
1552
+ } else {
1553
+ let weightIdObject = this.weightGroupIdChangeAndWeightIdChange(
1554
+ this.getDatData(line, 6, 4),
1555
+ this.getDatData(line, 72, 8)
1556
+ );
1557
+ if (weightIdObject) {
1542
1558
  // 杆件上的点质量
1543
1559
  // 创建质量
1544
1560
  let card = new CardWGTMEMCONC(line);
@@ -1560,8 +1576,11 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
1560
1576
 
1561
1577
  let process = Process.activeProcess as Process;
1562
1578
 
1563
- let weightIdObject = this.weightGroupIdChangeAndWeightIdChange(this.getDatData(line, 6, 4), this.getDatData(line, 72, 8))
1564
- if(weightIdObject) {
1579
+ let weightIdObject = this.weightGroupIdChangeAndWeightIdChange(
1580
+ this.getDatData(line, 6, 4),
1581
+ this.getDatData(line, 72, 8)
1582
+ );
1583
+ if (weightIdObject) {
1565
1584
  // 杆件分布质量
1566
1585
  // 创建质量
1567
1586
  let card = new CardWGTMEMUNIF(line);
@@ -1582,20 +1601,28 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
1582
1601
 
1583
1602
  let process = Process.activeProcess as Process;
1584
1603
 
1585
- let weightIdObject = this.weightGroupIdChangeAndWeightIdChange(this.getDatData(line, 6, 4), this.getDatData(line, 17, 8))
1586
- if(weightIdObject) {
1604
+ let weightIdObject = this.weightGroupIdChangeAndWeightIdChange(
1605
+ this.getDatData(line, 6, 4),
1606
+ this.getDatData(line, 17, 8)
1607
+ );
1608
+ if (weightIdObject) {
1587
1609
  // 空间点质量
1588
1610
  // 创建质量
1589
1611
  let card = new CardWGTJT(line);
1590
1612
 
1591
- let ro = card.toRenderObject(this._weightGroupList.get(this._weightGroupList.count() - 1).name);
1613
+ let ro = card.toRenderObject(
1614
+ this._weightGroupList.get(this._weightGroupList.count() - 1).name
1615
+ );
1592
1616
  ro.businessState = BusinessState.Creating;
1593
1617
  process.addRenderObject(weightIdObject, ro);
1594
1618
  }
1595
1619
  }
1596
1620
 
1597
- private weightGroupIdChangeAndWeightIdChange(weightGroupID: string, weightID: string): WeightIdObject {
1598
- if(!weightGroupID || !weightID) return
1621
+ private weightGroupIdChangeAndWeightIdChange(
1622
+ weightGroupID: string,
1623
+ weightID: string
1624
+ ): WeightIdObject {
1625
+ if (!weightGroupID || !weightID) return;
1599
1626
 
1600
1627
  let process = Process.activeProcess as Process;
1601
1628
 
@@ -1632,7 +1659,7 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
1632
1659
  process.addRenderObject(currentWeightGroupObj, weightIdObject);
1633
1660
  }
1634
1661
 
1635
- return weightIdObject
1662
+ return weightIdObject;
1636
1663
  }
1637
1664
 
1638
1665
  private readWTCMBData(line: string) {
@@ -1750,7 +1777,7 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
1750
1777
  private checkNameRepeatAndGetNewName(map: Map<string, any>, name: string) {
1751
1778
  let process = this.viewer.process as Process;
1752
1779
 
1753
- let isRepeat = process.nameMapSection.get(name);
1780
+ let isRepeat = map.get(name);
1754
1781
  if (isRepeat) {
1755
1782
  // 添加一个重名后处理列表.
1756
1783
  let newName = process.caeRenderObjectTreeManager.nameAscendingOrder(
@@ -1939,9 +1966,9 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
1939
1966
  let joints = new Array<JointObject>();
1940
1967
  for (let j = 0; j < ro.joints.length; j++) {
1941
1968
  if (typeof ro.joints[j] === "string") {
1942
- for (let j = 0; j < this._jointNameRepeatList.length; j += 2) {
1943
- if (ro.joints[j] === (this._jointNameRepeatList[j] as any)) {
1944
- ro.joints[j] = this._jointNameRepeatList[j + 1] as any;
1969
+ for (let k = 0; k < this._jointNameRepeatList.length; k += 2) {
1970
+ if (ro.joints[j] === (this._jointNameRepeatList[k] as any)) {
1971
+ ro.joints[j] = this._jointNameRepeatList[k + 1] as any;
1945
1972
  break;
1946
1973
  }
1947
1974
  }
@@ -2030,7 +2057,9 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
2030
2057
  }
2031
2058
 
2032
2059
  for (let i = 0; i < this._loadCombinationGroupList.count(); i++) {
2033
- let ro = this._loadCombinationGroupList.items[i] as LoadCombinationGroupObject;
2060
+ let ro = this._loadCombinationGroupList.items[
2061
+ i
2062
+ ] as LoadCombinationGroupObject;
2034
2063
  ro.businessState = BusinessState.Creating;
2035
2064
  let parentNode = process.findCaeObjectByNameInChildObject(
2036
2065
  treeMng.postResultNode,
@@ -2091,7 +2120,7 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
2091
2120
  grandChild.member as any
2092
2121
  );
2093
2122
  }
2094
- }else if (grandChild instanceof JointWeightObject) {
2123
+ } else if (grandChild instanceof JointWeightObject) {
2095
2124
  if (typeof grandChild.jointName === "string") {
2096
2125
  for (let k = 0; k < this._jointNameRepeatList.length; k += 2) {
2097
2126
  if (
@@ -2135,14 +2164,10 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
2135
2164
  this._plateList.clear();
2136
2165
  this._loadConditionList.clear();
2137
2166
  this._loadCombinationGroupList.clear();
2138
- this._weightGroupList.clear()
2167
+ this._weightGroupList.clear();
2139
2168
  this._wgtmemANODEList.clear();
2140
2169
 
2141
- this._sectInsNameRepeatList = [];
2142
- this._grupNameRepeatList = [];
2143
- this._pGrupNameRepeatList = [];
2144
- this._jointNameRepeatList = [];
2145
- this._memberNameRepeatList = [];
2170
+ this.clearRepeatList();
2146
2171
  }
2147
2172
 
2148
2173
  private addSeaInpRenderObject() {
@@ -2182,9 +2207,14 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
2182
2207
  process.addRenderObject(parentNode, ro);
2183
2208
  }
2184
2209
  }
2210
+
2211
+ this._seainpLoadConditionList.clear();
2212
+ this._componentGroupList.clear();
2185
2213
  }
2186
2214
 
2187
- private addSeaociRenderObject(_seaociLoadConditionList: Longan.List<DesignBaseObject>) {
2215
+ private addSeaociRenderObject(
2216
+ _seaociLoadConditionList: Longan.List<DesignBaseObject>
2217
+ ) {
2188
2218
  let process = this.viewer.process as Process;
2189
2219
  let treeMng = process.caeRenderObjectTreeManager;
2190
2220
 
@@ -2232,6 +2262,10 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
2232
2262
  process.addRenderObject(parentNode, ro);
2233
2263
  }
2234
2264
  }
2265
+
2266
+ this._seaociMemberList.clear();
2267
+ this._seaociLoadConditionList.clear();
2268
+ this._seaociJointList.clear();
2235
2269
  }
2236
2270
 
2237
2271
  importPSIData(content: string) {
@@ -2601,11 +2635,12 @@ export class DatReaderManager extends Longan.ViewerManagerBase {
2601
2635
  }
2602
2636
 
2603
2637
  private readLcomb(line: string) {
2604
- if(line.trim() === "LCOMB") {
2605
- return
2638
+ if (line.trim() === "LCOMB") {
2639
+ return;
2606
2640
  }
2607
2641
 
2608
- let _loadCombinationGroupList: Longan.List<DesignBaseObject> = this._loadCombinationGroupList;
2642
+ let _loadCombinationGroupList: Longan.List<DesignBaseObject> =
2643
+ this._loadCombinationGroupList;
2609
2644
  let process = Process.activeProcess as Process;
2610
2645
  let treeMng = process.caeRenderObjectTreeManager;
2611
2646
 
@@ -10,7 +10,6 @@ import { SectionObject } from "./sectionObject";
10
10
  import { CaeNumber, CaeNumberToCard } from "../../../utility/utility";
11
11
  import { Process } from "../../../gsDevFx/process";
12
12
 
13
-
14
13
  //杆件截面组对象
15
14
  export class GrupObject extends DesignBaseObject implements IReferenceObject {
16
15
  typeName = "GrupObject";
@@ -27,10 +26,12 @@ export class GrupObject extends DesignBaseObject implements IReferenceObject {
27
26
  }
28
27
 
29
28
  override set name(value) {
30
- (Process.activeProcess as Process).nameMapGrup.delete(this.name);
29
+ if ((Process.activeProcess as Process).nameMapGrup.get(this.name)) {
30
+ (Process.activeProcess as Process).nameMapGrup.delete(this.name);
31
+ (Process.activeProcess as Process).nameMapGrup.set(value, this);
32
+ }
31
33
 
32
34
  this._name = value;
33
- (Process.activeProcess as Process).nameMapGrup.set(value, this);
34
35
  }
35
36
 
36
37
  public get viewer() {
@@ -156,22 +157,26 @@ export class GrupObject extends DesignBaseObject implements IReferenceObject {
156
157
  cardGrup.grupLabel.value = this.name;
157
158
  cardGrup.taperOption.value = grupSeg.taperOption;
158
159
  cardGrup.sectionLabel.value = grupSeg.section ? grupSeg.section.name : "";
159
- cardGrup.tubOuterDiameter.value = CaeNumberToCard(grupSeg.tubOuterDiameter);
160
- cardGrup.tubWallThickness.value = CaeNumberToCard(grupSeg.tubWallThickness);
160
+ cardGrup.tubOuterDiameter.value = CaeNumberToCard(
161
+ grupSeg.tubOuterDiameter
162
+ );
163
+ cardGrup.tubWallThickness.value = CaeNumberToCard(
164
+ grupSeg.tubWallThickness
165
+ );
161
166
  if (grupSeg.section) {
162
167
  cardGrup.tubOuterDiameter.value = "";
163
168
  cardGrup.tubWallThickness.value = "";
164
169
  }
165
- cardGrup.elastic_E.value = grupSeg.elastic_E
166
- cardGrup.elastic_G.value = grupSeg.elastic_G
167
- cardGrup.elastic_SY.value = grupSeg.elastic_SY
170
+ cardGrup.elastic_E.value = grupSeg.elastic_E;
171
+ cardGrup.elastic_G.value = grupSeg.elastic_G;
172
+ cardGrup.elastic_SY.value = grupSeg.elastic_SY;
168
173
  cardGrup.memberClass.value = grupSeg.memberClass;
169
174
  cardGrup.kFactors_KY.value = grupSeg.kFactors_KY;
170
175
  cardGrup.kFactors_KZ.value = grupSeg.kFactors_KZ;
171
- cardGrup.tubShearAreaModifier.value = grupSeg.tubShearAreaModifier
176
+ cardGrup.tubShearAreaModifier.value = grupSeg.tubShearAreaModifier;
172
177
  cardGrup.flooding.value = grupSeg.flooding;
173
- cardGrup.weightDensity.value = grupSeg.weightDensity
174
- cardGrup.segmentLength.value = CaeNumberToCard(grupSeg.segmentLength)
178
+ cardGrup.weightDensity.value = grupSeg.weightDensity;
179
+ cardGrup.segmentLength.value = CaeNumberToCard(grupSeg.segmentLength);
175
180
 
176
181
  result += cardGrup.getLine();
177
182
  if (i !== this.grupSegments.length - 1) {
@@ -196,12 +201,10 @@ export class GrupObject extends DesignBaseObject implements IReferenceObject {
196
201
  // 更新全部用到该截面组的杆件.
197
202
  render(viewer?: Longan.Viewer) {
198
203
  // console.log("GrupObject render");
199
-
200
204
  // if (!viewer) {
201
205
  // viewer = Process.activeProcess.activeViewer as any;
202
206
  // }
203
207
  // let selectedMemberObjects = this.getReleatedMembers(viewer);
204
-
205
208
  // for (let i = 0; i < selectedMemberObjects.length; i++) {
206
209
  // selectedMemberObjects[i].render();
207
210
  // }
@@ -213,29 +216,28 @@ export class GrupObject extends DesignBaseObject implements IReferenceObject {
213
216
 
214
217
  drawSvg() {}
215
218
 
216
- /**
219
+ /**
217
220
  * 获取引用了该截面组的杆件对象列表.
218
221
  * @param viewer
219
222
  * @returns
220
223
  */
221
- getReleatedMembers(viewer: Longan.Viewer): MemberObject[] {
224
+ getReleatedMembers(viewer: Longan.Viewer): MemberObject[] {
222
225
  let result = new Array<MemberObject>();
223
226
 
224
227
  let members = (viewer.process as Process).grupMapReleativeMembers.get(this);
225
- if(members) {
226
- for(let i = 0; i < members.count(); i++) {
228
+ if (members) {
229
+ for (let i = 0; i < members.count(); i++) {
227
230
  result.push(members.items[i]);
228
231
  }
229
232
  }
230
-
233
+
231
234
  return result;
232
235
  }
233
236
 
234
237
  tempDelete(viewer) {
235
-
236
238
  let plates = this.getReleatedMembers(viewer);
237
239
  plates.forEach((item) => {
238
- if(item instanceof MemberObject) {
240
+ if (item instanceof MemberObject) {
239
241
  item.grup = null;
240
242
  item.setNeedUpdate();
241
243
  }
@@ -74,9 +74,11 @@ export class JointObject extends PointObject implements IReferenceObject {
74
74
  return;
75
75
  }
76
76
 
77
- (Process.activeProcess as Process).nameMapJoint.delete(this.name);
77
+ if ((Process.activeProcess as Process).nameMapJoint.get(this.name)) {
78
+ (Process.activeProcess as Process).nameMapJoint.delete(this.name);
79
+ (Process.activeProcess as Process).nameMapJoint.set(na, this);
80
+ }
78
81
  this._name = na;
79
- (Process.activeProcess as Process).nameMapJoint.set(na, this);
80
82
  }
81
83
 
82
84
  public get fixity() {
@@ -179,10 +179,12 @@ export class MemberObject extends LineObject implements IReferencedObject {
179
179
  }
180
180
 
181
181
  override set name(value) {
182
- (Process.activeProcess as Process).nameMapMember.delete(this.name);
182
+ if ((Process.activeProcess as Process).nameMapMember.get(this.name)) {
183
+ (Process.activeProcess as Process).nameMapMember.delete(this.name);
184
+ (Process.activeProcess as Process).nameMapMember.set(value, this);
185
+ }
183
186
 
184
187
  this._name = value;
185
- (Process.activeProcess as Process).nameMapMember.set(value, this);
186
188
  }
187
189
 
188
190
  public get release_A() {
@@ -1101,7 +1103,7 @@ export class MemberObject extends LineObject implements IReferencedObject {
1101
1103
  segmentLength = this.getMemberLength();
1102
1104
  }
1103
1105
  segmentLength *= this.segmentLengthCoeff;
1104
-
1106
+
1105
1107
  // 每段截面的shell
1106
1108
  let shell_key = -1;
1107
1109
  // 每段截面的顶点和索引.
@@ -1176,10 +1178,7 @@ export class MemberObject extends LineObject implements IReferencedObject {
1176
1178
  );
1177
1179
  }
1178
1180
 
1179
- let offset = Longan.Vector.multiply(
1180
- normal,
1181
- segmentLength
1182
- );
1181
+ let offset = Longan.Vector.multiply(normal, segmentLength);
1183
1182
 
1184
1183
  // 更新下一段杆件的底部截面起点
1185
1184
  origin = Longan.Point.add(origin, offset);
@@ -1703,6 +1702,10 @@ export class MemberObject extends LineObject implements IReferencedObject {
1703
1702
  }
1704
1703
  }
1705
1704
 
1705
+ if(length < 0) {
1706
+ length = 0;
1707
+ }
1708
+
1706
1709
  return length;
1707
1710
  }
1708
1711
 
@@ -25,12 +25,14 @@ export class PGrupObject extends DesignBaseObject implements IReferenceObject {
25
25
  override get name() {
26
26
  return this._name;
27
27
  }
28
-
28
+
29
29
  override set name(value) {
30
- (Process.activeProcess as Process).nameMapPGrup.delete(this.name);
30
+ if ((Process.activeProcess as Process).nameMapPGrup.get(this.name)) {
31
+ (Process.activeProcess as Process).nameMapPGrup.delete(this.name);
32
+ (Process.activeProcess as Process).nameMapPGrup.set(value, this);
33
+ }
31
34
 
32
35
  this._name = value;
33
- (Process.activeProcess as Process).nameMapPGrup.set(value, this);
34
36
  }
35
37
 
36
38
  public get thickness() {
@@ -147,20 +149,19 @@ export class PGrupObject extends DesignBaseObject implements IReferenceObject {
147
149
  let result = new Array<PlateObject>();
148
150
 
149
151
  let plates = (viewer.process as Process).pgrupMapReleativePlates.get(this);
150
- if(plates) {
151
- for(let i = 0; i < plates.count(); i++) {
152
+ if (plates) {
153
+ for (let i = 0; i < plates.count(); i++) {
152
154
  result.push(plates.items[i]);
153
155
  }
154
156
  }
155
-
157
+
156
158
  return result;
157
159
  }
158
160
 
159
161
  tempDelete(viewer) {
160
-
161
162
  let plates = this.getReleatedPlates(viewer);
162
163
  plates.forEach((item) => {
163
- if(item instanceof PlateObject) {
164
+ if (item instanceof PlateObject) {
164
165
  item.pGrup = null;
165
166
  item.setNeedUpdate();
166
167
  }