SetArguments.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  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){
  149. var pmd = new PM();
  150. pmd.interface(this.pms[this.pmid]);
  151. }
  152. if(this.zdmsel){
  153. var zdmd = new ZDM();
  154. zdmd.interface(this.zdms[this.zdmid]);
  155. }
  156. };
  157. SetArguments.prototype.exitBtnClicked = function(){
  158. destr(this.selectLineDialog);
  159. };
  160. SetArguments.prototype.pmClicked = function() {
  161. this.pmsel = true;
  162. this.pmid = this.btngrp.checkedId();
  163. EAction.handleUserMessage(this.pms[this.pmid]);
  164. };
  165. SetArguments.prototype.zdmClicked = function() {
  166. this.zdmsel = true;
  167. this.zdmid = this.btngrp2.checkedId();
  168. // EAction.handleUserMessage(id.toString());
  169. EAction.handleUserMessage(this.zdms[this.zdmid]);
  170. };
  171. SetArguments.prototype.saveClicked = function() {
  172. // EAction.handleUserMessage("start Save File");
  173. this.iniFile.setValue("/parameter/batch_sizes",this.dialog.findChild("batch_sizes").text);
  174. this.iniFile.setValue("/parameter/learning_rate0",this.dialog.findChild("learning_rate0").text);
  175. this.iniFile.setValue("/parameter/learning_rate1",this.dialog.findChild("learning_rate1").text);
  176. this.iniFile.setValue("/parameter/iteration_times",this.dialog.findChild("iteration_times").text);
  177. this.iniFile.setValue("/parameter/discount_factor",this.dialog.findChild("discount_factor").text);
  178. this.iniFile.setValue("/parameter/d_k",this.dialog.findChild("d_k").text);
  179. this.iniFile.setValue("/parameter/d_line",this.dialog.findChild("d_line").text);
  180. this.iniFile.setValue("/parameter/forward_step",this.dialog.findChild("forward_step").text);
  181. this.iniFile.setValue("/parameter/learning_rate0",this.dialog.findChild("learning_rate0").text);
  182. this.iniFile.setValue("/parameter/range_p",this.dialog.findChild("range_p_x").text);
  183. this.iniFile.setValue("/parameter/range_g",this.dialog.findChild("range_g").text);
  184. this.iniFile.setValue("/parameter/range_k",this.dialog.findChild("range_k").text);
  185. this.iniFile.setValue("/parameter/range_c",this.dialog.findChild("range_c").text);
  186. this.iniFile.setValue("/parameter/range_v",this.dialog.findChild("range_v").text);
  187. this.iniFile.setValue("/parameter/range_e",this.dialog.findChild("range_e").text);
  188. this.iniFile.setValue("/cost/beam0",this.dialog.findChild("beam0").text);
  189. this.iniFile.setValue("/cost/beam1",this.dialog.findChild("beam1").text);
  190. this.iniFile.setValue("/cost/bridge_pier",this.dialog.findChild("bridge_pier").text);
  191. this.iniFile.setValue("/cost/tunnel0",this.dialog.findChild("tunnel0").text);
  192. this.iniFile.setValue("/cost/tunnel1",this.dialog.findChild("tunnel1").text);
  193. this.iniFile.setValue("/cost/tunnel2",this.dialog.findChild("tunnel2").text);
  194. this.iniFile.setValue("/cost/tunnel_entrance",this.dialog.findChild("tunnel_entrance").text);
  195. this.iniFile.setValue("/cost/railway_tracks",this.dialog.findChild("railway_tracks").text);
  196. this.iniFile.setValue("/cost/road_right_fee",this.dialog.findChild("road_right_fee").text);
  197. this.iniFile.setValue("/cost/filling_cost",this.dialog.findChild("filling_cost").text);
  198. this.iniFile.setValue("/cost/excavation_cost",this.dialog.findChild("excavation_cost").text);
  199. this.iniFile.setValue("/cost/arable_land_occupation",this.dialog.findChild("arable_land_occupation").text);
  200. this.iniFile.setValue("/cost/house_demolition",this.dialog.findChild("house_demolition").text);
  201. if(this.dialog.findChild("replace_radio").isChecked)
  202. {
  203. this.iniFile.setValue("/cost/replace_railway_by_bridge","1");
  204. }
  205. else
  206. {
  207. this.iniFile.setValue("/cost/replace_railway_by_bridge","0");
  208. }
  209. this.iniFile.setValue("/standard/design_speed",this.dialog.findChild("design_speed").text);
  210. this.iniFile.setValue("/standard/minimum_curve_radius",this.dialog.findChild("minimum_curve_radius").text);
  211. this.iniFile.setValue("/standard/minimum_circular_length",this.dialog.findChild("minimum_circular_length").text);
  212. this.iniFile.setValue("/standard/minimal_longitudinal_length",this.dialog.findChild("minimal_longitudinal_length").text);
  213. this.iniFile.setValue("/standard/maximum_gradient",this.dialog.findChild("maximum_gradient").text);
  214. this.iniFile.setValue("/standard/maximum_slope_difference",this.dialog.findChild("maximum_slope_difference").text);
  215. this.iniFile.setValue("/standard/minimum_transition_curve_length",this.dialog.findChild("minimum_transition_curve_length").text);
  216. this.iniFile.setValue("/standard/minimum_clip_line_length",this.dialog.findChild("minimum_clip_line_length").text);
  217. this.iniFile.setValue("/standard/minimum_radius_of_convex_vertical_curve",this.dialog.findChild("minimum_radius_of_convex_vertical_curve").text);
  218. this.iniFile.setValue("/standard/minimum_radius_of_concave_vertical_curve",this.dialog.findChild("minimum_radius_of_concave_vertical_curve").text);
  219. this.iniFile.setValue("/standard/minimum_length_of_vertical_curve",this.dialog.findChild("minimum_length_of_vertical_curve").text);
  220. this.iniFile.setValue("/ecology/water_pollution",this.dialog.findChild("water_pollution").text);
  221. this.iniFile.setValue("/ecology/noise_and_vibration",this.dialog.findChild("noise_and_vibration").text);
  222. this.iniFile.setValue("/ecology/cultural_heritage_protection",this.dialog.findChild("cultural_heritage_protection").text);
  223. this.iniFile.setValue("/ecology/destruction_wildlife",this.dialog.findChild("destruction_wildlife").text);
  224. this.iniFile.setValue("/ecology/original_natural",this.dialog.findChild("original_natural").text);
  225. this.iniFile.setValue("/ecology/traffic_network",this.dialog.findChild("traffic_network").text);
  226. this.iniFile.setValue("/ecology/fields_woods",this.dialog.findChild("fields_woods").text);
  227. this.iniFile.setValue("/ecology/air_pollution",this.dialog.findChild("air_pollution").text);
  228. this.iniFile.setValue("/ecology/house_demolition",this.dialog.findChild("house_demolition_2").text);
  229. // destr(this.iniFile);
  230. EAction.handleUserMessage("Save File");
  231. };
  232. SetArguments.prototype.resetClicked = function(){
  233. var iniConf = [];
  234. iniConf = this.readNormalIniFile();
  235. this.setNormalBox(iniConf);
  236. };
  237. SetArguments.prototype.readNormalIniFile = function(){
  238. var ret = [];
  239. //#region 优化模型参数设置
  240. ret["batch_sizes"] = this.iniFile.value("/parameter/batch_sizes").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  241. ret["learning_rate0"] = this.iniFile.value("/parameter/learning_rate0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  242. ret["learning_rate1"] = this.iniFile.value("/parameter/learning_rate1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  243. ret["iteration_times"] = this.iniFile.value("/parameter/iteration_times").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  244. ret["discount_factor"] = this.iniFile.value("/parameter/discount_factor").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  245. ret["d_k"] = this.iniFile.value("/parameter/d_k").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  246. ret["forward_step"] = this.iniFile.value("/parameter/forward_step").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  247. ret["range_p"] = this.iniFile.value("/parameter/range_p").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  248. ret["range_g"] = this.iniFile.value("/parameter/range_g").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  249. ret["range_k"] = this.iniFile.value("/parameter/range_k").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  250. ret["d_line"] = this.iniFile.value("/parameter/d_line").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  251. ret["range_c"] = this.iniFile.value("/parameter/range_c").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  252. ret["range_v"] = this.iniFile.value("/parameter/range_v").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  253. ret["range_e"] = this.iniFile.value("/parameter/range_e").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  254. //#endregion
  255. //#region 铁路单位造价设置
  256. ret["beam0"] = this.iniFile.value("/cost/beam0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  257. ret["beam1"] = this.iniFile.value("/cost/beam1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  258. ret["bridge_pier"] = this.iniFile.value("/cost/bridge_pier").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  259. ret["tunnel0"] = this.iniFile.value("/cost/tunnel0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  260. ret["tunnel1"] = this.iniFile.value("/cost/tunnel1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  261. ret["tunnel2"] = this.iniFile.value("/cost/tunnel2").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  262. ret["tunnel_entrance"] = this.iniFile.value("/cost/tunnel_entrance").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  263. ret["railway_tracks"] = this.iniFile.value("/cost/railway_tracks").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  264. ret["road_right_fee"] = this.iniFile.value("/cost/road_right_fee").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  265. ret["filling_cost"] = this.iniFile.value("/cost/filling_cost").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  266. ret["excavation_cost"] = this.iniFile.value("/cost/excavation_cost").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  267. ret["arable_land_occupation"] = this.iniFile.value("/cost/arable_land_occupation").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  268. ret["house_demolition"] = this.iniFile.value("/cost/house_demolition").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  269. ret["replace_railway_by_bridge"] = this.iniFile.value("/cost/replace_railway_by_bridge").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  270. //#endregion
  271. EAction.handleUserMessage("read ini speed");
  272. ret["design_speed"] = this.iniFile.value("/standard/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  273. ret["minimum_curve_radius"] = this.iniFile.value("/standard/minimum_curve_radius").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  274. ret["minimum_circular_length"] = this.iniFile.value("/standard/minimum_circular_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  275. ret["minimal_longitudinal_length"] = this.iniFile.value("/standard/minimal_longitudinal_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  276. ret["maximum_gradient"] = this.iniFile.value("/standard/maximum_gradient").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  277. ret["maximum_slope_difference"] = this.iniFile.value("/standard/maximum_slope_difference").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  278. ret["maximum_bridge_height"] = this.iniFile.value("/standard/maximum_bridge_height").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  279. ret["maximum_tunnel_length"] = this.iniFile.value("/standard/maximum_tunnel_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  280. ret["filling_height_lbb"] = this.iniFile.value("/standard/filling_height_lbb").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  281. ret["digging_deep_ltb"] = this.iniFile.value("/standard/digging_deep_ltb").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  282. ret["minimum_transition_curve_length"] = this.iniFile.value("/standard/minimum_transition_curve_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  283. ret["minimum_clip_line_length"] = this.iniFile.value("/standard/minimum_clip_line_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  284. ret["minimum_radius_of_convex_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_convex_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  285. ret["minimum_radius_of_concave_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_concave_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  286. ret["minimum_length_of_vertical_curve"] = this.iniFile.value("/standard/minimum_length_of_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  287. ret["water_pollution"] = this.iniFile.value("/ecology/water_pollution").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  288. ret["noise_and_vibration"] = this.iniFile.value("/ecology/noise_and_vibration").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  289. ret["cultural_heritage_protection"] = this.iniFile.value("/ecology/cultural_heritage_protection").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  290. ret["destruction_wildlife"] = this.iniFile.value("/ecology/destruction_wildlife").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  291. ret["original_natural"] = this.iniFile.value("/ecology/original_natural").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  292. ret["traffic_network"] = this.iniFile.value("/ecology/traffic_network").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  293. ret["fields_woods"] = this.iniFile.value("/ecology/fields_woods").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  294. ret["air_pollution"] = this.iniFile.value("/ecology/air_pollution").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  295. ret["house_demolition_2"] = this.iniFile.value("/ecology/house_demolition").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
  296. EAction.handleUserMessage("read ini finish");
  297. return ret;
  298. };
  299. SetArguments.prototype.setNormalBox = function(iniConf){
  300. // 优化相关
  301. var batch_sizes = this.dialog.findChild("batch_sizes");
  302. var learning_rate0 = this.dialog.findChild("learning_rate0");
  303. var learning_rate1 = this.dialog.findChild("learning_rate1");
  304. var iteration_times = this.dialog.findChild("iteration_times");
  305. var discount_factor = this.dialog.findChild("discount_factor");
  306. var range_p_x = this.dialog.findChild("range_p_x");
  307. var range_p_y = this.dialog.findChild("range_p_y");
  308. var range_g = this.dialog.findChild("range_g");
  309. var range_k = this.dialog.findChild("range_k");
  310. var range_c = this.dialog.findChild("range_c");
  311. var range_v = this.dialog.findChild("range_v");
  312. var range_e = this.dialog.findChild("range_e");
  313. var d_k= this.dialog.findChild("d_k");
  314. var d_line= this.dialog.findChild("d_line");
  315. var forward_step= this.dialog.findChild("forward_step");
  316. // slider
  317. var batchSlider = this.dialog.findChild("batchsizeSlider");
  318. var stepSlider = this.dialog.findChild("stepSlider");
  319. var iterationtimeSlider = this.dialog.findChild("iterationtimeSlider");
  320. var dkSlider = this.dialog.findChild("dkSlider");
  321. var rangecSlider = this.dialog.findChild("rangecSlider");
  322. var rangevSlider = this.dialog.findChild("rangevSlider");
  323. var rangeeSlider = this.dialog.findChild("rangeeSlider");
  324. batch_sizes.textChanged.connect( function() {batchSlider.setValue(batch_sizes.text);} );
  325. forward_step.textChanged.connect( function() {stepSlider.setValue(forward_step.text);} );
  326. iteration_times.textChanged.connect( function() {iterationtimeSlider.setValue(iteration_times.text);} );
  327. d_k.textChanged.connect( function() {dkSlider.setValue(d_k.text);} );
  328. range_c.textChanged.connect( function() {rangecSlider.setValue(range_c.text);} );
  329. range_v.textChanged.connect( function() {rangevSlider.setValue(range_v.text);} );
  330. range_e.textChanged.connect( function() {rangeeSlider.setValue(range_e.text);} );
  331. batchSlider.valueChanged.connect( function() {batch_sizes.setText(batchSlider.value);} );
  332. stepSlider.valueChanged.connect( function() {forward_step.setText(stepSlider.value);} );
  333. iterationtimeSlider.valueChanged.connect( function() {iteration_times.setText(iterationtimeSlider.value);} );
  334. dkSlider.valueChanged.connect( function() {d_k.setText(dkSlider.value);} );
  335. rangecSlider.valueChanged.connect( function() {range_c.setText(rangecSlider.value);} );
  336. rangevSlider.valueChanged.connect( function() {range_v.setText(rangevSlider.value);} );
  337. rangeeSlider.valueChanged.connect( function() {range_e.setText(rangeeSlider.value);} );
  338. batch_sizes.setText(iniConf["batch_sizes"]);
  339. learning_rate0.setText(iniConf["learning_rate0"]);
  340. learning_rate1.setText(iniConf["learning_rate1"]);
  341. iteration_times.setText(iniConf["iteration_times"]);
  342. discount_factor.setText(iniConf["discount_factor"]);
  343. range_p_x.setText(iniConf["range_p"]);
  344. range_p_y.setText(iniConf["range_p"]);
  345. range_g.setText(iniConf["range_g"]);
  346. range_k.setText(iniConf["range_k"]);
  347. range_c.setText(iniConf["range_c"]);
  348. range_v.setText(iniConf["range_v"]);
  349. range_e.setText(iniConf["range_e"]);
  350. d_k.setText(iniConf["d_k"]);
  351. d_line.setText(iniConf["d_line"]);
  352. forward_step.setText(iniConf["forward_step"]);
  353. range_p_x.textChanged.connect(
  354. function(){
  355. range_p_y.setText(range_p_x.text);
  356. });
  357. range_p_y.textChanged.connect(
  358. function(){
  359. range_p_x.setText(range_p_y.text);
  360. });
  361. // 铁路单位造价相关
  362. var beam0 = this.dialog.findChild("beam0");
  363. var beam1 = this.dialog.findChild("beam1");
  364. var bridge_pier = this.dialog.findChild("bridge_pier");
  365. var tunnel0 = this.dialog.findChild("tunnel0");
  366. var tunnel1 = this.dialog.findChild("tunnel1");
  367. var tunnel2 = this.dialog.findChild("tunnel2");
  368. var tunnel_entrance = this.dialog.findChild("tunnel_entrance");
  369. var railway_tracks = this.dialog.findChild("railway_tracks");
  370. var road_right_fee = this.dialog.findChild("road_right_fee");
  371. var filling_cost = this.dialog.findChild("filling_cost");
  372. var excavation_cost = this.dialog.findChild("excavation_cost");
  373. var arable_land_occupation = this.dialog.findChild("arable_land_occupation");
  374. var house_demolition = this.dialog.findChild("house_demolition");
  375. var replace_radio = this.dialog.findChild("replace_radio");
  376. var not_replace_radio = this.dialog.findChild("not_replace_radio");
  377. beam0.setText(iniConf["beam0"]);
  378. beam1.setText(iniConf["beam1"]);
  379. bridge_pier.setText(iniConf["bridge_pier"]);
  380. tunnel0.setText(iniConf["tunnel0"]);
  381. tunnel1.setText(iniConf["tunnel1"]);
  382. tunnel2.setText(iniConf["tunnel2"]);
  383. tunnel_entrance.setText(iniConf["tunnel_entrance"]);
  384. railway_tracks.setText(iniConf["railway_tracks"]);
  385. road_right_fee.setText(iniConf["road_right_fee"]);
  386. filling_cost.setText(iniConf["filling_cost"]);
  387. excavation_cost.setText(iniConf["excavation_cost"]);
  388. arable_land_occupation.setText(iniConf["arable_land_occupation"]);
  389. house_demolition.setText(iniConf["house_demolition"]);
  390. EAction.handleUserMessage("start set form");
  391. if(0 == iniConf["replace_railway_by_bridge"].toInt())
  392. {
  393. not_replace_radio.setChecked(1);
  394. }
  395. else
  396. {
  397. replace_radio.setChecked(1);
  398. }
  399. // 铁路设计标准相关
  400. var design_speed = this.dialog.findChild("design_speed");
  401. var minimum_curve_radius = this.dialog.findChild("minimum_curve_radius");
  402. var minimum_circular_length = this.dialog.findChild("minimum_circular_length");
  403. var minimal_longitudinal_length = this.dialog.findChild("minimal_longitudinal_length");
  404. var maximum_gradient = this.dialog.findChild("maximum_gradient");
  405. var maximum_slope_difference = this.dialog.findChild("maximum_slope_difference");
  406. var minimum_transition_curve_length = this.dialog.findChild("minimum_transition_curve_length");
  407. var minimum_clip_line_length = this.dialog.findChild("minimum_clip_line_length");
  408. var minimum_radius_of_convex_vertical_curve = this.dialog.findChild("minimum_radius_of_convex_vertical_curve");
  409. var minimum_radius_of_concave_vertical_curve = this.dialog.findChild("minimum_radius_of_concave_vertical_curve");
  410. var minimum_length_of_vertical_curve = this.dialog.findChild("minimum_length_of_vertical_curve");
  411. // slider
  412. var speedSlider = this.dialog.findChild("speedSlider");
  413. var minimum_curve_radius_slider = this.dialog.findChild("minimum_curve_radius_slider");
  414. var minimum_circular_length_slider = this.dialog.findChild("minimum_circular_length_slider");
  415. var minimal_longitudinal_length_slider = this.dialog.findChild("minimal_longitudinal_length_slider");
  416. var maximum_gradient_slider = this.dialog.findChild("maximum_gradient_slider");
  417. var maximum_slope_difference_slider = this.dialog.findChild("maximum_slope_difference_slider");
  418. var minimum_radius_of_convex_vertical_curve_slider = this.dialog.findChild("minimum_radius_of_convex_vertical_curve_slider");
  419. var concave_vertical_curve_slider = this.dialog.findChild("concave_vertical_curve_slider");
  420. var minimum_transition_curve_length_slider = this.dialog.findChild("minimum_transition_curve_length_slider");
  421. var minimum_clip_line_length_slider = this.dialog.findChild("minimum_clip_line_length_slider");
  422. var minimum_length_of_vertical_curve_slider = this.dialog.findChild("minimum_length_of_vertical_curve_slider");
  423. design_speed.textChanged.connect( function() {speedSlider.setValue(design_speed.text);} );
  424. minimum_curve_radius.textChanged.connect( function() {minimum_curve_radius_slider.setValue(minimum_curve_radius.text);} );
  425. minimum_circular_length.textChanged.connect( function() {minimum_circular_length_slider.setValue(minimum_circular_length.text);} );
  426. minimal_longitudinal_length.textChanged.connect( function() {minimal_longitudinal_length_slider.setValue(minimal_longitudinal_length.text);} );
  427. maximum_gradient.textChanged.connect( function() {maximum_gradient_slider.setValue(maximum_gradient.text);} );
  428. maximum_slope_difference.textChanged.connect( function() {maximum_slope_difference_slider.setValue(maximum_slope_difference.text);} );
  429. minimum_transition_curve_length.textChanged.connect( function() {minimum_transition_curve_length_slider.setValue(minimum_transition_curve_length.text);} );
  430. minimum_clip_line_length.textChanged.connect( function() {minimum_clip_line_length_slider.setValue(minimum_clip_line_length.text);} );
  431. minimum_radius_of_convex_vertical_curve.textChanged.connect( function() {minimum_radius_of_convex_vertical_curve_slider.setValue(minimum_radius_of_convex_vertical_curve.text);} );
  432. minimum_radius_of_concave_vertical_curve.textChanged.connect( function() {concave_vertical_curve_slider.setValue(minimum_radius_of_concave_vertical_curve.text);} );
  433. minimum_length_of_vertical_curve.textChanged.connect( function() {minimum_length_of_vertical_curve_slider.setValue(minimum_length_of_vertical_curve.text);} );
  434. speedSlider.valueChanged.connect( function() {design_speed.setText(speedSlider.value);} );
  435. minimum_curve_radius_slider.valueChanged.connect( function() {minimum_curve_radius.setText(minimum_curve_radius_slider.value);} );
  436. minimum_circular_length_slider.valueChanged.connect( function() {minimum_circular_length.setText(minimum_circular_length_slider.value);} );
  437. minimal_longitudinal_length_slider.valueChanged.connect( function() {minimal_longitudinal_length.setText(minimal_longitudinal_length_slider.value);} );
  438. maximum_gradient_slider.valueChanged.connect( function() {maximum_gradient.setText(maximum_gradient_slider.value);} );
  439. maximum_slope_difference_slider.valueChanged.connect( function() {maximum_slope_difference.setText(maximum_slope_difference_slider.value);} );
  440. minimum_transition_curve_length_slider.valueChanged.connect( function() {minimum_transition_curve_length.setText(minimum_transition_curve_length_slider.value);} );
  441. minimum_clip_line_length_slider.valueChanged.connect( function() {minimum_clip_line_length.setText(minimum_clip_line_length_slider.value);} );
  442. 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);} );
  443. concave_vertical_curve_slider.valueChanged.connect( function() {minimum_radius_of_concave_vertical_curve.setText(concave_vertical_curve_slider.value);} );
  444. minimum_length_of_vertical_curve_slider.valueChanged.connect( function() {minimum_length_of_vertical_curve.setText(minimum_length_of_vertical_curve_slider.value);} );
  445. design_speed.setText(iniConf["design_speed"]);
  446. minimum_curve_radius.setText(iniConf["minimum_curve_radius"]);
  447. minimum_circular_length.setText(iniConf["minimum_circular_length"]);
  448. minimal_longitudinal_length.setText(iniConf["minimal_longitudinal_length"]);
  449. maximum_gradient.setText(iniConf["maximum_gradient"]);
  450. maximum_slope_difference.setText(iniConf["maximum_slope_difference"]);
  451. minimum_transition_curve_length.setText(iniConf["minimum_transition_curve_length"]);
  452. minimum_clip_line_length.setText(iniConf["minimum_clip_line_length"]);
  453. minimum_radius_of_convex_vertical_curve.setText(iniConf["minimum_radius_of_convex_vertical_curve"]);
  454. minimum_radius_of_concave_vertical_curve.setText(iniConf["minimum_radius_of_concave_vertical_curve"]);
  455. minimum_length_of_vertical_curve.setText(iniConf["minimum_length_of_vertical_curve"]);
  456. // 生态相关
  457. var water_pollution = this.dialog.findChild("water_pollution");
  458. var noise_and_vibration = this.dialog.findChild("noise_and_vibration");
  459. var cultural_heritage_protection = this.dialog.findChild("cultural_heritage_protection");
  460. var destruction_wildlife = this.dialog.findChild("destruction_wildlife");
  461. var original_natural = this.dialog.findChild("original_natural");
  462. var traffic_network = this.dialog.findChild("traffic_network");
  463. var fields_woods = this.dialog.findChild("fields_woods");
  464. var air_pollution = this.dialog.findChild("air_pollution");
  465. var house_demolition_2 = this.dialog.findChild("house_demolition_2");
  466. // slider
  467. var water_pollution_slider = this.dialog.findChild("water_pollution_slider");
  468. var noise_and_vibration_slider = this.dialog.findChild("noise_and_vibration_slider");
  469. var cultural_heritage_protection_slider = this.dialog.findChild("cultural_heritage_protection_slider");
  470. var destruction_wildlife_slider = this.dialog.findChild("destruction_wildlife_slider");
  471. var original_natural_slider = this.dialog.findChild("original_natural_slider");
  472. var traffic_network_slider = this.dialog.findChild("traffic_network_slider");
  473. var fields_woods_slider = this.dialog.findChild("fields_woods_slider");
  474. var air_pollution_slider = this.dialog.findChild("air_pollution_slider");
  475. var house_demolition_2_slider = this.dialog.findChild("house_demolition_2_slider");
  476. water_pollution.textChanged.connect( function() {water_pollution_slider.setValue(water_pollution.text);} );
  477. noise_and_vibration.textChanged.connect( function() {noise_and_vibration_slider.setValue(noise_and_vibration.text);} );
  478. cultural_heritage_protection.textChanged.connect( function() {cultural_heritage_protection_slider.setValue(cultural_heritage_protection.text);} );
  479. destruction_wildlife.textChanged.connect( function() {destruction_wildlife_slider.setValue(destruction_wildlife.text);} );
  480. original_natural.textChanged.connect( function() {original_natural_slider.setValue(original_natural.text);} );
  481. traffic_network.textChanged.connect( function() {traffic_network_slider.setValue(traffic_network.text);} );
  482. fields_woods.textChanged.connect( function() {fields_woods_slider.setValue(fields_woods.text);} );
  483. air_pollution.textChanged.connect( function() {air_pollution_slider.setValue(air_pollution.text);} );
  484. house_demolition_2.textChanged.connect( function() {house_demolition_2_slider.setValue(house_demolition_2.text);} );
  485. water_pollution_slider.valueChanged.connect( function() {water_pollution.setText(water_pollution_slider.value);} );
  486. noise_and_vibration_slider.valueChanged.connect( function() {noise_and_vibration.setText(noise_and_vibration_slider.value);} );
  487. cultural_heritage_protection_slider.valueChanged.connect( function() {cultural_heritage_protection.setText(cultural_heritage_protection_slider.value);} );
  488. destruction_wildlife_slider.valueChanged.connect( function() {destruction_wildlife.setText(destruction_wildlife_slider.value);} );
  489. original_natural_slider.valueChanged.connect( function() {original_natural.setText(original_natural_slider.value);} );
  490. traffic_network_slider.valueChanged.connect( function() {traffic_network.setText(traffic_network_slider.value);} );
  491. fields_woods_slider.valueChanged.connect( function() {fields_woods.setText(fields_woods_slider.value);} );
  492. air_pollution_slider.valueChanged.connect( function() {air_pollution.setText(air_pollution_slider.value);} );
  493. house_demolition_2_slider.valueChanged.connect( function() {house_demolition_2.setText(house_demolition_2_slider.value);} );
  494. water_pollution.setText(iniConf["water_pollution"]);
  495. noise_and_vibration.setText(iniConf["noise_and_vibration"]);
  496. cultural_heritage_protection.setText(iniConf["cultural_heritage_protection"]);
  497. destruction_wildlife.setText(iniConf["destruction_wildlife"]);
  498. original_natural.setText(iniConf["original_natural"]);
  499. traffic_network.setText(iniConf["traffic_network"]);
  500. fields_woods.setText(iniConf["fields_woods"]);
  501. air_pollution.setText(iniConf["air_pollution"]);
  502. house_demolition_2.setText(iniConf["house_demolition_2"]);
  503. };