gs-cae-design 1.1.63 → 1.1.65

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 (112) hide show
  1. package/README.md +15 -0
  2. package/docs/classes/CommandInterfaceManager.md +33 -0
  3. package/lib/.gz +0 -0
  4. package/lib/CAEDesign.common-report.html +2 -2
  5. package/lib/CAEDesign.common.js +142 -65
  6. package/lib/CAEDesign.umd-report.html +2 -2
  7. package/lib/CAEDesign.umd.js +142 -65
  8. package/lib/CAEDesign.umd.min-report.html +2 -2
  9. package/lib/CAEDesign.umd.min.js +142 -65
  10. package/package.json +1 -1
  11. package/src/caeCardEditor/caeCardObjects/sacinp/cardAREA.ts +74 -49
  12. package/src/caeCardEditor/caeCardObjects/seainp/cardRFLRFD.ts +135 -0
  13. package/src/caeCardEditor/caeCardObjects/seainp/cardUCPART.ts +13 -0
  14. package/src/gsDevFx/managers/caeRenderObjectTreeManager.ts +16 -12
  15. package/src/gsDevFx/managers/datReaderManager.ts +70 -39
  16. package/src/gsDevFx/managers/datWriterManager.ts +54 -6
  17. package/src/gsDevFx/managers/interfaceManagers/commandInterfaceManager.ts +30 -0
  18. package/src/gsDevFx/managers/interfaceManagers/postInterfaceManager.ts +175 -171
  19. package/src/gsDevFx/managers/interfaceManagers/selectionInterfaceManager.ts +58 -38
  20. package/src/gsDevFx/managers/persistenceManager.ts +9 -4
  21. package/src/gsDevFx/objects/caeObjects/aftertreatment/LRFDFactorsObject.ts +128 -0
  22. package/src/gsDevFx/objects/caeObjects/memberObject.ts +55 -19
  23. package/src/gsDevFx/objects/caeObjects/optionObjects/seastateUcpart.ts +42 -22
  24. package/src/gsDevFx/objects/caeObjects/pretreatment/windAreaObject.ts +166 -0
  25. package/src/gsDevFx/objects/caeObjects/sections/tubSectionObject.ts +4 -0
  26. package/src/gsDevFx/objects/loadObjects/currLoadObject.ts +3 -8
  27. package/src/gsDevFx/objects/loadObjects/waveLoadObject.ts +1 -2
  28. package/src/gsDevFx/objects/loadObjects/windLoadObject.ts +3 -5
  29. package/src/gsDevFx/objects/pretreatmentObjects/colorDivGrupThicknessObject.ts +1 -1
  30. package/src/viewerWrapper/commands/aftertreatment/LRFDFactors/LRFDFactorsConfig.ts +93 -0
  31. package/src/viewerWrapper/commands/aftertreatment/LRFDFactors/commandLRFDFactors.ts +77 -0
  32. package/src/viewerWrapper/commands/aftertreatment/addCurrentLoad/addCurrentLoadConfig.ts +2 -2
  33. package/src/viewerWrapper/commands/aftertreatment/addCurrentLoad/commandAddCurrentLoad.ts +13 -15
  34. package/src/viewerWrapper/commands/aftertreatment/addSeastateUcpart/addSeastateUcpartConfig.ts +42 -0
  35. package/src/viewerWrapper/commands/aftertreatment/addSeastateUcpart/commandAddSeastateUcpart.ts +227 -0
  36. package/src/viewerWrapper/commands/aftertreatment/addWaveLoad/commandAddWaveLoad.ts +11 -11
  37. package/src/viewerWrapper/commands/aftertreatment/addWindLoad/addWindLoadConfig.ts +1 -1
  38. package/src/viewerWrapper/commands/aftertreatment/addWindLoad/commandAddWindLoad.ts +13 -13
  39. package/src/viewerWrapper/commands/aftertreatment/editCurrentLoad/commandEditCurrentLoad.ts +2 -4
  40. package/src/viewerWrapper/commands/aftertreatment/editCurrentLoad/editCurrentLoadConfig.ts +2 -2
  41. package/src/viewerWrapper/commands/aftertreatment/editWindLoad/commandEditWindLoad.ts +2 -2
  42. package/src/viewerWrapper/commands/aftertreatment/editWindLoad/editWindLoadConfig.ts +1 -1
  43. package/src/viewerWrapper/commands/aftertreatment/setAndShowSeastateLoadOptions/commandSetAndShowSeastateLoadOptions.ts +3 -2
  44. package/src/viewerWrapper/commands/pretreatment/colorDivideByGrupThickness/colorDivideByGrupThicknessConfig.ts +1 -1
  45. package/src/viewerWrapper/commands/pretreatment/surfaceWeightEdit/surfaceWeightEditConfig.ts +1 -1
  46. package/src/viewerWrapper/commands/pretreatment/windArea/commandWindArea.ts +7 -7
  47. package/src/viewerWrapper/commands/pretreatment/windArea/windAreaConfig.ts +0 -3
  48. package/src/viewerWrapper/commands/pretreatment/windAreaEdit/commandWindAreaEdit.ts +246 -0
  49. package/src/viewerWrapper/commands/pretreatment/windAreaEdit/windAreaEditConfig.ts +55 -0
  50. package/types/caeDesign/src/caeCardEditor/caeCardObjects/sacinp/cardAREA.d.ts +24 -0
  51. package/types/caeDesign/src/caeCardEditor/caeCardObjects/sacinp/cardAREA.d.ts.map +1 -1
  52. package/types/caeDesign/src/caeCardEditor/caeCardObjects/seainp/cardRFLRFD.d.ts +105 -0
  53. package/types/caeDesign/src/caeCardEditor/caeCardObjects/seainp/cardRFLRFD.d.ts.map +1 -0
  54. package/types/caeDesign/src/caeCardEditor/caeCardObjects/seainp/cardUCPART.d.ts +2 -0
  55. package/types/caeDesign/src/caeCardEditor/caeCardObjects/seainp/cardUCPART.d.ts.map +1 -1
  56. package/types/caeDesign/src/gsDevFx/managers/caeRenderObjectTreeManager.d.ts.map +1 -1
  57. package/types/caeDesign/src/gsDevFx/managers/datReaderManager.d.ts +2 -1
  58. package/types/caeDesign/src/gsDevFx/managers/datReaderManager.d.ts.map +1 -1
  59. package/types/caeDesign/src/gsDevFx/managers/datWriterManager.d.ts.map +1 -1
  60. package/types/caeDesign/src/gsDevFx/managers/interfaceManagers/commandInterfaceManager.d.ts +6 -0
  61. package/types/caeDesign/src/gsDevFx/managers/interfaceManagers/commandInterfaceManager.d.ts.map +1 -1
  62. package/types/caeDesign/src/gsDevFx/managers/interfaceManagers/commonInterfaceManager.d.ts +1 -1
  63. package/types/caeDesign/src/gsDevFx/managers/interfaceManagers/postInterfaceManager.d.ts.map +1 -1
  64. package/types/caeDesign/src/gsDevFx/managers/interfaceManagers/selectionInterfaceManager.d.ts +1 -0
  65. package/types/caeDesign/src/gsDevFx/managers/interfaceManagers/selectionInterfaceManager.d.ts.map +1 -1
  66. package/types/caeDesign/src/gsDevFx/managers/persistenceManager.d.ts.map +1 -1
  67. package/types/caeDesign/src/gsDevFx/objects/caeObjects/aftertreatment/LRFDFactorsObject.d.ts +25 -0
  68. package/types/caeDesign/src/gsDevFx/objects/caeObjects/aftertreatment/LRFDFactorsObject.d.ts.map +1 -0
  69. package/types/caeDesign/src/gsDevFx/objects/caeObjects/memberObject.d.ts.map +1 -1
  70. package/types/caeDesign/src/gsDevFx/objects/caeObjects/optionObjects/seastateUcpart.d.ts +7 -5
  71. package/types/caeDesign/src/gsDevFx/objects/caeObjects/optionObjects/seastateUcpart.d.ts.map +1 -1
  72. package/types/caeDesign/src/gsDevFx/objects/caeObjects/pretreatment/WindAreaObject.d.ts +15 -14
  73. package/types/caeDesign/src/gsDevFx/objects/caeObjects/pretreatment/WindAreaObject.d.ts.map +1 -1
  74. package/types/caeDesign/src/gsDevFx/objects/caeObjects/sections/tubSectionObject.d.ts.map +1 -1
  75. package/types/caeDesign/src/gsDevFx/objects/loadObjects/currLoadObject.d.ts +4 -9
  76. package/types/caeDesign/src/gsDevFx/objects/loadObjects/currLoadObject.d.ts.map +1 -1
  77. package/types/caeDesign/src/gsDevFx/objects/loadObjects/waveLoadObject.d.ts +1 -2
  78. package/types/caeDesign/src/gsDevFx/objects/loadObjects/waveLoadObject.d.ts.map +1 -1
  79. package/types/caeDesign/src/gsDevFx/objects/loadObjects/windLoadObject.d.ts +2 -4
  80. package/types/caeDesign/src/gsDevFx/objects/loadObjects/windLoadObject.d.ts.map +1 -1
  81. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/LRFDFactors/LRFDFactorsConfig.d.ts +6 -0
  82. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/LRFDFactors/LRFDFactorsConfig.d.ts.map +1 -0
  83. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/LRFDFactors/commandLRFDFactors.d.ts +15 -0
  84. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/LRFDFactors/commandLRFDFactors.d.ts.map +1 -0
  85. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/addCurrentLoad/commandAddCurrentLoad.d.ts.map +1 -1
  86. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/addSeastateUcpart/addSeastateUcpartConfig.d.ts +5 -0
  87. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/addSeastateUcpart/addSeastateUcpartConfig.d.ts.map +1 -0
  88. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/addSeastateUcpart/commandAddSeastateUcpart.d.ts +22 -0
  89. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/addSeastateUcpart/commandAddSeastateUcpart.d.ts.map +1 -0
  90. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/editCurrentLoad/commandEditCurrentLoad.d.ts.map +1 -1
  91. package/types/caeDesign/src/viewerWrapper/commands/aftertreatment/setAndShowSeastateLoadOptions/commandSetAndShowSeastateLoadOptions.d.ts.map +1 -1
  92. package/types/caeDesign/src/viewerWrapper/commands/pretreatment/windArea/windAreaConfig.d.ts.map +1 -1
  93. package/types/caeDesign/src/viewerWrapper/commands/pretreatment/windAreaEdit/commandWindAreaEdit.d.ts +31 -0
  94. package/types/caeDesign/src/viewerWrapper/commands/pretreatment/windAreaEdit/commandWindAreaEdit.d.ts.map +1 -0
  95. package/types/caeDesign/src/viewerWrapper/commands/pretreatment/windAreaEdit/windAreaEditConfig.d.ts +9 -0
  96. package/types/caeDesign/src/viewerWrapper/commands/pretreatment/windAreaEdit/windAreaEditConfig.d.ts.map +1 -0
  97. package/types/caeDesign/src/viewerWrapper/commands/splitMemberByCoordinate/splitMemberByCoordinateConfig.d.ts +5 -0
  98. package/types/caeDesign/src/viewerWrapper/commands/splitMemberByEqualPatrs/commandSplitMemberByEqualPatrs.d.ts +18 -0
  99. package/types/caeDesign/src/viewerWrapper/commands/splitMemberByEqualPatrs/commandSplitMemberByEqualPatrs.d.ts.map +1 -0
  100. package/types/caeDesign/src/viewerWrapper/commands/splitMemberByEqualPatrs/splitMemberByEqualPatrsConfig.d.ts +5 -0
  101. package/types/caeDesign/src/viewerWrapper/commands/splitMemberByEqualPatrs/splitMemberByEqualPatrsConfig.d.ts.map +1 -0
  102. package/types/caeDesign/src/viewerWrapper/commands/splitMemberByExistingJoint/commandSplitMemberByExistingJoint.d.ts +26 -0
  103. package/types/caeDesign/src/viewerWrapper/commands/splitMemberByExistingJoint/commandSplitMemberByExistingJoint.d.ts.map +1 -0
  104. package/types/ceecDesign/src/api/gslServices.d.ts.map +0 -1
  105. package/types/ceecDesign/src/gsDevFx/objects/designBaseObject/designBaseObject.d.ts +0 -11
  106. package/types/ceecDesign/src/gsDevFx/objects/designBaseObject/designBaseObject.d.ts.map +0 -1
  107. package/types/ceecDesign/src/gsDevFx/objects/wireframe/polylineObject.d.ts +0 -14
  108. package/types/ceecDesign/src/gsDevFx/objects/wireframe/polylineObject.d.ts.map +0 -1
  109. package/types/ceecDesign/src/gsDevFx/registerType.d.ts +0 -2
  110. package/types/ceecDesign/src/gsDevFx/registerType.d.ts.map +0 -1
  111. package/types/ceecDesign/src/utils/cookie.d.ts +0 -38
  112. package/src/gsDevFx/objects/caeObjects/pretreatment/WindAreaObject.ts +0 -101
