SetArguments.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567
  1. /**
  2. * Copyright (c) 2011-2018 by Andrew Mustun. All rights reserved.
  3. *
  4. * This file is part of the QCAD project.
  5. *
  6. * QCAD is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * QCAD is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with QCAD.
  18. */
  19. include("scripts/EAction.js");
  20. include("scripts/File/File.js");
  21. include("../PM/PM.js")
  22. include("../ZDM/ZDM.js")
  23. SetArguments.readmeFile = "readme.txt";
  24. function SetArguments(guiAction) {
  25. EAction.call(this, guiAction);
  26. this.pmsel = false;
  27. this.zdmsel = false;
  28. // var lastOpenFile = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation());
  29. // var lastOpenFileDir = SetArguments.includeBasePath + "/../../../project/" + lastOpenFile + "/para.ini";
  30. }
  31. SetArguments.prototype = new EAction();
  32. SetArguments.includeBasePath = includeBasePath;
  33. SetArguments.prototype.beginEvent = function () {
  34. EAction.prototype.beginEvent.call(this);
  35. // EAction.handleUserMessage("start show widget");
  36. var appWin = EAction.getMainWindow();
  37. if (RSettings.getStringValue("OpenProject/Current", "") == "") {
  38. QMessageBox.critical(appWin,
  39. qsTr("提示"),
  40. qsTr("请先选择工程路径"));
  41. return;
  42. }
  43. var lastOpenFileDir = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation()) + "/para.ini";
  44. // EAction.handleUserMessage(lastOpenFileDir);
  45. var file = new QFile(lastOpenFileDir);
  46. if (!file.exists()) {
  47. QMessageBox.critical(EAction.getMainWindow(), qsTr("提示"),
  48. RSettings.getStringValue("OpenProject/Current", "") + qsTr(" 工程下没有参数文件"));
  49. return;
  50. }
  51. this.iniFile = new QSettings(lastOpenFileDir, QSettings.IniFormat);
  52. // this.iniFile = new QSettings("D:/Project/para.ini", QSettings.IniFormat);
  53. this.standard_type = new Array();
  54. this.dialog = this.createWidget(SetArguments.includeBasePath + "/SetArgumentsDialog.ui", appWin);
  55. WidgetFactory.restoreState(this.dialog);
  56. this.resetClicked();
  57. //var iniConf = [];
  58. //iniConf = this.readNormalIniFile();
  59. //this.setNormalBox(iniConf);
  60. // var childs = this.iniFile.childGroups();
  61. // for(var i = 0; i < childs.length; i++){
  62. // if(childs[i].indexOf("standard") != -1){
  63. // this.standard_type.push(childs[i]);
  64. // this.standard_type.push(this.iniFile.value("/" + childs[i].toString() + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
  65. // // EAction.handleUserMessage(this.iniFile.value("/" + childs[i] + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
  66. // // EAction.handleUserMessage(childs[i]);
  67. // }
  68. // }
  69. // // 速度
  70. // this.select_type = this.standard_type[0];
  71. //this.resetClicked();
  72. // var design_speed = this.dialog.findChild("comboBox");
  73. // for(var i = 1; i < this.standard_type.length; i += 2){
  74. // design_speed.addItem(this.standard_type[i]);
  75. // }
  76. // design_speed["currentIndexChanged(int)"].connect(this, this.selectSpeed);
  77. // var speedCfg = [];
  78. // speedCfg = this.readSpeedCfg();
  79. // this.setSpeedBox(speedCfg);
  80. // 恢复默认
  81. var resetBtn = this.dialog.findChild("resetBtn");
  82. resetBtn.clicked.connect(this, this.resetClicked);
  83. // 保存
  84. var saveBtn = this.dialog.findChild("saveBtn");
  85. saveBtn.clicked.connect(this, this.saveClicked);
  86. // 优化
  87. var optimizeBtn = this.dialog.findChild("optimizeBtn");
  88. optimizeBtn.clicked.connect(this, this.optimizeClicked);
  89. if (!this.dialog.exec()) {
  90. EAction.handleUserMessage("clicked~");
  91. destr(this.dialog);
  92. EAction.activateMainWindow();
  93. return undefined;
  94. }
  95. WidgetFactory.saveState(this.dialog);
  96. };
  97. SetArguments.prototype.optimizeClicked = function () {
  98. // 查找文件,显示出来
  99. // test:显示随便的数字
  100. var appWin = EAction.getMainWindow();
  101. this.selectLineDialog = this.createWidget(SetArguments.includeBasePath + "/SelectLineDialog.ui", appWin);
  102. // EAction.handleUserMessage("debug1");
  103. var pmWidget = this.selectLineDialog.findChild("pmWidget");
  104. var opBtn = this.selectLineDialog.findChild("opBtn");
  105. var exitBtn = this.selectLineDialog.findChild("exitBtn");
  106. opBtn.clicked.connect(this, this.opBtnClicked);
  107. exitBtn.clicked.connect(this, this.exitBtnClicked);
  108. this.btngrp = new QButtonGroup(pmWidget);
  109. var allPMFile = RSettings.getStringValue("OpenDisplayFile/PMFile", "");
  110. var pmList = allPMFile.split(',');
  111. this.pms = new Array();
  112. for (var i = 0; i < pmList.length; i++) {
  113. if (pmList[i] == "") continue;
  114. this.pms.push(pmList[i]);
  115. }
  116. for (var i = 0; i < this.pms.length; i++) {
  117. var pmFile = new QRadioButton(this.pms[i], pmWidget);
  118. pmFile.setGeometry(50, 25 + 40 * i, 1200, 40);
  119. this.btngrp.addButton(pmFile, i);
  120. pmFile.clicked.connect(this, this.pmClicked);
  121. }
  122. var zdmWidget = this.selectLineDialog.findChild("zdmWidget");
  123. this.btngrp2 = new QButtonGroup(zdmWidget);
  124. var allZDMFile = RSettings.getStringValue("OpenDisplayFile/ZDMFile", "");
  125. var zdmList = allZDMFile.split(',');
  126. this.zdms = new Array();
  127. for (var i = 0; i < zdmList.length; i++) {
  128. if (zdmList[i] == "") continue;
  129. this.zdms.push(zdmList[i]);
  130. }
  131. for (var i = 0; i < this.zdms.length; i++) {
  132. var zdmFile = new QRadioButton(this.zdms[i], zdmWidget);
  133. zdmFile.setGeometry(50, 25 + 40 * i, 1200, 40);
  134. this.btngrp2.addButton(zdmFile, i);
  135. zdmFile.clicked.connect(this, this.zdmClicked);
  136. }
  137. if (this.pms.length == 0 && this.zdms.length == 0) {
  138. opBtn.setEnabled(false);
  139. }
  140. if (!this.selectLineDialog.exec()) {
  141. EAction.handleUserMessage("clicked~");
  142. destr(this.selectLineDialog);
  143. EAction.activateMainWindow();
  144. return undefined;
  145. }
  146. };
  147. SetArguments.prototype.opBtnClicked = function () {
  148. if (!this.pmsel && !this.zdmsel) {
  149. var appWin = EAction.getMainWindow();
  150. QMessageBox.information(appWin, qsTr("提示"), qsTr("请选择优化的的文件"));
  151. return;
  152. }
  153. if (this.pmsel) {
  154. var pmd = new PM();
  155. pmd.interface(this.pms[this.pmid]);
  156. }
  157. if (this.zdmsel) {
  158. var zdmd = new ZDM();
  159. zdmd.interface(this.zdms[this.zdmid]);
  160. }
  161. };
  162. SetArguments.prototype.exitBtnClicked = function () {
  163. destr(this.selectLineDialog);
  164. };
  165. SetArguments.prototype.pmClicked = function () {
  166. this.pmsel = true;
  167. this.pmid = this.btngrp.checkedId();
  168. EAction.handleUserMessage(this.pms[this.pmid]);
  169. };
  170. SetArguments.prototype.zdmClicked = function () {
  171. this.zdmsel = true;
  172. this.zdmid = this.btngrp2.checkedId();
  173. // EAction.handleUserMessage(id.toString());
  174. EAction.handleUserMessage(this.zdms[this.zdmid]);
  175. };
  176. SetArguments.prototype.saveClicked = function () {
  177. // EAction.handleUserMessage("start Save File");
  178. this.iniFile.setValue("/parameter/batch_sizes", this.dialog.findChild("batch_sizes").text);
  179. this.iniFile.setValue("/parameter/learning_rate0", this.dialog.findChild("learning_rate0").text);
  180. this.iniFile.setValue("/parameter/learning_rate1", this.dialog.findChild("learning_rate1").text);
  181. this.iniFile.setValue("/parameter/iteration_times", this.dialog.findChild("iteration_times").text);
  182. this.iniFile.setValue("/parameter/discount_factor", this.dialog.findChild("discount_factor").text);
  183. this.iniFile.setValue("/parameter/d_k", this.dialog.findChild("d_k").text);
  184. this.iniFile.setValue("/parameter/d_line", this.dialog.findChild("d_line").text);
  185. this.iniFile.setValue("/parameter/forward_step", this.dialog.findChild("forward_step").text);
  186. this.iniFile.setValue("/parameter/learning_rate0", this.dialog.findChild("learning_rate0").text);
  187. this.iniFile.setValue("/parameter/range_p", this.dialog.findChild("range_p_x").text);
  188. this.iniFile.setValue("/parameter/range_g", this.dialog.findChild("range_g").text);
  189. this.iniFile.setValue("/parameter/range_k", this.dialog.findChild("range_k").text);
  190. this.iniFile.setValue("/parameter/range_c", this.dialog.findChild("range_c").text);
  191. this.iniFile.setValue("/parameter/range_v", this.dialog.findChild("range_v").text);
  192. this.iniFile.setValue("/parameter/range_e", this.dialog.findChild("range_e").text);
  193. this.iniFile.setValue("/cost/beam0", this.dialog.findChild("beam0").text);
  194. this.iniFile.setValue("/cost/beam1", this.dialog.findChild("beam1").text);
  195. this.iniFile.setValue("/cost/bridge_pier", this.dialog.findChild("bridge_pier").text);
  196. this.iniFile.setValue("/cost/tunnel0", this.dialog.findChild("tunnel0").text);
  197. this.iniFile.setValue("/cost/tunnel1", this.dialog.findChild("tunnel1").text);
  198. this.iniFile.setValue("/cost/tunnel2", this.dialog.findChild("tunnel2").text);
  199. this.iniFile.setValue("/cost/tunnel_entrance", this.dialog.findChild("tunnel_entrance").text);
  200. this.iniFile.setValue("/cost/railway_tracks", this.dialog.findChild("railway_tracks").text);
  201. this.iniFile.setValue("/cost/road_right_fee", this.dialog.findChild("road_right_fee").text);
  202. this.iniFile.setValue("/cost/filling_cost", this.dialog.findChild("filling_cost").text);
  203. this.iniFile.setValue("/cost/excavation_cost", this.dialog.findChild("excavation_cost").text);
  204. this.iniFile.setValue("/cost/arable_land_occupation", this.dialog.findChild("arable_land_occupation").text);
  205. this.iniFile.setValue("/cost/house_demolition", this.dialog.findChild("house_demolition").text);
  206. if (this.dialog.findChild("replace_radio").isChecked) {
  207. this.iniFile.setValue("/cost/replace_railway_by_bridge", "1");
  208. }
  209. else {
  210. this.iniFile.setValue("/cost/replace_railway_by_bridge", "0");
  211. }
  212. this.iniFile.setValue("/standard/design_speed", this.dialog.findChild("design_speed").text);
  213. this.iniFile.setValue("/standard/minimum_curve_radius", this.dialog.findChild("minimum_curve_radius").text);
  214. this.iniFile.setValue("/standard/minimum_circular_length", this.dialog.findChild("minimum_circular_length").text);
  215. this.iniFile.setValue("/standard/minimal_longitudinal_length", this.dialog.findChild("minimal_longitudinal_length").text);
  216. this.iniFile.setValue("/standard/maximum_gradient", this.dialog.findChild("maximum_gradient").text);
  217. this.iniFile.setValue("/standard/maximum_slope_difference", this.dialog.findChild("maximum_slope_difference").text);
  218. this.iniFile.setValue("/standard/minimum_transition_curve_length", this.dialog.findChild("minimum_transition_curve_length").text);
  219. this.iniFile.setValue("/standard/minimum_clip_line_length", this.dialog.findChild("minimum_clip_line_length").text);
  220. this.iniFile.setValue("/standard/minimum_radius_of_convex_vertical_curve", this.dialog.findChild("minimum_radius_of_convex_vertical_curve").text);
  221. this.iniFile.setValue("/standard/minimum_radius_of_concave_vertical_curve", this.dialog.findChild("minimum_radius_of_concave_vertical_curve").text);
  222. this.iniFile.setValue("/standard/minimum_length_of_vertical_curve", this.dialog.findChild("minimum_length_of_vertical_curve").text);
  223. this.iniFile.setValue("/ecology/water_pollution", this.dialog.findChild("water_pollution").text);
  224. this.iniFile.setValue("/ecology/noise_and_vibration", this.dialog.findChild("noise_and_vibration").text);
  225. this.iniFile.setValue("/ecology/cultural_heritage_protection", this.dialog.findChild("cultural_heritage_protection").text);
  226. this.iniFile.setValue("/ecology/destruction_wildlife", this.dialog.findChild("destruction_wildlife").text);
  227. this.iniFile.setValue("/ecology/original_natural", this.dialog.findChild("original_natural").text);
  228. this.iniFile.setValue("/ecology/traffic_network", this.dialog.findChild("traffic_network").text);
  229. this.iniFile.setValue("/ecology/fields_woods", this.dialog.findChild("fields_woods").text);
  230. this.iniFile.setValue("/ecology/air_pollution", this.dialog.findChild("air_pollution").text);
  231. this.iniFile.setValue("/ecology/house_demolition", this.dialog.findChild("house_demolition_2").text);
  232. // destr(this.iniFile);
  233. EAction.handleUserMessage("Save File");
  234. };
  235. SetArguments.prototype.resetClicked = function () {
  236. var iniConf = [];
  237. iniConf = this.readNormalIniFile();
  238. this.setNormalBox(iniConf);
  239. };
  240. SetArguments.prototype.readNormalIniFile = function () {
  241. var ret = [];
  242. //#region 优化模型参数设置
  243. ret["batch_sizes"] = this.iniFile.value("/parameter/batch_sizes").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  244. ret["learning_rate0"] = this.iniFile.value("/parameter/learning_rate0").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  245. ret["learning_rate1"] = this.iniFile.value("/parameter/learning_rate1").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  246. ret["iteration_times"] = this.iniFile.value("/parameter/iteration_times").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  247. ret["discount_factor"] = this.iniFile.value("/parameter/discount_factor").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  248. ret["d_k"] = this.iniFile.value("/parameter/d_k").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  249. ret["forward_step"] = this.iniFile.value("/parameter/forward_step").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  250. ret["range_p"] = this.iniFile.value("/parameter/range_p").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  251. ret["range_g"] = this.iniFile.value("/parameter/range_g").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  252. ret["range_k"] = this.iniFile.value("/parameter/range_k").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  253. ret["d_line"] = this.iniFile.value("/parameter/d_line").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  254. ret["range_c"] = this.iniFile.value("/parameter/range_c").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  255. ret["range_v"] = this.iniFile.value("/parameter/range_v").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  256. ret["range_e"] = this.iniFile.value("/parameter/range_e").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  257. //#endregion
  258. //#region 铁路单位造价设置
  259. ret["beam0"] = this.iniFile.value("/cost/beam0").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  260. ret["beam1"] = this.iniFile.value("/cost/beam1").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  261. ret["bridge_pier"] = this.iniFile.value("/cost/bridge_pier").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  262. ret["tunnel0"] = this.iniFile.value("/cost/tunnel0").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  263. ret["tunnel1"] = this.iniFile.value("/cost/tunnel1").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  264. ret["tunnel2"] = this.iniFile.value("/cost/tunnel2").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  265. ret["tunnel_entrance"] = this.iniFile.value("/cost/tunnel_entrance").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  266. ret["railway_tracks"] = this.iniFile.value("/cost/railway_tracks").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  267. ret["road_right_fee"] = this.iniFile.value("/cost/road_right_fee").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  268. ret["filling_cost"] = this.iniFile.value("/cost/filling_cost").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  269. ret["excavation_cost"] = this.iniFile.value("/cost/excavation_cost").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  270. ret["arable_land_occupation"] = this.iniFile.value("/cost/arable_land_occupation").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  271. ret["house_demolition"] = this.iniFile.value("/cost/house_demolition").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  272. ret["replace_railway_by_bridge"] = this.iniFile.value("/cost/replace_railway_by_bridge").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  273. //#endregion
  274. EAction.handleUserMessage("read ini speed");
  275. ret["design_speed"] = this.iniFile.value("/standard/design_speed").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  276. ret["minimum_curve_radius"] = this.iniFile.value("/standard/minimum_curve_radius").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  277. ret["minimum_circular_length"] = this.iniFile.value("/standard/minimum_circular_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  278. ret["minimal_longitudinal_length"] = this.iniFile.value("/standard/minimal_longitudinal_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  279. ret["maximum_gradient"] = this.iniFile.value("/standard/maximum_gradient").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  280. ret["maximum_slope_difference"] = this.iniFile.value("/standard/maximum_slope_difference").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  281. ret["maximum_bridge_height"] = this.iniFile.value("/standard/maximum_bridge_height").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  282. ret["maximum_tunnel_length"] = this.iniFile.value("/standard/maximum_tunnel_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  283. ret["filling_height_lbb"] = this.iniFile.value("/standard/filling_height_lbb").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  284. ret["digging_deep_ltb"] = this.iniFile.value("/standard/digging_deep_ltb").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  285. ret["minimum_transition_curve_length"] = this.iniFile.value("/standard/minimum_transition_curve_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  286. ret["minimum_clip_line_length"] = this.iniFile.value("/standard/minimum_clip_line_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  287. ret["minimum_radius_of_convex_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_convex_vertical_curve").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  288. ret["minimum_radius_of_concave_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_concave_vertical_curve").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  289. ret["minimum_length_of_vertical_curve"] = this.iniFile.value("/standard/minimum_length_of_vertical_curve").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  290. ret["water_pollution"] = this.iniFile.value("/ecology/water_pollution").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  291. ret["noise_and_vibration"] = this.iniFile.value("/ecology/noise_and_vibration").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  292. ret["cultural_heritage_protection"] = this.iniFile.value("/ecology/cultural_heritage_protection").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  293. ret["destruction_wildlife"] = this.iniFile.value("/ecology/destruction_wildlife").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  294. ret["original_natural"] = this.iniFile.value("/ecology/original_natural").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  295. ret["traffic_network"] = this.iniFile.value("/ecology/traffic_network").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  296. ret["fields_woods"] = this.iniFile.value("/ecology/fields_woods").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  297. ret["air_pollution"] = this.iniFile.value("/ecology/air_pollution").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  298. ret["house_demolition_2"] = this.iniFile.value("/ecology/house_demolition").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
  299. EAction.handleUserMessage("read ini finish");
  300. return ret;
  301. };
  302. SetArguments.prototype.setNormalBox = function (iniConf) {
  303. // 优化相关
  304. var batch_sizes = this.dialog.findChild("batch_sizes");
  305. var learning_rate0 = this.dialog.findChild("learning_rate0");
  306. var learning_rate1 = this.dialog.findChild("learning_rate1");
  307. var iteration_times = this.dialog.findChild("iteration_times");
  308. var discount_factor = this.dialog.findChild("discount_factor");
  309. var range_p_x = this.dialog.findChild("range_p_x");
  310. var range_p_y = this.dialog.findChild("range_p_y");
  311. var range_g = this.dialog.findChild("range_g");
  312. var range_k = this.dialog.findChild("range_k");
  313. var range_c = this.dialog.findChild("range_c");
  314. var range_v = this.dialog.findChild("range_v");
  315. var range_e = this.dialog.findChild("range_e");
  316. var d_k = this.dialog.findChild("d_k");
  317. var d_line = this.dialog.findChild("d_line");
  318. var forward_step = this.dialog.findChild("forward_step");
  319. // slider
  320. var batchSlider = this.dialog.findChild("batchsizeSlider");
  321. var stepSlider = this.dialog.findChild("stepSlider");
  322. var iterationtimeSlider = this.dialog.findChild("iterationtimeSlider");
  323. var dkSlider = this.dialog.findChild("dkSlider");
  324. var rangecSlider = this.dialog.findChild("rangecSlider");
  325. var rangevSlider = this.dialog.findChild("rangevSlider");
  326. var rangeeSlider = this.dialog.findChild("rangeeSlider");
  327. batch_sizes.textChanged.connect(function () { batchSlider.setValue(batch_sizes.text); });
  328. forward_step.textChanged.connect(function () { stepSlider.setValue(forward_step.text); });
  329. iteration_times.textChanged.connect(function () { iterationtimeSlider.setValue(iteration_times.text); });
  330. d_k.textChanged.connect(function () { dkSlider.setValue(d_k.text); });
  331. range_c.textChanged.connect(function () { rangecSlider.setValue(range_c.text); });
  332. range_v.textChanged.connect(function () { rangevSlider.setValue(range_v.text); });
  333. range_e.textChanged.connect(function () { rangeeSlider.setValue(range_e.text); });
  334. batchSlider.valueChanged.connect(function () { batch_sizes.setText(batchSlider.value); });
  335. stepSlider.valueChanged.connect(function () { forward_step.setText(stepSlider.value); });
  336. iterationtimeSlider.valueChanged.connect(function () { iteration_times.setText(iterationtimeSlider.value); });
  337. dkSlider.valueChanged.connect(function () { d_k.setText(dkSlider.value); });
  338. rangecSlider.valueChanged.connect(function () { range_c.setText(rangecSlider.value); });
  339. rangevSlider.valueChanged.connect(function () { range_v.setText(rangevSlider.value); });
  340. rangeeSlider.valueChanged.connect(function () { range_e.setText(rangeeSlider.value); });
  341. batch_sizes.setText(iniConf["batch_sizes"]);
  342. learning_rate0.setText(iniConf["learning_rate0"]);
  343. learning_rate1.setText(iniConf["learning_rate1"]);
  344. iteration_times.setText(iniConf["iteration_times"]);
  345. discount_factor.setText(iniConf["discount_factor"]);
  346. range_p_x.setText(iniConf["range_p"]);
  347. range_p_y.setText(iniConf["range_p"]);
  348. range_g.setText(iniConf["range_g"]);
  349. range_k.setText(iniConf["range_k"]);
  350. range_c.setText(iniConf["range_c"]);
  351. range_v.setText(iniConf["range_v"]);
  352. range_e.setText(iniConf["range_e"]);
  353. d_k.setText(iniConf["d_k"]);
  354. d_line.setText(iniConf["d_line"]);
  355. forward_step.setText(iniConf["forward_step"]);
  356. range_p_x.textChanged.connect(
  357. function () {
  358. range_p_y.setText(range_p_x.text);
  359. });
  360. range_p_y.textChanged.connect(
  361. function () {
  362. range_p_x.setText(range_p_y.text);
  363. });
  364. // 铁路单位造价相关
  365. var beam0 = this.dialog.findChild("beam0");
  366. var beam1 = this.dialog.findChild("beam1");
  367. var bridge_pier = this.dialog.findChild("bridge_pier");
  368. var tunnel0 = this.dialog.findChild("tunnel0");
  369. var tunnel1 = this.dialog.findChild("tunnel1");
  370. var tunnel2 = this.dialog.findChild("tunnel2");
  371. var tunnel_entrance = this.dialog.findChild("tunnel_entrance");
  372. var railway_tracks = this.dialog.findChild("railway_tracks");
  373. var road_right_fee = this.dialog.findChild("road_right_fee");
  374. var filling_cost = this.dialog.findChild("filling_cost");
  375. var excavation_cost = this.dialog.findChild("excavation_cost");
  376. var arable_land_occupation = this.dialog.findChild("arable_land_occupation");
  377. var house_demolition = this.dialog.findChild("house_demolition");
  378. var replace_radio = this.dialog.findChild("replace_radio");
  379. var not_replace_radio = this.dialog.findChild("not_replace_radio");
  380. beam0.setText(iniConf["beam0"]);
  381. beam1.setText(iniConf["beam1"]);
  382. bridge_pier.setText(iniConf["bridge_pier"]);
  383. tunnel0.setText(iniConf["tunnel0"]);
  384. tunnel1.setText(iniConf["tunnel1"]);
  385. tunnel2.setText(iniConf["tunnel2"]);
  386. tunnel_entrance.setText(iniConf["tunnel_entrance"]);
  387. railway_tracks.setText(iniConf["railway_tracks"]);
  388. road_right_fee.setText(iniConf["road_right_fee"]);
  389. filling_cost.setText(iniConf["filling_cost"]);
  390. excavation_cost.setText(iniConf["excavation_cost"]);
  391. arable_land_occupation.setText(iniConf["arable_land_occupation"]);
  392. house_demolition.setText(iniConf["house_demolition"]);
  393. EAction.handleUserMessage("start set form");
  394. if (0 == iniConf["replace_railway_by_bridge"].toInt()) {
  395. not_replace_radio.setChecked(1);
  396. }
  397. else {
  398. replace_radio.setChecked(1);
  399. }
  400. // 铁路设计标准相关
  401. var design_speed = this.dialog.findChild("design_speed");
  402. var minimum_curve_radius = this.dialog.findChild("minimum_curve_radius");
  403. var minimum_circular_length = this.dialog.findChild("minimum_circular_length");
  404. var minimal_longitudinal_length = this.dialog.findChild("minimal_longitudinal_length");
  405. var maximum_gradient = this.dialog.findChild("maximum_gradient");
  406. var maximum_slope_difference = this.dialog.findChild("maximum_slope_difference");
  407. var minimum_transition_curve_length = this.dialog.findChild("minimum_transition_curve_length");
  408. var minimum_clip_line_length = this.dialog.findChild("minimum_clip_line_length");
  409. var minimum_radius_of_convex_vertical_curve = this.dialog.findChild("minimum_radius_of_convex_vertical_curve");
  410. var minimum_radius_of_concave_vertical_curve = this.dialog.findChild("minimum_radius_of_concave_vertical_curve");
  411. var minimum_length_of_vertical_curve = this.dialog.findChild("minimum_length_of_vertical_curve");
  412. // slider
  413. var speedSlider = this.dialog.findChild("speedSlider");
  414. var minimum_curve_radius_slider = this.dialog.findChild("minimum_curve_radius_slider");
  415. var minimum_circular_length_slider = this.dialog.findChild("minimum_circular_length_slider");
  416. var minimal_longitudinal_length_slider = this.dialog.findChild("minimal_longitudinal_length_slider");
  417. var maximum_gradient_slider = this.dialog.findChild("maximum_gradient_slider");
  418. var maximum_slope_difference_slider = this.dialog.findChild("maximum_slope_difference_slider");
  419. var minimum_radius_of_convex_vertical_curve_slider = this.dialog.findChild("minimum_radius_of_convex_vertical_curve_slider");
  420. var concave_vertical_curve_slider = this.dialog.findChild("concave_vertical_curve_slider");
  421. var minimum_transition_curve_length_slider = this.dialog.findChild("minimum_transition_curve_length_slider");
  422. var minimum_clip_line_length_slider = this.dialog.findChild("minimum_clip_line_length_slider");
  423. var minimum_length_of_vertical_curve_slider = this.dialog.findChild("minimum_length_of_vertical_curve_slider");
  424. design_speed.textChanged.connect(function () { speedSlider.setValue(design_speed.text); });
  425. minimum_curve_radius.textChanged.connect(function () { minimum_curve_radius_slider.setValue(minimum_curve_radius.text); });
  426. minimum_circular_length.textChanged.connect(function () { minimum_circular_length_slider.setValue(minimum_circular_length.text); });
  427. minimal_longitudinal_length.textChanged.connect(function () { minimal_longitudinal_length_slider.setValue(minimal_longitudinal_length.text); });
  428. maximum_gradient.textChanged.connect(function () { maximum_gradient_slider.setValue(maximum_gradient.text); });
  429. maximum_slope_difference.textChanged.connect(function () { maximum_slope_difference_slider.setValue(maximum_slope_difference.text); });
  430. minimum_transition_curve_length.textChanged.connect(function () { minimum_transition_curve_length_slider.setValue(minimum_transition_curve_length.text); });
  431. minimum_clip_line_length.textChanged.connect(function () { minimum_clip_line_length_slider.setValue(minimum_clip_line_length.text); });
  432. minimum_radius_of_convex_vertical_curve.textChanged.connect(function () { minimum_radius_of_convex_vertical_curve_slider.setValue(minimum_radius_of_convex_vertical_curve.text); });
  433. minimum_radius_of_concave_vertical_curve.textChanged.connect(function () { concave_vertical_curve_slider.setValue(minimum_radius_of_concave_vertical_curve.text); });
  434. minimum_length_of_vertical_curve.textChanged.connect(function () { minimum_length_of_vertical_curve_slider.setValue(minimum_length_of_vertical_curve.text); });
  435. speedSlider.valueChanged.connect(function () { design_speed.setText(speedSlider.value); });
  436. minimum_curve_radius_slider.valueChanged.connect(function () { minimum_curve_radius.setText(minimum_curve_radius_slider.value); });
  437. minimum_circular_length_slider.valueChanged.connect(function () { minimum_circular_length.setText(minimum_circular_length_slider.value); });
  438. minimal_longitudinal_length_slider.valueChanged.connect(function () { minimal_longitudinal_length.setText(minimal_longitudinal_length_slider.value); });
  439. maximum_gradient_slider.valueChanged.connect(function () { maximum_gradient.setText(maximum_gradient_slider.value); });
  440. maximum_slope_difference_slider.valueChanged.connect(function () { maximum_slope_difference.setText(maximum_slope_difference_slider.value); });
  441. minimum_transition_curve_length_slider.valueChanged.connect(function () { minimum_transition_curve_length.setText(minimum_transition_curve_length_slider.value); });
  442. minimum_clip_line_length_slider.valueChanged.connect(function () { minimum_clip_line_length.setText(minimum_clip_line_length_slider.value); });
  443. minimum_radius_of_convex_vertical_curve_slider.valueChanged.connect(function () { minimum_radius_of_convex_vertical_curve.setText(minimum_radius_of_convex_vertical_curve_slider.value); });
  444. concave_vertical_curve_slider.valueChanged.connect(function () { minimum_radius_of_concave_vertical_curve.setText(concave_vertical_curve_slider.value); });
  445. minimum_length_of_vertical_curve_slider.valueChanged.connect(function () { minimum_length_of_vertical_curve.setText(minimum_length_of_vertical_curve_slider.value); });
  446. design_speed.setText(iniConf["design_speed"]);
  447. minimum_curve_radius.setText(iniConf["minimum_curve_radius"]);
  448. minimum_circular_length.setText(iniConf["minimum_circular_length"]);
  449. minimal_longitudinal_length.setText(iniConf["minimal_longitudinal_length"]);
  450. maximum_gradient.setText(iniConf["maximum_gradient"]);
  451. maximum_slope_difference.setText(iniConf["maximum_slope_difference"]);
  452. minimum_transition_curve_length.setText(iniConf["minimum_transition_curve_length"]);
  453. minimum_clip_line_length.setText(iniConf["minimum_clip_line_length"]);
  454. minimum_radius_of_convex_vertical_curve.setText(iniConf["minimum_radius_of_convex_vertical_curve"]);
  455. minimum_radius_of_concave_vertical_curve.setText(iniConf["minimum_radius_of_concave_vertical_curve"]);
  456. minimum_length_of_vertical_curve.setText(iniConf["minimum_length_of_vertical_curve"]);
  457. // 生态相关
  458. var water_pollution = this.dialog.findChild("water_pollution");
  459. var noise_and_vibration = this.dialog.findChild("noise_and_vibration");
  460. var cultural_heritage_protection = this.dialog.findChild("cultural_heritage_protection");
  461. var destruction_wildlife = this.dialog.findChild("destruction_wildlife");
  462. var original_natural = this.dialog.findChild("original_natural");
  463. var traffic_network = this.dialog.findChild("traffic_network");
  464. var fields_woods = this.dialog.findChild("fields_woods");
  465. var air_pollution = this.dialog.findChild("air_pollution");
  466. var house_demolition_2 = this.dialog.findChild("house_demolition_2");
  467. // slider
  468. var water_pollution_slider = this.dialog.findChild("water_pollution_slider");
  469. var noise_and_vibration_slider = this.dialog.findChild("noise_and_vibration_slider");
  470. var cultural_heritage_protection_slider = this.dialog.findChild("cultural_heritage_protection_slider");
  471. var destruction_wildlife_slider = this.dialog.findChild("destruction_wildlife_slider");
  472. var original_natural_slider = this.dialog.findChild("original_natural_slider");
  473. var traffic_network_slider = this.dialog.findChild("traffic_network_slider");
  474. var fields_woods_slider = this.dialog.findChild("fields_woods_slider");
  475. var air_pollution_slider = this.dialog.findChild("air_pollution_slider");
  476. var house_demolition_2_slider = this.dialog.findChild("house_demolition_2_slider");
  477. water_pollution.textChanged.connect(function () { water_pollution_slider.setValue(water_pollution.text); });
  478. noise_and_vibration.textChanged.connect(function () { noise_and_vibration_slider.setValue(noise_and_vibration.text); });
  479. cultural_heritage_protection.textChanged.connect(function () { cultural_heritage_protection_slider.setValue(cultural_heritage_protection.text); });
  480. destruction_wildlife.textChanged.connect(function () { destruction_wildlife_slider.setValue(destruction_wildlife.text); });
  481. original_natural.textChanged.connect(function () { original_natural_slider.setValue(original_natural.text); });
  482. traffic_network.textChanged.connect(function () { traffic_network_slider.setValue(traffic_network.text); });
  483. fields_woods.textChanged.connect(function () { fields_woods_slider.setValue(fields_woods.text); });
  484. air_pollution.textChanged.connect(function () { air_pollution_slider.setValue(air_pollution.text); });
  485. house_demolition_2.textChanged.connect(function () { house_demolition_2_slider.setValue(house_demolition_2.text); });
  486. water_pollution_slider.valueChanged.connect(function () { water_pollution.setText(water_pollution_slider.value); });
  487. noise_and_vibration_slider.valueChanged.connect(function () { noise_and_vibration.setText(noise_and_vibration_slider.value); });
  488. cultural_heritage_protection_slider.valueChanged.connect(function () { cultural_heritage_protection.setText(cultural_heritage_protection_slider.value); });
  489. destruction_wildlife_slider.valueChanged.connect(function () { destruction_wildlife.setText(destruction_wildlife_slider.value); });
  490. original_natural_slider.valueChanged.connect(function () { original_natural.setText(original_natural_slider.value); });
  491. traffic_network_slider.valueChanged.connect(function () { traffic_network.setText(traffic_network_slider.value); });
  492. fields_woods_slider.valueChanged.connect(function () { fields_woods.setText(fields_woods_slider.value); });
  493. air_pollution_slider.valueChanged.connect(function () { air_pollution.setText(air_pollution_slider.value); });
  494. house_demolition_2_slider.valueChanged.connect(function () { house_demolition_2.setText(house_demolition_2_slider.value); });
  495. water_pollution.setText(iniConf["water_pollution"]);
  496. noise_and_vibration.setText(iniConf["noise_and_vibration"]);
  497. cultural_heritage_protection.setText(iniConf["cultural_heritage_protection"]);
  498. destruction_wildlife.setText(iniConf["destruction_wildlife"]);
  499. original_natural.setText(iniConf["original_natural"]);
  500. traffic_network.setText(iniConf["traffic_network"]);
  501. fields_woods.setText(iniConf["fields_woods"]);
  502. air_pollution.setText(iniConf["air_pollution"]);
  503. house_demolition_2.setText(iniConf["house_demolition_2"]);
  504. };