physics_material_pane.js 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. ////////////////////////////////////////////////////////////////////////////
  2. // System Pre-define Functions
  3. // 95099372-ef3e-11ea-9c81-bf848405c62e
  4. //Callback of data preparation stage before UI is fully loaded.
  5. function OnInitializeData(reload, preview) {
  6. PUI(()=>{
  7. //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
  8. //The 'pui' variable is valid in all functions of this document.
  9. //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
  10. });
  11. }
  12. //Callback after UI is fully loaded and displayed.
  13. function OnReady(reload, preview) {
  14. PUI(()=>{
  15. //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
  16. //The 'pui' variable is valid in all functions of this document.
  17. //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
  18. });
  19. }
  20. function OnCloseForm() {
  21. }
  22. function OnException(err) {
  23. //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
  24. }
  25. let myArray = [];
  26. //////////////////////////////////////////////////////////////////////////
  27. // Callback Functions.
  28. // 641a254c-ef3e-11ea-bc8a-379bb908bdd7
  29. function OnId(){
  30. }
  31. function OnDen(){
  32. if(ui.phy_density.value <= 0){
  33. unit.form.mainfrm.OnChangePicture(2, 3);
  34. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: red;font-size:20px;">非常抱歉,您设置的材料参数不符合常理,请您重新输入!!!</h4>');
  35. unit.form.mainfrm.OnCueline('您设置的材料参数不符合常理,请您重新输入!!!', 'red');
  36. }
  37. if(ui.phy_density.value > 0){
  38. unit.form.mainfrm.OnChangePicture(2, 1);
  39. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: green;font-size:20px;">恭喜您,您输入了正确的数据!</h4>');
  40. unit.form.mainfrm.OnCueline('您输入了正确的数据!', 'green');
  41. }
  42. }
  43. function OnEla(){
  44. if(ui.phy_ela.value <= 0){
  45. unit.form.mainfrm.OnChangePicture(2, 3);
  46. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: red;font-size:20px;">非常抱歉,您设置的材料参数不符合常理,请您重新输入!!!</h4>');
  47. unit.form.mainfrm.OnCueline('您设置的材料参数不符合常理,请您重新输入!!!', 'red');
  48. }
  49. if(ui.phy_ela.value > 0){
  50. unit.form.mainfrm.OnChangePicture(2, 1);
  51. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: green;font-size:20px;">恭喜您,您输入了正确的数据!</h4>');
  52. unit.form.mainfrm.OnCueline('您输入了正确的数据!', 'green');
  53. }
  54. }
  55. function OnPoi(){
  56. if(ui.phy_poi.value <= 0){
  57. unit.form.mainfrm.OnChangePicture(2, 3);
  58. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: red;font-size:20px;">非常抱歉,您设置的材料参数不符合常理,请您重新输入!!!</h4>');
  59. unit.form.mainfrm.OnCueline('您设置的材料参数不符合常理,请您重新输入!!!', 'red');
  60. }
  61. if(ui.phy_poi.value > 0){
  62. unit.form.mainfrm.OnChangePicture(2, 1);
  63. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: green;font-size:20px;">恭喜您,您输入了正确的数据!</h4>');
  64. unit.form.mainfrm.OnCueline('您输入了正确的数据!', 'green');
  65. }
  66. }
  67. function OnYie(){
  68. if(ui.phy_yie.value <= 0){
  69. unit.form.mainfrm.OnChangePicture(2, 3);
  70. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: red;font-size:20px;">非常抱歉,您设置的材料参数不符合常理,请您重新输入!!!</h4>');
  71. unit.form.mainfrm.OnCueline('您设置的材料参数不符合常理,请您重新输入!!!', 'red');
  72. }
  73. if(ui.phy_yie.value > 0){
  74. unit.form.mainfrm.OnChangePicture(2, 1);
  75. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: green;font-size:20px;">恭喜您,您输入了正确的数据!</h4>');
  76. unit.form.mainfrm.OnCueline('您输入了正确的数据!', 'green');
  77. }
  78. }
  79. function OnReturnMenu(){
  80. unit.form.mainfrm.menu(2);
  81. }
  82. function OnMaterialFiles() {
  83. //ui.pb_ok.enable = true;
  84. if(myArray.length === 0){
  85. unit.form.mainfrm.OnChangePicture(2, 3);
  86. return;
  87. }
  88. var str = myArray[ui.listBox.index];
  89. var arr = str.split(",");
  90. //arr[0] = '0';
  91. //arr.splice(4, 1);
  92. var str1 = arr.join(' ');
  93. console.log(arr);
  94. model.write(str1, model.getCurrentDirectory() + '/data/material.txt');
  95. unit.form.mainfrm.OnSend('materials ' + str1);
  96. unit.form.mainfrm.OnChangePicture(2, 2);
  97. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: green;font-size:20px;">恭喜您,材料添加成功!</h4>');
  98. var mat = {
  99. "泊松比": ui.phy_poi.value,
  100. "密度(g/cm^3)":ui.phy_density.value,
  101. "屈服强度":ui.phy_yie.value,
  102. "弹性模量(MPa)":ui.phy_ela.value,
  103. "Id":ui.phy_id.value
  104. };
  105. unit.form.tree.CreateMaterial(mat);
  106. unit.form.mainfrm.OnCueline('恭喜您,材料添加成功!', 'green');
  107. //ui.cueline.value += '材料文件载入完毕\n';
  108. //ui.cueline.row = -1;
  109. }
  110. function OnDeleteValue() {
  111. myArray.splice(parseFloat(ui.listBox.index), 1);
  112. console.log(ui.listBox.index);
  113. ui.listBox.list = [
  114. myArray
  115. ];
  116. unit.form.mainfrm.OnCueline('非常抱歉,您记录的数据已得到了删除!', 'red');
  117. //ui.cueline.value += '已删除\n';
  118. //ui.cueline.row = -1;
  119. }
  120. function OnAddValue() {
  121. var value = ui.pb_Id.value + ',' + parseFloat(ui.phy_density.value) + ',' + parseFloat(ui.phy_ela.value) + ',' + parseFloat(ui.phy_poi.value) + ',' + parseFloat(ui.phy_yie.value) + ',' + parseFloat(ui.phy_id.value);
  122. myArray.push(value);
  123. ui.listBox.list = [
  124. myArray
  125. ];
  126. //unit.form.mainfrm.OnCueline('<h4 style="font-family:arial;color: green;font-size:20px;">恭喜您,您输入的数据已得到了记录!</h4>');
  127. unit.form.mainfrm.OnCueline('恭喜您,您输入的数据已得到了记录!', 'green');
  128. //ui.cueline.value += '已添加\n';
  129. //ui.cueline.row = -1;
  130. }
  131. //The message corresponding callback executed by the docker pane.
  132. // when calling [side_pane].fireEvent(type,para) in the main form.
  133. function OnParentDockerMessage(type, para) {
  134. }
  135. //////////////////////////////////////////////////////////////////////////
  136. // Utils Functions.
  137. // 6c165ad6-ef3e-11ea-987c-b761a131c2fe
  138. function onDragFile(filepath) {
  139. }
  140. function PUI(cb) {
  141. if(pui){cb();}
  142. }
  143. /*Usage of BLOCK_EVENT
  144. BLOCK_EVENT(()=>{
  145. ui.[name].[var] = ...;
  146. });
  147. */
  148. function BLOCK_EVENT(cb) {
  149. ui.block_event = true;
  150. cb();
  151. ui.block_event = false;
  152. }
  153. CW_DeclareVariable("pb_ID",
  154. val => {
  155. ui.phy_id.value = val;
  156. }, () => {});
  157. CW_DeclareVariable("setmaterial",
  158. material => {
  159. ui.phy_poi.value = material["泊松比"];
  160. ui.phy_density.value = material["密度(g/cm^3)"];
  161. ui.phy_yie.value = material["屈服强度"];
  162. ui.phy_ela.value = material["弹性模量(MPa)"];
  163. ui.phy_id.value = material.Id;
  164. }, () => {});
  165. //////////////////////////////////////////////////////////////////////////
  166. // template codes for cw callback js.
  167. function CW_DeclareVariable(name, setter, getter) {
  168. if(typeof(__DeclareVariable) === 'function') {
  169. __DeclareVariable(name, setter, getter);
  170. }
  171. }
  172. function CW_DeclareOuterVariable(name) {
  173. if(typeof(__DeclareOuterVariable) === 'function') {
  174. __DeclareOuterVariable(name);
  175. }
  176. }