@@ -11,7 +11,7 @@ import { WeightIdObject } from "../objects/weightObjects/weightIdObject";
11
11
  import { WeightBaseObject } from "../objects/weightObjects/weightBaseObject";
12
12
  import { JointWeightObject } from "../objects/weightObjects/jointWeightObject";
13
13
  import { MemberWeightConcentratedObject } from "../objects/weightObjects/memberWeightConcentratedObject";
14
- import { MemberWeightDistributedObject } from "../objects/weightObjects/memberWeightDistributedObject";
14
+ import { MemberWeightDistributedObject } from "../objects/weightObjects/memberWeightDistributedObject";
15
15
  import { CenterRenderObject } from "../objects/caeObjects/pretreatment/centerRenderObject";
16
16
  import { SurfaceDefinitionObject } from "../objects/caeObjects/pretreatment/surfaceDefinitionObject";
17
17
  import { BoundaryJointsObject } from "../objects/caeObjects/pretreatment/boundaryJointsObject";
@@ -70,7 +70,9 @@ import { SeastateWind } from "../objects/caeObjects/optionObjects/seastateWind";
70
70
  import { SeastateCurr } from "../objects/caeObjects/optionObjects/seastateCurr";
71
71
  import { SeastateLcomb } from "../objects/caeObjects/optionObjects/seastateLcomb";
