ZDMOptimize.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. include("scripts/EAction.js");
  2. include("scripts/simple.js");
  3. include("scripts/Common/DrawingUtils.js");
  4. include("scripts/Common/CsvToZdmConvert.js")
  5. include("scripts/Common/FileZDM.js")
  6. include("scripts/Common/DrawZdmAll.js");
  7. function ZDMOptimize(guiAction) {
  8. EAction.call(this, guiAction);
  9. this.zdmsel = false;
  10. this.ratio = 10.0;
  11. this.selectLineDialog = undefined;
  12. }
  13. ZDMOptimize.prototype = new EAction();
  14. ZDMOptimize.includeBasePath = includeBasePath;
  15. ZDMOptimize.prototype.beginEvent = function () {
  16. EAction.prototype.beginEvent.call(this);
  17. var appWin = EAction.getMainWindow();
  18. this.selectLineDialog = this.createWidget(ZDMOptimize.includeBasePath + "/SelectLineDialog.ui", appWin);
  19. var zdmWidget = this.selectLineDialog.findChild("zdmWidget");
  20. var opBtn = this.selectLineDialog.findChild("opBtn");
  21. var exitBtn = this.selectLineDialog.findChild("exitBtn");
  22. opBtn.clicked.connect(this, this.opBtnClicked);
  23. exitBtn.clicked.connect(this, this.exitBtnClicked);
  24. this.btngrp2 = new QButtonGroup(zdmWidget);
  25. var allZDMFile = RSettings.getStringValue("OpenDisplayFile/ZDMFile", "");
  26. var zdmList = allZDMFile.split(',');
  27. this.zdms = new Array();
  28. for (var i = 0; i < zdmList.length; i++) {
  29. if (zdmList[i] == "") continue;
  30. if (this.zdms.length > 0) {
  31. if (this.zdms.find(zdmList[i])) continue;
  32. }
  33. this.zdms.push(zdmList[i]);
  34. }
  35. if(this.zdms.length == 0) {
  36. opBtn.setEnabled(false);
  37. }
  38. for (var i = 0; i < this.zdms.length; i++) {
  39. var zdmFile = new QRadioButton(this.zdms[i], zdmWidget);
  40. zdmFile.setGeometry(50, 25 + 40 * i, 1200, 40);
  41. this.btngrp2.addButton(zdmFile, i);
  42. zdmFile.clicked.connect(this, this.zdmClicked);
  43. }
  44. if (!this.selectLineDialog.exec()) {
  45. EAction.handleUserMessage("clicked~");
  46. destr(this.selectLineDialog);
  47. EAction.activateMainWindow();
  48. return undefined;
  49. }
  50. };
  51. ZDMOptimize.prototype.zdmClicked = function () {
  52. this.zdmsel = true;
  53. this.zdmid = this.btngrp2.checkedId();
  54. EAction.handleUserMessage(this.zdms[this.zdmid]);
  55. };
  56. ZDMOptimize.prototype.opBtnClicked = function () {
  57. try {
  58. if (!this.zdmsel) {
  59. var appWin = EAction.getMainWindow();
  60. QMessageBox.information(appWin, qsTr("提示"), qsTr("请选择优化的的文件"));
  61. return;
  62. }
  63. // 图层
  64. var layername = "ZDM-OPTIMIZE" + Math.floor(Math.random() * 100); // getLayername("ZDM-OPTIMIZE", "");
  65. //
  66. var path = RSettings.getStringValue("OpenProject/Current", "");
  67. var convert = new CsvToZdmConvert(path + "/Output_data/最优纵断面参数.csv");
  68. convert.convert();
  69. var zdmFile = convert.getZdmFileName();
  70. var drawZdmAll = new DrawZdmAll(this.ratio);
  71. var dmxFile = path + "/Output_data/DMX.csv"
  72. var ctrFile = dmxFile.replace(/.\w+$/i, ".CTR");
  73. drawZdmAll.applyPainting(layername, dmxFile, zdmFile, ctrFile, false);
  74. // 关闭弹框
  75. this.exitBtnClicked();
  76. } catch (error) {
  77. EAction.handleUserMessage("ZDMOptimize.js, ERROR: " + error.toString());
  78. }
  79. };
  80. ZDMOptimize.prototype.exitBtnClicked = function () {
  81. if (this.selectLineDialog) {
  82. destr(this.selectLineDialog);
  83. }
  84. };