72
72
  import { DeadLoadObject } from '../objects/caeObjects/aftertreatment/deadLoadObject'
73
- import {WindShieldObject} from "../objects/caeObjects/pretreatment/windShieldObject";
73
+ import { LRFDFactorsObject } from '../objects/caeObjects/aftertreatment/LRFDFactorsObject'
74
+ import { WindShieldObject } from "../objects/caeObjects/pretreatment/windShieldObject";
75
+ import { WindAreaObject } from "../objects/caeObjects/pretreatment/windAreaObject";
74
76
  export class PersistenceManager extends Longan.PersistenceManager {
75
77
  referenceList = new Longan.StringKeyList<IReferenceObject>();
76
78
  needReferenceList = new Longan.List<IReferencedObject>();
@@ -219,8 +221,11 @@ export class PersistenceManager extends Longan.PersistenceManager {
219
221
  "MemberLoadDistributedObject",
220
222
  MemberLoadDistributedObject.prototype
221
223
  );
222
- this.typeList.add('DeadLoadObject',DeadLoadObject.prototype)
223
- this.typeList.add('WindShieldObject',WindShieldObject.prototype)
224
+ this.typeList.add('DeadLoadObject', DeadLoadObject.prototype)
225
+ this.typeList.add('LRFDFactorsObject', LRFDFactorsObject.prototype)
226
+
227
+ this.typeList.add('WindShieldObject', WindShieldObject.prototype)
228
+ this.typeList.add('WindAreaObject', WindAreaObject.prototype)
224
229
  // 项目配置数据.
225
230
  this.typeList.add("ModelTitle", ModelTitle.prototype);
226
231
  this.typeList.add("ModelOptions", ModelOptions.prototype);
@@ -0,0 +1,128 @@
1
+ import { PersistenceManager } from "../../../managers/persistenceManager";
2
+ import { InstanceRenderObject } from "../../instancesObjects/instanceRenderObject";
3
+ import { DesignBaseObject } from "gs-ceec-design";
4
+ import { Longan } from "gs-bim-air";
5
+
6
+
7
+ import { CardRFLRFD } from '../../../../caeCardEditor/caeCardObjects/seainp/cardRFLRFD'
8
+ export class LRFDFactorsObject extends DesignBaseObject {
9
+ typeName = "LRFDFactorsObject";
10
+ cardData: string = null;
11
+ cardObject: CardRFLRFD = null;
12
+ // 屈服应力系数
13
+ yieldStressFactor: number = 1;
14
+ // 轴向拉力系数(管状)
15
+ tubularAxialTension: number = 0.95;
16
+ // 轴向压力系数(管状)
17
+ tubularAxialCompression: number = 0.85;
18
+ // 弯曲系数(管状)
19
+ tubularBending: number = 0.95;
20
+ // 剪力系数(管状)
21
+ tubularShear: number = 0.95;
22
+ // 环向应力系数(管状)
23
+ tubularHoop: number = 0.8;
24
+ noTubularAxialTension: number = 0.9;
25
+ noTubularAxialCompression: number = 0.85;
26
+ noTubularBending: number = 0.9;
27
+ noTubularShear: number = 0.9;
28
+ constructor() {
29
+ super();
30
+ this.instanceTypes.add("main", InstanceRenderObject.prototype);
31
+ }
32
+ serialize(): any {
33
+ let obj = super.serialize();
34
+ if (this.cardObject) {
35
+ obj.cardData = this.cardObject.getLine();
36
+ } else if (this.cardData) {
37
+ obj.cardData = this.cardData;
38
+ }
39
+ if (this.yieldStressFactor) {
40
+ obj.yieldStressFactor = this.yieldStressFactor;
41
+ }
42
+ if (this.tubularAxialTension) {
43
+ obj.tubularAxialTension = this.tubularAxialTension;
44
+ }
45
+ if (this.tubularAxialCompression) {
46
+ obj.tubularAxialCompression = this.tubularAxialCompression;
47
+ }
48
+ if (this.tubularBending) {
49
+ obj.tubularBending = this.tubularBending;
50
+ }
51
+ if (this.tubularShear) {
52
+ obj.tubularShear = this.tubularShear;
53
+ }
54
+ if (this.tubularHoop) {
55
+ obj.tubularHoop = this.tubularHoop;
56
+ }
57
+
58
+ if (this.noTubularAxialTension) {
59
+ obj.noTubularAxialTension = this.noTubularAxialTension;
60
+ }
61
+ if (this.noTubularAxialCompression) {
62
+ obj.noTubularAxialCompression = this.noTubularAxialCompression;
63
+ }
64
+ if (this.noTubularBending) {
65
+ obj.noTubularBending = this.noTubularBending;
66
+ }
67
+ if (this.noTubularShear) {
68
+ obj.noTubularShear = this.noTubularShear;
69
+ }
70
+ return obj;
71
+ }
72
+ deserialize(obj: any, pm: PersistenceManager) {
73
+ super.deserialize(obj, pm);
74
+ if (obj.yieldStressFactor) {
75
+ this.yieldStressFactor = obj.yieldStressFactor;
76
+ }
77
+ if (obj.tubularAxialTension) {
78
+ this.tubularAxialTension = obj.tubularAxialTension;
79
+ }
80
+ if (obj.tubularAxialCompression) {
81
+ this.tubularAxialCompression = obj.tubularAxialCompression;
82
+ }
83
+ if (obj.tubularBending) {
84
+ this.tubularBending = obj.tubularBending;
85
+ }
86
+ if (obj.tubularShear) {
87
+ this.tubularShear = obj.tubularShear;
88
+ }
89
+ if (obj.tubularHoop) {
90
+ this.tubularHoop = obj.tubularHoop;
91
+ }
92
+ if (obj.noTubularAxialTension) {
93
+ this.noTubularAxialTension = obj.noTubularAxialTension;
94
+ }
95
+ if (obj.noTubularAxialCompression) {
96
+ this.noTubularAxialCompression = obj.noTubularAxialCompression;
97
+ }
98
+ if (obj.noTubularBending) {
99
+ this.noTubularBending = obj.noTubularBending;
100
+ }
101
+ if (obj.noTubularShear) {
102
+ this.noTubularShear = obj.noTubularShear;
103
+ }
104
+ }
105
+ protected clone(cloneObj: any, cloneManager?: Longan.CloneManager) {
106
+ cloneObj = super.clone(cloneObj);
107
+ cloneObj.cardData = this.cardData;
108
+
109
+ return cloneObj;
110
+ }
111
+ serializeToCard() {
112
+ let cardRFLRFD = new CardRFLRFD();
113
+ cardRFLRFD.lineLabel.value = "RFLRFD";
114
+ // 需要c将数字转为字符串,卡片编辑就是处理字符串
115
+ cardRFLRFD.yieldStressFactor.value = this.yieldStressFactor.toString();
116
+ cardRFLRFD.tubularAxialTension.value = this.tubularAxialTension.toString();
117
+ cardRFLRFD.tubularAxialCompression.value = this.tubularAxialCompression.toString();
118
+ cardRFLRFD.tubularBending.value = this.tubularBending.toString();
119
+ cardRFLRFD.tubularShear.value = this.tubularShear.toString();
120
+ cardRFLRFD.tubularHoop.value = this.tubularHoop.toString();
121
+ cardRFLRFD.noTubularAxialTension.value = this.noTubularAxialTension.toString();
122
+ cardRFLRFD.noTubularAxialCompression.value = this.noTubularAxialCompression.toString();
123
+ cardRFLRFD.noTubularBending.value = this.noTubularBending.toString();
124
+ cardRFLRFD.noTubularShear.value = this.noTubularShear.toString();
125
+
126
+ return cardRFLRFD.getLine();
127
+ }
128
+ }
@@ -889,24 +889,60 @@ export class MemberObject extends LineObject implements IReferencedObject {
889
889
 
890
890
  let result = cardMember.getLine();
891
891
  if (this.startOffset || this.endOffset) {
892
- if (
893
- !this.arrayEqual(this.startOffset, [0, 0, 0]) ||
894
- !this.arrayEqual(this.endOffset, [0, 0, 0])
895
- ) {
896
- result += "\n";
897
-
898
- let cardMemberOffsets = new CardMemberOffsets();
899
- cardMemberOffsets.lineLabel.value = "MEMBER OFFSETS";
900
- cardMemberOffsets.comments.value = "";
901
- cardMemberOffsets.jointA_XOffset.value = this.startOffset[0];
902
- cardMemberOffsets.jointA_YOffset.value = this.startOffset[1];
903
- cardMemberOffsets.jointA_ZOffset.value = this.startOffset[2];
904
-
905
- cardMemberOffsets.jointB_XOffset.value = this.endOffset[0];
906
- cardMemberOffsets.jointB_YOffset.value = this.endOffset[1];
907
- cardMemberOffsets.jointB_ZOffset.value = this.endOffset[2];
908
-
909
- result += cardMemberOffsets.getLine();
892
+ if (!this.startOffset) {
893
+ if (!this.arrayEqual(this.endOffset, [0, 0, 0])) {
894
+ result += "\n";
895
+
896
+ let cardMemberOffsets = new CardMemberOffsets();
897
+ cardMemberOffsets.lineLabel.value = "MEMBER OFFSETS";
898
+ cardMemberOffsets.comments.value = "";
899
+ cardMemberOffsets.jointA_XOffset.value = 0;
900
+ cardMemberOffsets.jointA_YOffset.value = 0;
901
+ cardMemberOffsets.jointA_ZOffset.value = 0;
902
+
903
+ cardMemberOffsets.jointB_XOffset.value = this.endOffset[0];
904
+ cardMemberOffsets.jointB_YOffset.value = this.endOffset[1];
905
+ cardMemberOffsets.jointB_ZOffset.value = this.endOffset[2];
906
+
907
+ result += cardMemberOffsets.getLine();
908
+ }
909
+ } else if (!this.endOffset) {
910
+ if (!this.arrayEqual(this.startOffset, [0, 0, 0])) {
911
+ result += "\n";
912
+
913
+ let cardMemberOffsets = new CardMemberOffsets();
914
+ cardMemberOffsets.lineLabel.value = "MEMBER OFFSETS";
915
+ cardMemberOffsets.comments.value = "";
916
+ cardMemberOffsets.jointA_XOffset.value = this.startOffset[0];
917
+ cardMemberOffsets.jointA_YOffset.value = this.startOffset[1];
918
+ cardMemberOffsets.jointA_ZOffset.value = this.startOffset[2];
919
+
920
+ cardMemberOffsets.jointB_XOffset.value = 0;
921
+ cardMemberOffsets.jointB_YOffset.value = 0;
922
+ cardMemberOffsets.jointB_ZOffset.value = 0;
923
+
924
+ result += cardMemberOffsets.getLine();
925
+ }
926
+ } else {
927
+ if (
928
+ !this.arrayEqual(this.startOffset, [0, 0, 0]) ||
929
+ !this.arrayEqual(this.endOffset, [0, 0, 0])
930
+ ) {
931
+ result += "\n";
932
+
933
+ let cardMemberOffsets = new CardMemberOffsets();
934
+ cardMemberOffsets.lineLabel.value = "MEMBER OFFSETS";
935
+ cardMemberOffsets.comments.value = "";
936
+ cardMemberOffsets.jointA_XOffset.value = this.startOffset[0];
937
+ cardMemberOffsets.jointA_YOffset.value = this.startOffset[1];
938
+ cardMemberOffsets.jointA_ZOffset.value = this.startOffset[2];
939
+
940
+ cardMemberOffsets.jointB_XOffset.value = this.endOffset[0];
941
+ cardMemberOffsets.jointB_YOffset.value = this.endOffset[1];
942
+ cardMemberOffsets.jointB_ZOffset.value = this.endOffset[2];
943
+
944
+ result += cardMemberOffsets.getLine();
945
+ }
910
946
  }
911
947
  }
912
948
 
@@ -1702,7 +1738,7 @@ export class MemberObject extends LineObject implements IReferencedObject {
1702
1738
  }
1703
1739
  }
1704
1740
 
1705
- if(length < 0) {
1741
+ if (length < 0) {
1706
1742
  length = 0;
1707
1743
  }
1708
1744
 
@@ -1,16 +1,19 @@
1
1
  import { DesignBaseObject } from "gs-ceec-design";
2
2
  import { PersistenceManager } from "../../../managers/persistenceManager";
3
- import { Longan } from "gs-bim-air";
4
3
  import { CardUCPART } from "../../../../caeCardEditor/caeCardObjects/seainp/cardUCPART";
4
+ import { CaeNumber } from "../../../../utility/utility";
5
5
  /**
6
6
  * SeaSInp的UCPART卡片数据.
7
7
  */
8
8
  export class SeastateUcpart extends DesignBaseObject {
9
9
  typeName = "SeastateUcpart";
10
10
 
11
- cardData: string = null;
12
-
13
- cardObject: CardUCPART = null;
11
+ lowerLimmit_first: number = 0;
12
+ upperLimmit_first: number = 0;
13
+ lowerLimmit_second: number = 0;
14
+ upperLimmit_second: number = 0;
15
+ lowerLimmit_thrid: number = 0;
16
+ upperLimmit_thrid: number = 0;
14
17
 
15
18
  constructor() {
16
19
  super();
@@ -19,10 +22,23 @@ export class SeastateUcpart extends DesignBaseObject {
19
22
  serialize(): any {
20
23
  let obj = super.serialize();
21
24
 
22
- if (this.cardObject) {
23
- obj.cardData = this.cardObject.getLine();
24
- } else if (this.cardData) {
25
- obj.cardData = this.cardData;
25
+ if(this.notNullAndNotUndefined(this.lowerLimmit_first)) {
26
+ obj.lowerLimmit_first = this.lowerLimmit_first
27
+ }
28
+ if(this.notNullAndNotUndefined(this.upperLimmit_first)) {
29
+ obj.upperLimmit_first = this.upperLimmit_first
30
+ }
31
+ if(this.notNullAndNotUndefined(this.lowerLimmit_second)) {
32
+ obj.lowerLimmit_second = this.lowerLimmit_second
33
+ }
34
+ if(this.notNullAndNotUndefined(this.upperLimmit_second)) {
35
+ obj.upperLimmit_second = this.upperLimmit_second
36
+ }
37
+ if(this.notNullAndNotUndefined(this.lowerLimmit_thrid)) {
38
+ obj.lowerLimmit_thrid = this.lowerLimmit_thrid
39
+ }
40
+ if(this.notNullAndNotUndefined(this.upperLimmit_thrid)) {
41
+ obj.upperLimmit_thrid = this.upperLimmit_thrid
26
42
  }
27
43
 
28
44
  return obj;
@@ -31,26 +47,30 @@ export class SeastateUcpart extends DesignBaseObject {
31
47
  deserialize(obj: any, pm: PersistenceManager) {
32
48
  super.deserialize(obj, pm);
33
49
 
34
- if (obj.cardData) {
35
- this.cardData = obj.cardData;
36
- this.cardObject = new CardUCPART(this.cardData);
37
- }
50
+ this.lowerLimmit_first = CaeNumber(obj.lowerLimmit_first)
38
51
 
39
- this.setNeedUpdate();
40
- }
52
+ this.upperLimmit_first = CaeNumber(obj.upperLimmit_first)
53
+
54
+ this.lowerLimmit_second = CaeNumber(obj.lowerLimmit_second)
41
55
 
42
- protected clone(cloneObj: any, cloneManager?: Longan.CloneManager) {
43
- cloneObj = super.clone(cloneObj);
44
- cloneObj.cardData = this.cardData;
56
+ this.upperLimmit_second = CaeNumber(obj.upperLimmit_second)
45
57
 
46
- return cloneObj;
58
+ this.lowerLimmit_thrid = CaeNumber(obj.lowerLimmit_thrid)
59
+
60
+ this.upperLimmit_thrid = CaeNumber(obj.upperLimmit_thrid)
61
+
62
+
47
63
  }
48
64
 
49
65
  serializeToCard() {
50
- let result = null;
51
-
52
- result = this.cardObject.getLine();
66
+ let cardUCPART = new CardUCPART()
67
+ cardUCPART.lowerLimmit_first.value = this.lowerLimmit_first ? this.lowerLimmit_first.toString() : ''
68
+ cardUCPART.upperLimmit_first.value = this.upperLimmit_first ? this.upperLimmit_first.toString() : ''
69
+ cardUCPART.lowerLimmit_second.value = this.lowerLimmit_second ? this.lowerLimmit_second.toString() : ''
70
+ cardUCPART.upperLimmit_second.value = this.upperLimmit_second ? this.upperLimmit_second.toString() : ''
71
+ cardUCPART.lowerLimmit_thrid.value = this.lowerLimmit_thrid ? this.lowerLimmit_thrid.toString() : ''
72
+ cardUCPART.upperLimmit_thrid.value = this.upperLimmit_thrid ? this.upperLimmit_thrid.toString() : ''
53
73
 
54
- return result;
74
+ return cardUCPART
55
75
  }
56
76
  }
@@ -0,0 +1,166 @@
1
+ import { PersistenceManager } from "../../../managers/persistenceManager";
2
+ import { InstanceRenderObject } from "../../instancesObjects/instanceRenderObject";
3
+ import { DesignBaseObject } from "gs-ceec-design";
4
+ import { CaeNumber } from "../../../../utility/utility";
5
+ import { Longan } from "gs-bim-air";
6
+ import { CardAREA } from "../../../../caeCardEditor/caeCardObjects/sacinp/cardAREA";
7
+ export class WindAreaObject extends DesignBaseObject {
8
+ typeName = "WindAreaObject";
9
+ cardData: string = "";
10
+ cardObject: CardAREA = null;
11
+ areaID: string = '';
12
+ areaDefinition: string = '';
13
+ xProjArea: string = '';
14
+ yProjArea: string = ''
15
+ zProjArea: string = '';
16
+ totalArea: string = '';
17
+ horizontalAngle: string = '';
18
+ verticalAngle: string = '';
19
+ XCoord: string = '';
20
+ YCoord: string = '';
21
+ ZCoord: string = '';
22
+ shearFactor: string = '';
23
+ actionNodeList: Array<any> = [];
24
+ constructor(areaID) {
25
+ super();
26
+ this.name = areaID
27
+ this.instanceTypes.add("main", InstanceRenderObject.prototype);
28
+ }
29
+ serialize(): any {
30
+ let obj = super.serialize();
31
+ if (this.cardObject) {
32
+ obj.cardData = this.cardObject.getLine();
33
+ }
34
+ else if (this.cardData) {
35
+ obj.cardData = this.cardData;
36
+ }
37
+ if (this.areaID) {
38
+ obj.areaID = this.areaID;
39
+ }
40
+ if (this.areaDefinition) {
41
+ obj.areaDefinition = this.areaDefinition;
42
+ }
43
+ obj.xProjArea = this.xProjArea;
44
+ obj.yProjArea = this.yProjArea;
45
+ obj.zProjArea = this.zProjArea;
46
+ obj.totalArea = this.totalArea;
47
+ obj.horizontalAngle = this.horizontalAngle;
48
+ obj.horizontalAngle = this.horizontalAngle;
49
+ obj.verticalAngle = this.verticalAngle;
50
+ obj.XCoord = this.XCoord;
51
+ obj.YCoord = this.YCoord;
52
+ obj.ZCoord = this.ZCoord;
53
+ obj.shearFactor = this.shearFactor;
54
+ obj.actionNodeList = this.actionNodeList;
55
+ return obj
56
+ }
57
+ deserialize(obj: any, pm: PersistenceManager) {
58
+ super.deserialize(obj, pm);
59
+ if (obj.cardData) {
60
+ this.cardData = obj.cardData;
61
+ }
62
+ if (obj.areaID) {
63
+ this.areaID = obj.areaID;
64
+ }
65
+ if (obj.areaDefinition) {
66
+ this.areaDefinition = obj.areaDefinition;
67
+ }
68
+ console.log('deserialize',obj);
69
+
70
+ this.xProjArea = CaeNumber(obj.xProjArea);
71
+ this.yProjArea = CaeNumber(obj.yProjArea);
72
+ this.zProjArea = CaeNumber(obj.zProjArea);
73
+ this.totalArea = CaeNumber(obj.totalArea);
74
+ this.horizontalAngle = CaeNumber(obj.horizontalAngle);
75
+ this.verticalAngle = CaeNumber(obj.verticalAngle);
76
+ this.XCoord = CaeNumber(obj.XCoord);
77
+ this.YCoord = CaeNumber(obj.YCoord);
78
+ this.ZCoord = CaeNumber(obj.ZCoord);
79
+ this.shearFactor = CaeNumber(obj.shearFactor);
80
+ if (obj.actionNodeList) {
81
+ this.actionNodeList = obj.actionNodeList;
82
+ }
83
+
84
+ }
85
+ protected clone(cloneObj: any, cloneManager?: Longan.CloneManager) {
86
+ cloneObj = super.clone(cloneObj);
87
+ cloneObj.cardData = this.cardData;
88
+
89
+ return cloneObj;
90
+ }
91
+
92
+ static checkName(name: string): boolean {
93
+ let reg = /^[A-Z0-9]*$/;
94
+ if (!reg.test(name) || name.trimEnd().length > 2) {
95
+ console.log("受风面ID不符合规范");
96
+ return false;
97
+ }
98
+ return true;
99
+ }
100
+ serializeToCard(): string {
101
+ const lines: string[] = [];
102
+
103
+ // -----------------------
104
+ // 主行 (含基本信息 + 最多 7 个节点)
105
+ // -----------------------
106
+ const cardAREA = new CardAREA();
107
+ cardAREA.lineLabel.value = "AREA";
108
+ cardAREA.areaID.value = this.areaID;
109
+
110
+ if (['F', 'B', 'D'].includes(this.areaDefinition)) {
111
+ cardAREA.xProjArea.value = this.xProjArea || this.xProjArea === '0' ? this.xProjArea.toString() : '';
112
+ cardAREA.yProjArea.value = this.yProjArea || this.yProjArea === '0' ? this.yProjArea.toString() : '';
113
+ cardAREA.zProjArea.value = this.zProjArea || this.zProjArea === '0' ? this.zProjArea.toString() : '';
114
+ } else if (['A', 'R'].includes(this.areaDefinition)) {
115
+ cardAREA.xProjArea.value = '';
116
+ cardAREA.yProjArea.value = '';
117
+ cardAREA.zProjArea.value = '';
118
+ }
119
+
120
+ cardAREA.totalArea.value = this.totalArea || this.totalArea === '0' ? this.totalArea.toString() : '';
121
+ cardAREA.horizontalAngle.value = this.horizontalAngle || this.horizontalAngle === '0' ? this.horizontalAngle.toString() : '';
122
+ cardAREA.verticalAngle.value = this.verticalAngle || this.verticalAngle === '0' ? this.verticalAngle.toString() : '';
123
+ cardAREA.XCoord.value = this.XCoord || this.XCoord === '0' ? this.XCoord.toString() : '';
124
+ cardAREA.YCoord.value = this.YCoord || this.YCoord === '0' ? this.YCoord.toString() : '';
125
+ cardAREA.ZCoord.value = this.ZCoord || this.ZCoord === '0' ? this.ZCoord.toString() : '';
126
+ cardAREA.shearFactor.value = this.shearFactor || this.shearFactor === '0' ? this.shearFactor.toString() : '';
127
+ cardAREA.areaDefinition.value = this.areaDefinition;
128
+
129
+ // -----------------------
130
+ // 作用节点分配到 jointName1 ~ jointName7
131
+ // -----------------------
132
+ const nodes = Array.isArray(this.actionNodeList)
133
+ ? this.actionNodeList.filter(n => !!n)
134
+ : [];
135
+
136
+ const groups: string[][] = [];
137
+ for (let i = 0; i < nodes.length; i += 7) {
138
+ groups.push(nodes.slice(i, i + 7));
139
+ }
140
+
141
+ // 第一行:卡片基本信息 + 前7个节点
142
+ if (groups.length > 0) {
143
+ groups[0].forEach((node, idx) => {
144
+ const jointValue = node || ''
145
+ cardAREA[`jointName${idx + 1}`].value = jointValue;
146
+ });
147
+ }
148
+ lines.push(cardAREA.getLine());
149
+ // -----------------------
150
+ // 后续行:只包含 areaID + 节点
151
+ // -----------------------
152
+ for (let g = 1; g < groups.length; g++) {
153
+ const extra = new CardAREA();
154
+ extra.lineLabel.value = "AREA";
155
+ extra.areaID.value = this.areaID;
156
+
157
+ groups[g].forEach((node, idx) => {
158
+
159
+ (extra as any)[`jointName${idx + 1}`].value = node;
160
+ });
161
+ lines.push(extra.getLine());
162
+ }
163
+ return lines.join("\n");
164
+ }
165
+
166
+ }
@@ -236,6 +236,10 @@ export class TubSectionObject
236
236
  radius3 = R2 / 2;
237
237
  radius4 = R2 / 2 - D2;
238
238
 
239
+ if(radius2 <= radius3) {
240
+ radius2 = radius3 * 1.01;
241
+ }
242
+
239
243
  // 内圆的三个点 外上 外下 内上
240
244
  let point4 = Longan.Vector.multiply(zAxis, radius3);
241
245
  let point5 = Longan.Vector.multiply(zAxis, -radius3);
@@ -5,7 +5,6 @@ import { CardCURR } from "../../../caeCardEditor/caeCardObjects/seainp/cardCURR"
5
5
  import { CaeNumber } from "../../../utility/utility";
6
6
 
7
7
  export enum FactorOption {
8
- None = "",
9
8
  BC = "BC",
10
9
  US = "US",
11
10
  }
@@ -14,22 +13,18 @@ export enum CrsetStretchingOption {
14
13
  CN = "CN",
15
14
  NL = "NL",
16
15
  LN = "LN",
17
- None = "",
18
16
  }
19
17
 
20
18
  export enum ElevationPercentOption {
21
19
  True = "WDP",
22
- False = ""
23
20
  }
24
21
 
25
22
  export enum ApparentWavePeriodOption {
26
23
  True = "AWP",
27
- False = ""
28
24
  }
29
25
 
30
26
  export enum VelocityUnitsOption {
31
27
  True = "FPS",
32
- False = ""
33
28
  }
34
29
 
35
30
  export class CurrLoadObject extends DesignBaseObject {
@@ -164,14 +159,14 @@ export class CurrLoadObject extends DesignBaseObject {
164
159
  cardCURR.currentVelocity.value = this.currentVelocity ? this.currentVelocity.toString() : "";
165
160
  cardCURR.direction.value = this.direction ? this.direction.toString() : "";
166
161
  cardCURR.mudlineElevationOverride.value = this.mudlineElevationOverride ? this.mudlineElevationOverride.toString() : "";
167
- cardCURR.elevationPercentOption.value = this.isElevationPercentOption ? ElevationPercentOption.True : ElevationPercentOption.False;
168
- cardCURR.apparentWavePeriodOption.value = this.isApparentWavePeriodOption ? ApparentWavePeriodOption.True : ApparentWavePeriodOption.False;
162
+ cardCURR.elevationPercentOption.value = this.isElevationPercentOption ? ElevationPercentOption.True : "";
163
+ cardCURR.apparentWavePeriodOption.value = this.isApparentWavePeriodOption ? ApparentWavePeriodOption.True : "";
169
164
  cardCURR.option.value = this.factorOption;
170
165
  cardCURR.factor.value = this.factor ? this.factor.toString() : "";
171
166
  cardCURR.elevation.value = this.elevation ? this.elevation.toString() : "";
172
167
  cardCURR.crsetStretchingOption.value = this.crsetStretchingOption;
173
168
  cardCURR.minimumInlineCurrentVelocity.value = this.minimumInlineCurrentVelocity ? this.minimumInlineCurrentVelocity.toString() : ""
174
- cardCURR.velocityUnitsOption.value = this.isVelocityUnitsOption ? VelocityUnitsOption.True : VelocityUnitsOption.False
169
+ cardCURR.velocityUnitsOption.value = this.isVelocityUnitsOption ? VelocityUnitsOption.True : ""
175
170
 
176
171
  return cardCURR.getLine()
177
172
  }
@@ -17,8 +17,7 @@ export enum WaveType {
17
17
  }
18
18
 
19
19
  export enum LocalAccelOnly {
20
- True = "L",
21
- False = ""
20
+ True = "L"
22
21
  }
23
22
 
24
23
  export enum InputMode {
@@ -24,7 +24,6 @@ export enum WindVariationDefinition {
24
24
  }
25
25
 
26
26
  export enum MemberLoadingOption {
27
- None = "",
28
27
  W = "W",
29
28
  I = "I"
30
29
  }
@@ -35,8 +34,7 @@ export enum WaterDepthRatherThanOriginElevation {
35
34
  }
36
35
 
37
36
  export enum PrintDetailedLoadReport {
38
- True = "1",
39
- False = ""
37
+ True = "1"
40
38
  }
41
39
 
42
40
  export class WindLoadObject extends DesignBaseObject {
@@ -52,7 +50,7 @@ export class WindLoadObject extends DesignBaseObject {
52
50
 
53
51
  windDirection: number = 0;
54
52
 
55
- memberLoadingOption: MemberLoadingOption = null;
53
+ memberLoadingOption = "";
56
54
 
57
55
  isOriginElevationRatherThanWaterDepth: boolean = false;
58
56
 
@@ -153,7 +151,7 @@ export class WindLoadObject extends DesignBaseObject {
153
151
 
154
152
  cardWIND.stillWaterDepthOverride.value = this.stillWaterDepthOverride ? this.stillWaterDepthOverride.toString() : ""
155
153
 
156
- cardWIND.printDetailedLoadReport.value = this.isPrintDetailedLoadReport ? PrintDetailedLoadReport.True : PrintDetailedLoadReport.False
154
+ cardWIND.printDetailedLoadReport.value = this.isPrintDetailedLoadReport ? PrintDetailedLoadReport.True : ""
157
155
 
158
156
  return cardWIND.getLine();
159
157
  }
@@ -96,7 +96,7 @@ export class ColorDivGrupThicknessObject extends ColorDivBaseObject {
96
96
  }
97
97
  } else if (
98
98
  grupSeg.section &&
99
- grupSeg.section.crossSectionType === "Tub"
99
+ grupSeg.section.crossSectionType === "TUB"
100
100
  ) {
101
101
  //
102
102
  console.log("Tub");