Bladeren bron

fix 优化的条件判断

zhanghaijun 3 jaren geleden
bovenliggende
commit
e1d98c29be

+ 1 - 0
.gitignore

@@ -1,6 +1,7 @@
 ## 生成的文件
 project/示例/*.csv
 project/*.csv
+project/**/para.ini
 
 ## ------ 超过20MB的文件 --- start ---
 plugins/script/qtscript_widgets.pdb

+ 0 - 61
project/para.ini

@@ -1,61 +0,0 @@
-[parameter]
-batch_sizes=2
-learning_rate0=6e-4
-learning_rate1=6e-3
-iteration_times=5
-discount_factor=0.8
-d_k=100
-forward_step=5
-range_p=30
-range_g=2
-range_k=50
-d_line=20
-range_c=300
-range_v=5000
-range_e=0
-
-[cost]
-beam0=70000
-beam1=80000
-bridge_pier=300000
-tunnel0=72800
-tunnel1=11800
-tunnel2=132000
-tunnel_entrance=390000
-railway_tracks=9300
-road_right_fee=75
-filling_cost=36
-excavation_cost=36
-arable_land_occupation=95.1
-house_demolition=10
-farmland_layer_name=sensitive_area
-demolition_layer_name=sensitive_area
-replace_railway_by_bridge=0
-
-[standard]
-design_speed=250
-minimum_curve_radius=3500
-minimum_circular_length=200
-minimal_longitudinal_length=900
-maximum_gradient=20
-maximum_slope_difference=18
-maximum_bridge_height=100
-maximum_tunnel_length=12000
-filling_height_lbb=10
-digging_deep_ltb=15
-minimum_transition_curve_length=120
-minimum_clip_line_length=200
-minimum_radius_of_convex_vertical_curve=20000
-minimum_radius_of_concave_vertical_curve=20000
-minimum_length_of_vertical_curve=25
-
-[ecology]
-water_pollution=5
-noise_and_vibration=10
-cultural_heritage_protection=25
-destruction_wildlife=20
-original_natural=60
-traffic_network=90
-fields_woods=20
-air_pollution=5
-house_demolition=40

+ 0 - 61
project/示例/para.ini

@@ -1,61 +0,0 @@
-[parameter]
-batch_sizes=2
-learning_rate0=6e-4
-learning_rate1=6e-3
-iteration_times=5
-discount_factor=0.8
-d_k=100
-forward_step=5
-range_p=30
-range_g=2
-range_k=50
-d_line=20
-range_c=300
-range_v=5000
-range_e=0
-
-[cost]
-beam0=70000
-beam1=80000
-bridge_pier=300000
-tunnel0=72800
-tunnel1=11800
-tunnel2=132000
-tunnel_entrance=390000
-railway_tracks=9300
-road_right_fee=75
-filling_cost=36
-excavation_cost=36
-arable_land_occupation=95.1
-house_demolition=10
-farmland_layer_name=sensitive_area
-demolition_layer_name=sensitive_area
-replace_railway_by_bridge=0
-
-[standard]
-design_speed=250
-minimum_curve_radius=3500
-minimum_circular_length=200
-minimal_longitudinal_length=900
-maximum_gradient=20
-maximum_slope_difference=18
-maximum_bridge_height=100
-maximum_tunnel_length=12000
-filling_height_lbb=10
-digging_deep_ltb=15
-minimum_transition_curve_length=120
-minimum_clip_line_length=200
-minimum_radius_of_convex_vertical_curve=20000
-minimum_radius_of_concave_vertical_curve=20000
-minimum_length_of_vertical_curve=25
-
-[ecology]
-water_pollution=5
-noise_and_vibration=10
-cultural_heritage_protection=25
-destruction_wildlife=20
-original_natural=60
-traffic_network=90
-fields_woods=20
-air_pollution=5
-house_demolition=40

+ 6 - 1
scripts/Optimize/PMOptimize/PMOptimize.js

@@ -53,7 +53,7 @@ PMOptimize.prototype.beginEvent = function () {
       }
       this.pms.push(pmList[i]);
     }
-    if(this.pms.length == 0) {
+    if (this.pms.length == 0) {
       opBtn.setEnabled(false);
     }
     for (var i = 0; i < this.pms.length; i++) {
@@ -75,6 +75,11 @@ PMOptimize.prototype.beginEvent = function () {
 
 
 PMOptimize.prototype.opBtnClicked = function () {
+  if (!this.pmsel) {
+    var appWin = EAction.getMainWindow();
+    QMessageBox.information(appWin, qsTr("提示"), qsTr("请选择优化的的文件"));
+    return;
+  }
   // 点击后的事件
   // if(this.pmsel){
   //   var pmd = new PM();

+ 297 - 298
scripts/Optimize/SetArguments/SetArguments.js

@@ -26,12 +26,12 @@ include("../ZDM/ZDM.js")
 SetArguments.readmeFile = "readme.txt";
 
 function SetArguments(guiAction) {
-    EAction.call(this, guiAction);
-    this.pmsel = false;
-    this.zdmsel = false;
+  EAction.call(this, guiAction);
+  this.pmsel = false;
+  this.zdmsel = false;
 
-    // var lastOpenFile = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation());
-    // var lastOpenFileDir = SetArguments.includeBasePath + "/../../../project/" + lastOpenFile + "/para.ini";
+  // var lastOpenFile = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation());
+  // var lastOpenFileDir = SetArguments.includeBasePath + "/../../../project/" + lastOpenFile + "/para.ini";
 
 
 }
@@ -39,86 +39,86 @@ function SetArguments(guiAction) {
 SetArguments.prototype = new EAction();
 SetArguments.includeBasePath = includeBasePath;
 
-SetArguments.prototype.beginEvent = function() {
-    EAction.prototype.beginEvent.call(this);
-    // EAction.handleUserMessage("start show widget");
-    var appWin = EAction.getMainWindow();
+SetArguments.prototype.beginEvent = function () {
+  EAction.prototype.beginEvent.call(this);
+  // EAction.handleUserMessage("start show widget");
+  var appWin = EAction.getMainWindow();
 
-    if(RSettings.getStringValue("OpenProject/Current","") == ""){
-      QMessageBox.critical(appWin,
-          qsTr("提示"),
-          qsTr("请先选择工程路径"));
-      return;
+  if (RSettings.getStringValue("OpenProject/Current", "") == "") {
+    QMessageBox.critical(appWin,
+      qsTr("提示"),
+      qsTr("请先选择工程路径"));
+    return;
   }
 
   var lastOpenFileDir = RSettings.getStringValue("OpenProject/Current", RSettings.getDocumentsLocation()) + "/para.ini";
   // EAction.handleUserMessage(lastOpenFileDir);
   var file = new QFile(lastOpenFileDir);
-  if(!file.exists()){
+  if (!file.exists()) {
     QMessageBox.critical(EAction.getMainWindow(), qsTr("提示"),
-      RSettings.getStringValue("OpenProject/Current","") + qsTr(" 工程下没有参数文件"));
-      return;
+      RSettings.getStringValue("OpenProject/Current", "") + qsTr(" 工程下没有参数文件"));
+    return;
   }
   this.iniFile = new QSettings(lastOpenFileDir, QSettings.IniFormat);
   // this.iniFile = new QSettings("D:/Project/para.ini", QSettings.IniFormat);
-  this.standard_type = new Array();    
-
-
-    this.dialog = this.createWidget(SetArguments.includeBasePath + "/SetArgumentsDialog.ui", appWin);
-    WidgetFactory.restoreState(this.dialog);
-
-    this.resetClicked();
-    //var iniConf = [];
-    //iniConf = this.readNormalIniFile();
-    //this.setNormalBox(iniConf);
-    // var childs = this.iniFile.childGroups();
-    // for(var i = 0; i < childs.length; i++){
-    //   if(childs[i].indexOf("standard") != -1){
-    //     this.standard_type.push(childs[i]);
-    //     this.standard_type.push(this.iniFile.value("/" + childs[i].toString() + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
-    //     // EAction.handleUserMessage(this.iniFile.value("/" + childs[i] + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
-    //     // EAction.handleUserMessage(childs[i]);
-    //   }
-    // }
-    // // 速度
-    // this.select_type =  this.standard_type[0];
-
-    //this.resetClicked();
-
-    // var design_speed = this.dialog.findChild("comboBox");
-    // for(var i = 1; i < this.standard_type.length; i += 2){
-    //   design_speed.addItem(this.standard_type[i]);
-    // }
-    // design_speed["currentIndexChanged(int)"].connect(this, this.selectSpeed);
-
-    // var speedCfg = [];
-    // speedCfg = this.readSpeedCfg();
-    // this.setSpeedBox(speedCfg);
-
-    // 恢复默认
-    var resetBtn = this.dialog.findChild("resetBtn");
-    resetBtn.clicked.connect(this, this.resetClicked);
-    // 保存
-    var saveBtn = this.dialog.findChild("saveBtn");
-    saveBtn.clicked.connect(this, this.saveClicked);
-
-    // 优化
-    var optimizeBtn = this.dialog.findChild("optimizeBtn");
-    optimizeBtn.clicked.connect(this, this.optimizeClicked);
-    
-    if (!this.dialog.exec()) {
-      EAction.handleUserMessage("clicked~");
-      destr(this.dialog);
-      EAction.activateMainWindow();
-      return undefined;
-    }
-
-    WidgetFactory.saveState(this.dialog);
-
-    
+  this.standard_type = new Array();
+
+
+  this.dialog = this.createWidget(SetArguments.includeBasePath + "/SetArgumentsDialog.ui", appWin);
+  WidgetFactory.restoreState(this.dialog);
+
+  this.resetClicked();
+  //var iniConf = [];
+  //iniConf = this.readNormalIniFile();
+  //this.setNormalBox(iniConf);
+  // var childs = this.iniFile.childGroups();
+  // for(var i = 0; i < childs.length; i++){
+  //   if(childs[i].indexOf("standard") != -1){
+  //     this.standard_type.push(childs[i]);
+  //     this.standard_type.push(this.iniFile.value("/" + childs[i].toString() + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
+  //     // EAction.handleUserMessage(this.iniFile.value("/" + childs[i] + "/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""));
+  //     // EAction.handleUserMessage(childs[i]);
+  //   }
+  // }
+  // // 速度
+  // this.select_type =  this.standard_type[0];
+
+  //this.resetClicked();
+
+  // var design_speed = this.dialog.findChild("comboBox");
+  // for(var i = 1; i < this.standard_type.length; i += 2){
+  //   design_speed.addItem(this.standard_type[i]);
+  // }
+  // design_speed["currentIndexChanged(int)"].connect(this, this.selectSpeed);
+
+  // var speedCfg = [];
+  // speedCfg = this.readSpeedCfg();
+  // this.setSpeedBox(speedCfg);
+
+  // 恢复默认
+  var resetBtn = this.dialog.findChild("resetBtn");
+  resetBtn.clicked.connect(this, this.resetClicked);
+  // 保存
+  var saveBtn = this.dialog.findChild("saveBtn");
+  saveBtn.clicked.connect(this, this.saveClicked);
+
+  // 优化
+  var optimizeBtn = this.dialog.findChild("optimizeBtn");
+  optimizeBtn.clicked.connect(this, this.optimizeClicked);
+
+  if (!this.dialog.exec()) {
+    EAction.handleUserMessage("clicked~");
+    destr(this.dialog);
+    EAction.activateMainWindow();
+    return undefined;
+  }
+
+  WidgetFactory.saveState(this.dialog);
+
+
 };
 
-SetArguments.prototype.optimizeClicked = function() {
+SetArguments.prototype.optimizeClicked = function () {
   // 查找文件,显示出来
   // test:显示随便的数字
   var appWin = EAction.getMainWindow();
@@ -128,23 +128,23 @@ SetArguments.prototype.optimizeClicked = function() {
   var opBtn = this.selectLineDialog.findChild("opBtn");
   var exitBtn = this.selectLineDialog.findChild("exitBtn");
 
-  opBtn.clicked.connect(this,this.opBtnClicked);
-  exitBtn.clicked.connect(this,this.exitBtnClicked);
+  opBtn.clicked.connect(this, this.opBtnClicked);
+  exitBtn.clicked.connect(this, this.exitBtnClicked);
 
 
   this.btngrp = new QButtonGroup(pmWidget);
   var allPMFile = RSettings.getStringValue("OpenDisplayFile/PMFile", "");
   var pmList = allPMFile.split(',');
   this.pms = new Array();
-  for(var i = 0; i < pmList.length; i++){
-    if(pmList[i] == "") continue;
+  for (var i = 0; i < pmList.length; i++) {
+    if (pmList[i] == "") continue;
     this.pms.push(pmList[i]);
   }
-  for(var i = 0; i < this.pms.length; i++){
+  for (var i = 0; i < this.pms.length; i++) {
     var pmFile = new QRadioButton(this.pms[i], pmWidget);
-    pmFile.setGeometry(50, 25 + 40*i, 1200, 40);
+    pmFile.setGeometry(50, 25 + 40 * i, 1200, 40);
     this.btngrp.addButton(pmFile, i);
-    pmFile.clicked.connect(this,this.pmClicked);
+    pmFile.clicked.connect(this, this.pmClicked);
   }
 
   var zdmWidget = this.selectLineDialog.findChild("zdmWidget");
@@ -153,17 +153,17 @@ SetArguments.prototype.optimizeClicked = function() {
   var allZDMFile = RSettings.getStringValue("OpenDisplayFile/ZDMFile", "");
   var zdmList = allZDMFile.split(',');
   this.zdms = new Array();
-  for(var i = 0; i < zdmList.length; i++){
-    if(zdmList[i] == "") continue;
+  for (var i = 0; i < zdmList.length; i++) {
+    if (zdmList[i] == "") continue;
     this.zdms.push(zdmList[i]);
   }
-  for(var i = 0; i < this.zdms.length; i++){
+  for (var i = 0; i < this.zdms.length; i++) {
     var zdmFile = new QRadioButton(this.zdms[i], zdmWidget);
-    zdmFile.setGeometry(50, 25 + 40*i, 1200, 40);
+    zdmFile.setGeometry(50, 25 + 40 * i, 1200, 40);
     this.btngrp2.addButton(zdmFile, i);
-    zdmFile.clicked.connect(this,this.zdmClicked);
+    zdmFile.clicked.connect(this, this.zdmClicked);
   }
-  if(this.pms.length == 0 && this.zdms.length == 0) {
+  if (this.pms.length == 0 && this.zdms.length == 0) {
     opBtn.setEnabled(false);
   }
   if (!this.selectLineDialog.exec()) {
@@ -174,30 +174,33 @@ SetArguments.prototype.optimizeClicked = function() {
   }
 };
 
-SetArguments.prototype.opBtnClicked = function(){
-
-  if(this.pmsel){
+SetArguments.prototype.opBtnClicked = function () {
+  if (!this.pmsel && !this.zdmsel) {
+    var appWin = EAction.getMainWindow();
+    QMessageBox.information(appWin, qsTr("提示"), qsTr("请选择优化的的文件"));
+    return;
+  }
+  if (this.pmsel) {
     var pmd = new PM();
     pmd.interface(this.pms[this.pmid]);
   }
-  if(this.zdmsel){
+  if (this.zdmsel) {
     var zdmd = new ZDM();
     zdmd.interface(this.zdms[this.zdmid]);
   }
-
 };
 
-SetArguments.prototype.exitBtnClicked = function(){
+SetArguments.prototype.exitBtnClicked = function () {
   destr(this.selectLineDialog);
 };
 
-SetArguments.prototype.pmClicked = function() {
+SetArguments.prototype.pmClicked = function () {
   this.pmsel = true;
   this.pmid = this.btngrp.checkedId();
   EAction.handleUserMessage(this.pms[this.pmid]);
 };
 
-SetArguments.prototype.zdmClicked = function() {
+SetArguments.prototype.zdmClicked = function () {
   this.zdmsel = true;
   this.zdmid = this.btngrp2.checkedId();
   // EAction.handleUserMessage(id.toString());
@@ -205,147 +208,145 @@ SetArguments.prototype.zdmClicked = function() {
 
 };
 
-SetArguments.prototype.saveClicked = function() {
+SetArguments.prototype.saveClicked = function () {
   // EAction.handleUserMessage("start Save File");
-  this.iniFile.setValue("/parameter/batch_sizes",this.dialog.findChild("batch_sizes").text);
-  this.iniFile.setValue("/parameter/learning_rate0",this.dialog.findChild("learning_rate0").text);
-  this.iniFile.setValue("/parameter/learning_rate1",this.dialog.findChild("learning_rate1").text);
-  this.iniFile.setValue("/parameter/iteration_times",this.dialog.findChild("iteration_times").text);
-  this.iniFile.setValue("/parameter/discount_factor",this.dialog.findChild("discount_factor").text);
-  this.iniFile.setValue("/parameter/d_k",this.dialog.findChild("d_k").text);
-  this.iniFile.setValue("/parameter/d_line",this.dialog.findChild("d_line").text);
-  this.iniFile.setValue("/parameter/forward_step",this.dialog.findChild("forward_step").text);  
-  this.iniFile.setValue("/parameter/learning_rate0",this.dialog.findChild("learning_rate0").text);
-  this.iniFile.setValue("/parameter/range_p",this.dialog.findChild("range_p_x").text);
-  this.iniFile.setValue("/parameter/range_g",this.dialog.findChild("range_g").text);
-  this.iniFile.setValue("/parameter/range_k",this.dialog.findChild("range_k").text);
-  this.iniFile.setValue("/parameter/range_c",this.dialog.findChild("range_c").text);
-  this.iniFile.setValue("/parameter/range_v",this.dialog.findChild("range_v").text);
-  this.iniFile.setValue("/parameter/range_e",this.dialog.findChild("range_e").text);
-
-  this.iniFile.setValue("/cost/beam0",this.dialog.findChild("beam0").text);
-  this.iniFile.setValue("/cost/beam1",this.dialog.findChild("beam1").text);
-  this.iniFile.setValue("/cost/bridge_pier",this.dialog.findChild("bridge_pier").text);
-  this.iniFile.setValue("/cost/tunnel0",this.dialog.findChild("tunnel0").text);
-  this.iniFile.setValue("/cost/tunnel1",this.dialog.findChild("tunnel1").text);
-  this.iniFile.setValue("/cost/tunnel2",this.dialog.findChild("tunnel2").text);
-  this.iniFile.setValue("/cost/tunnel_entrance",this.dialog.findChild("tunnel_entrance").text);
-  this.iniFile.setValue("/cost/railway_tracks",this.dialog.findChild("railway_tracks").text);
-  this.iniFile.setValue("/cost/road_right_fee",this.dialog.findChild("road_right_fee").text);
-  this.iniFile.setValue("/cost/filling_cost",this.dialog.findChild("filling_cost").text);
-  this.iniFile.setValue("/cost/excavation_cost",this.dialog.findChild("excavation_cost").text);
-  this.iniFile.setValue("/cost/arable_land_occupation",this.dialog.findChild("arable_land_occupation").text);
-  this.iniFile.setValue("/cost/house_demolition",this.dialog.findChild("house_demolition").text);
-  if(this.dialog.findChild("replace_radio").isChecked)
-  {
-    this.iniFile.setValue("/cost/replace_railway_by_bridge","1");
+  this.iniFile.setValue("/parameter/batch_sizes", this.dialog.findChild("batch_sizes").text);
+  this.iniFile.setValue("/parameter/learning_rate0", this.dialog.findChild("learning_rate0").text);
+  this.iniFile.setValue("/parameter/learning_rate1", this.dialog.findChild("learning_rate1").text);
+  this.iniFile.setValue("/parameter/iteration_times", this.dialog.findChild("iteration_times").text);
+  this.iniFile.setValue("/parameter/discount_factor", this.dialog.findChild("discount_factor").text);
+  this.iniFile.setValue("/parameter/d_k", this.dialog.findChild("d_k").text);
+  this.iniFile.setValue("/parameter/d_line", this.dialog.findChild("d_line").text);
+  this.iniFile.setValue("/parameter/forward_step", this.dialog.findChild("forward_step").text);
+  this.iniFile.setValue("/parameter/learning_rate0", this.dialog.findChild("learning_rate0").text);
+  this.iniFile.setValue("/parameter/range_p", this.dialog.findChild("range_p_x").text);
+  this.iniFile.setValue("/parameter/range_g", this.dialog.findChild("range_g").text);
+  this.iniFile.setValue("/parameter/range_k", this.dialog.findChild("range_k").text);
+  this.iniFile.setValue("/parameter/range_c", this.dialog.findChild("range_c").text);
+  this.iniFile.setValue("/parameter/range_v", this.dialog.findChild("range_v").text);
+  this.iniFile.setValue("/parameter/range_e", this.dialog.findChild("range_e").text);
+
+  this.iniFile.setValue("/cost/beam0", this.dialog.findChild("beam0").text);
+  this.iniFile.setValue("/cost/beam1", this.dialog.findChild("beam1").text);
+  this.iniFile.setValue("/cost/bridge_pier", this.dialog.findChild("bridge_pier").text);
+  this.iniFile.setValue("/cost/tunnel0", this.dialog.findChild("tunnel0").text);
+  this.iniFile.setValue("/cost/tunnel1", this.dialog.findChild("tunnel1").text);
+  this.iniFile.setValue("/cost/tunnel2", this.dialog.findChild("tunnel2").text);
+  this.iniFile.setValue("/cost/tunnel_entrance", this.dialog.findChild("tunnel_entrance").text);
+  this.iniFile.setValue("/cost/railway_tracks", this.dialog.findChild("railway_tracks").text);
+  this.iniFile.setValue("/cost/road_right_fee", this.dialog.findChild("road_right_fee").text);
+  this.iniFile.setValue("/cost/filling_cost", this.dialog.findChild("filling_cost").text);
+  this.iniFile.setValue("/cost/excavation_cost", this.dialog.findChild("excavation_cost").text);
+  this.iniFile.setValue("/cost/arable_land_occupation", this.dialog.findChild("arable_land_occupation").text);
+  this.iniFile.setValue("/cost/house_demolition", this.dialog.findChild("house_demolition").text);
+  if (this.dialog.findChild("replace_radio").isChecked) {
+    this.iniFile.setValue("/cost/replace_railway_by_bridge", "1");
   }
-  else
-  {
-    this.iniFile.setValue("/cost/replace_railway_by_bridge","0");
+  else {
+    this.iniFile.setValue("/cost/replace_railway_by_bridge", "0");
   }
 
-  this.iniFile.setValue("/standard/design_speed",this.dialog.findChild("design_speed").text);
-  this.iniFile.setValue("/standard/minimum_curve_radius",this.dialog.findChild("minimum_curve_radius").text);
-  this.iniFile.setValue("/standard/minimum_circular_length",this.dialog.findChild("minimum_circular_length").text);
-  this.iniFile.setValue("/standard/minimal_longitudinal_length",this.dialog.findChild("minimal_longitudinal_length").text);
-  this.iniFile.setValue("/standard/maximum_gradient",this.dialog.findChild("maximum_gradient").text);
-  this.iniFile.setValue("/standard/maximum_slope_difference",this.dialog.findChild("maximum_slope_difference").text);
-  this.iniFile.setValue("/standard/minimum_transition_curve_length",this.dialog.findChild("minimum_transition_curve_length").text);
-  this.iniFile.setValue("/standard/minimum_clip_line_length",this.dialog.findChild("minimum_clip_line_length").text);
-  this.iniFile.setValue("/standard/minimum_radius_of_convex_vertical_curve",this.dialog.findChild("minimum_radius_of_convex_vertical_curve").text);
-  this.iniFile.setValue("/standard/minimum_radius_of_concave_vertical_curve",this.dialog.findChild("minimum_radius_of_concave_vertical_curve").text);
-  this.iniFile.setValue("/standard/minimum_length_of_vertical_curve",this.dialog.findChild("minimum_length_of_vertical_curve").text);
-
-  this.iniFile.setValue("/ecology/water_pollution",this.dialog.findChild("water_pollution").text);
-  this.iniFile.setValue("/ecology/noise_and_vibration",this.dialog.findChild("noise_and_vibration").text);
-  this.iniFile.setValue("/ecology/cultural_heritage_protection",this.dialog.findChild("cultural_heritage_protection").text);
-  this.iniFile.setValue("/ecology/destruction_wildlife",this.dialog.findChild("destruction_wildlife").text);
-  this.iniFile.setValue("/ecology/original_natural",this.dialog.findChild("original_natural").text);
-  this.iniFile.setValue("/ecology/traffic_network",this.dialog.findChild("traffic_network").text);
-  this.iniFile.setValue("/ecology/fields_woods",this.dialog.findChild("fields_woods").text);
-  this.iniFile.setValue("/ecology/air_pollution",this.dialog.findChild("air_pollution").text);
-  this.iniFile.setValue("/ecology/house_demolition",this.dialog.findChild("house_demolition_2").text);
+  this.iniFile.setValue("/standard/design_speed", this.dialog.findChild("design_speed").text);
+  this.iniFile.setValue("/standard/minimum_curve_radius", this.dialog.findChild("minimum_curve_radius").text);
+  this.iniFile.setValue("/standard/minimum_circular_length", this.dialog.findChild("minimum_circular_length").text);
+  this.iniFile.setValue("/standard/minimal_longitudinal_length", this.dialog.findChild("minimal_longitudinal_length").text);
+  this.iniFile.setValue("/standard/maximum_gradient", this.dialog.findChild("maximum_gradient").text);
+  this.iniFile.setValue("/standard/maximum_slope_difference", this.dialog.findChild("maximum_slope_difference").text);
+  this.iniFile.setValue("/standard/minimum_transition_curve_length", this.dialog.findChild("minimum_transition_curve_length").text);
+  this.iniFile.setValue("/standard/minimum_clip_line_length", this.dialog.findChild("minimum_clip_line_length").text);
+  this.iniFile.setValue("/standard/minimum_radius_of_convex_vertical_curve", this.dialog.findChild("minimum_radius_of_convex_vertical_curve").text);
+  this.iniFile.setValue("/standard/minimum_radius_of_concave_vertical_curve", this.dialog.findChild("minimum_radius_of_concave_vertical_curve").text);
+  this.iniFile.setValue("/standard/minimum_length_of_vertical_curve", this.dialog.findChild("minimum_length_of_vertical_curve").text);
+
+  this.iniFile.setValue("/ecology/water_pollution", this.dialog.findChild("water_pollution").text);
+  this.iniFile.setValue("/ecology/noise_and_vibration", this.dialog.findChild("noise_and_vibration").text);
+  this.iniFile.setValue("/ecology/cultural_heritage_protection", this.dialog.findChild("cultural_heritage_protection").text);
+  this.iniFile.setValue("/ecology/destruction_wildlife", this.dialog.findChild("destruction_wildlife").text);
+  this.iniFile.setValue("/ecology/original_natural", this.dialog.findChild("original_natural").text);
+  this.iniFile.setValue("/ecology/traffic_network", this.dialog.findChild("traffic_network").text);
+  this.iniFile.setValue("/ecology/fields_woods", this.dialog.findChild("fields_woods").text);
+  this.iniFile.setValue("/ecology/air_pollution", this.dialog.findChild("air_pollution").text);
+  this.iniFile.setValue("/ecology/house_demolition", this.dialog.findChild("house_demolition_2").text);
 
   // destr(this.iniFile);
   EAction.handleUserMessage("Save File");
 };
 
 
-SetArguments.prototype.resetClicked = function(){
+SetArguments.prototype.resetClicked = function () {
   var iniConf = [];
   iniConf = this.readNormalIniFile();
   this.setNormalBox(iniConf);
 };
 
-SetArguments.prototype.readNormalIniFile = function(){
-    var ret = [];
-	  
-    //#region 优化模型参数设置
-    ret["batch_sizes"] = this.iniFile.value("/parameter/batch_sizes").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["learning_rate0"] = this.iniFile.value("/parameter/learning_rate0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["learning_rate1"] = this.iniFile.value("/parameter/learning_rate1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["iteration_times"] = this.iniFile.value("/parameter/iteration_times").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["discount_factor"] = this.iniFile.value("/parameter/discount_factor").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["d_k"] = this.iniFile.value("/parameter/d_k").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["forward_step"] = this.iniFile.value("/parameter/forward_step").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["range_p"] = this.iniFile.value("/parameter/range_p").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["range_g"] = this.iniFile.value("/parameter/range_g").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["range_k"] = this.iniFile.value("/parameter/range_k").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["d_line"] = this.iniFile.value("/parameter/d_line").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["range_c"] = this.iniFile.value("/parameter/range_c").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["range_v"] = this.iniFile.value("/parameter/range_v").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["range_e"] = this.iniFile.value("/parameter/range_e").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    //#endregion
-
-    //#region 铁路单位造价设置
-    ret["beam0"] = this.iniFile.value("/cost/beam0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["beam1"] = this.iniFile.value("/cost/beam1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["bridge_pier"] = this.iniFile.value("/cost/bridge_pier").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["tunnel0"] = this.iniFile.value("/cost/tunnel0").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["tunnel1"] = this.iniFile.value("/cost/tunnel1").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["tunnel2"] = this.iniFile.value("/cost/tunnel2").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["tunnel_entrance"] = this.iniFile.value("/cost/tunnel_entrance").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["railway_tracks"] = this.iniFile.value("/cost/railway_tracks").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["road_right_fee"] = this.iniFile.value("/cost/road_right_fee").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["filling_cost"] = this.iniFile.value("/cost/filling_cost").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["excavation_cost"] = this.iniFile.value("/cost/excavation_cost").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["arable_land_occupation"] = this.iniFile.value("/cost/arable_land_occupation").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["house_demolition"] = this.iniFile.value("/cost/house_demolition").replace(/(\s*)+/g,"").replace(/#(\S*)/,"");
-    ret["replace_railway_by_bridge"] = this.iniFile.value("/cost/replace_railway_by_bridge").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    //#endregion
-    EAction.handleUserMessage("read ini speed");
-    ret["design_speed"] = this.iniFile.value("/standard/design_speed").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["minimum_curve_radius"] = this.iniFile.value("/standard/minimum_curve_radius").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["minimum_circular_length"] = this.iniFile.value("/standard/minimum_circular_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["minimal_longitudinal_length"] = this.iniFile.value("/standard/minimal_longitudinal_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["maximum_gradient"] = this.iniFile.value("/standard/maximum_gradient").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["maximum_slope_difference"] = this.iniFile.value("/standard/maximum_slope_difference").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["maximum_bridge_height"] = this.iniFile.value("/standard/maximum_bridge_height").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["maximum_tunnel_length"] = this.iniFile.value("/standard/maximum_tunnel_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["filling_height_lbb"] = this.iniFile.value("/standard/filling_height_lbb").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["digging_deep_ltb"] = this.iniFile.value("/standard/digging_deep_ltb").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["minimum_transition_curve_length"] = this.iniFile.value("/standard/minimum_transition_curve_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["minimum_clip_line_length"] = this.iniFile.value("/standard/minimum_clip_line_length").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["minimum_radius_of_convex_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_convex_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["minimum_radius_of_concave_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_concave_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["minimum_length_of_vertical_curve"] = this.iniFile.value("/standard/minimum_length_of_vertical_curve").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-   
-    ret["water_pollution"] = this.iniFile.value("/ecology/water_pollution").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["noise_and_vibration"] = this.iniFile.value("/ecology/noise_and_vibration").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["cultural_heritage_protection"] = this.iniFile.value("/ecology/cultural_heritage_protection").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["destruction_wildlife"] = this.iniFile.value("/ecology/destruction_wildlife").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["original_natural"] = this.iniFile.value("/ecology/original_natural").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["traffic_network"] = this.iniFile.value("/ecology/traffic_network").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["fields_woods"] = this.iniFile.value("/ecology/fields_woods").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["air_pollution"] = this.iniFile.value("/ecology/air_pollution").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-    ret["house_demolition_2"] = this.iniFile.value("/ecology/house_demolition").replace(/(\s*)+/g,"").replace(/#(\S*)/,""); 
-   
-    EAction.handleUserMessage("read ini finish");
-    return ret;	
+SetArguments.prototype.readNormalIniFile = function () {
+  var ret = [];
+
+  //#region 优化模型参数设置
+  ret["batch_sizes"] = this.iniFile.value("/parameter/batch_sizes").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["learning_rate0"] = this.iniFile.value("/parameter/learning_rate0").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["learning_rate1"] = this.iniFile.value("/parameter/learning_rate1").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["iteration_times"] = this.iniFile.value("/parameter/iteration_times").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["discount_factor"] = this.iniFile.value("/parameter/discount_factor").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["d_k"] = this.iniFile.value("/parameter/d_k").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["forward_step"] = this.iniFile.value("/parameter/forward_step").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["range_p"] = this.iniFile.value("/parameter/range_p").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["range_g"] = this.iniFile.value("/parameter/range_g").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["range_k"] = this.iniFile.value("/parameter/range_k").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["d_line"] = this.iniFile.value("/parameter/d_line").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["range_c"] = this.iniFile.value("/parameter/range_c").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["range_v"] = this.iniFile.value("/parameter/range_v").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["range_e"] = this.iniFile.value("/parameter/range_e").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  //#endregion
+
+  //#region 铁路单位造价设置
+  ret["beam0"] = this.iniFile.value("/cost/beam0").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["beam1"] = this.iniFile.value("/cost/beam1").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["bridge_pier"] = this.iniFile.value("/cost/bridge_pier").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["tunnel0"] = this.iniFile.value("/cost/tunnel0").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["tunnel1"] = this.iniFile.value("/cost/tunnel1").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["tunnel2"] = this.iniFile.value("/cost/tunnel2").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["tunnel_entrance"] = this.iniFile.value("/cost/tunnel_entrance").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["railway_tracks"] = this.iniFile.value("/cost/railway_tracks").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["road_right_fee"] = this.iniFile.value("/cost/road_right_fee").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["filling_cost"] = this.iniFile.value("/cost/filling_cost").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["excavation_cost"] = this.iniFile.value("/cost/excavation_cost").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["arable_land_occupation"] = this.iniFile.value("/cost/arable_land_occupation").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["house_demolition"] = this.iniFile.value("/cost/house_demolition").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["replace_railway_by_bridge"] = this.iniFile.value("/cost/replace_railway_by_bridge").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  //#endregion
+  EAction.handleUserMessage("read ini speed");
+  ret["design_speed"] = this.iniFile.value("/standard/design_speed").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["minimum_curve_radius"] = this.iniFile.value("/standard/minimum_curve_radius").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["minimum_circular_length"] = this.iniFile.value("/standard/minimum_circular_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["minimal_longitudinal_length"] = this.iniFile.value("/standard/minimal_longitudinal_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["maximum_gradient"] = this.iniFile.value("/standard/maximum_gradient").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["maximum_slope_difference"] = this.iniFile.value("/standard/maximum_slope_difference").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["maximum_bridge_height"] = this.iniFile.value("/standard/maximum_bridge_height").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["maximum_tunnel_length"] = this.iniFile.value("/standard/maximum_tunnel_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["filling_height_lbb"] = this.iniFile.value("/standard/filling_height_lbb").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["digging_deep_ltb"] = this.iniFile.value("/standard/digging_deep_ltb").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["minimum_transition_curve_length"] = this.iniFile.value("/standard/minimum_transition_curve_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["minimum_clip_line_length"] = this.iniFile.value("/standard/minimum_clip_line_length").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["minimum_radius_of_convex_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_convex_vertical_curve").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["minimum_radius_of_concave_vertical_curve"] = this.iniFile.value("/standard/minimum_radius_of_concave_vertical_curve").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["minimum_length_of_vertical_curve"] = this.iniFile.value("/standard/minimum_length_of_vertical_curve").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+
+  ret["water_pollution"] = this.iniFile.value("/ecology/water_pollution").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["noise_and_vibration"] = this.iniFile.value("/ecology/noise_and_vibration").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["cultural_heritage_protection"] = this.iniFile.value("/ecology/cultural_heritage_protection").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["destruction_wildlife"] = this.iniFile.value("/ecology/destruction_wildlife").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["original_natural"] = this.iniFile.value("/ecology/original_natural").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["traffic_network"] = this.iniFile.value("/ecology/traffic_network").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["fields_woods"] = this.iniFile.value("/ecology/fields_woods").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["air_pollution"] = this.iniFile.value("/ecology/air_pollution").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+  ret["house_demolition_2"] = this.iniFile.value("/ecology/house_demolition").replace(/(\s*)+/g, "").replace(/#(\S*)/, "");
+
+  EAction.handleUserMessage("read ini finish");
+  return ret;
 };
 
-SetArguments.prototype.setNormalBox = function(iniConf){
+SetArguments.prototype.setNormalBox = function (iniConf) {
   // 优化相关
   var batch_sizes = this.dialog.findChild("batch_sizes");
   var learning_rate0 = this.dialog.findChild("learning_rate0");
@@ -358,10 +359,10 @@ SetArguments.prototype.setNormalBox = function(iniConf){
   var range_k = this.dialog.findChild("range_k");
   var range_c = this.dialog.findChild("range_c");
   var range_v = this.dialog.findChild("range_v");
-  var range_e = this.dialog.findChild("range_e");    
-  var d_k= this.dialog.findChild("d_k");    
-  var d_line= this.dialog.findChild("d_line");
-  var forward_step= this.dialog.findChild("forward_step");
+  var range_e = this.dialog.findChild("range_e");
+  var d_k = this.dialog.findChild("d_k");
+  var d_line = this.dialog.findChild("d_line");
+  var forward_step = this.dialog.findChild("forward_step");
   // slider
   var batchSlider = this.dialog.findChild("batchsizeSlider");
   var stepSlider = this.dialog.findChild("stepSlider");
@@ -371,21 +372,21 @@ SetArguments.prototype.setNormalBox = function(iniConf){
   var rangevSlider = this.dialog.findChild("rangevSlider");
   var rangeeSlider = this.dialog.findChild("rangeeSlider");
 
-  batch_sizes.textChanged.connect( function() {batchSlider.setValue(batch_sizes.text);} );
-  forward_step.textChanged.connect( function() {stepSlider.setValue(forward_step.text);} );
-  iteration_times.textChanged.connect( function() {iterationtimeSlider.setValue(iteration_times.text);} );
-  d_k.textChanged.connect( function() {dkSlider.setValue(d_k.text);} );
-  range_c.textChanged.connect( function() {rangecSlider.setValue(range_c.text);} );
-  range_v.textChanged.connect( function() {rangevSlider.setValue(range_v.text);} );
-  range_e.textChanged.connect( function() {rangeeSlider.setValue(range_e.text);} );
-
-  batchSlider.valueChanged.connect( function() {batch_sizes.setText(batchSlider.value);} );
-  stepSlider.valueChanged.connect( function() {forward_step.setText(stepSlider.value);} );
-  iterationtimeSlider.valueChanged.connect( function() {iteration_times.setText(iterationtimeSlider.value);} );
-  dkSlider.valueChanged.connect( function() {d_k.setText(dkSlider.value);} );
-  rangecSlider.valueChanged.connect( function() {range_c.setText(rangecSlider.value);} );
-  rangevSlider.valueChanged.connect( function() {range_v.setText(rangevSlider.value);} );
-  rangeeSlider.valueChanged.connect( function() {range_e.setText(rangeeSlider.value);} );
+  batch_sizes.textChanged.connect(function () { batchSlider.setValue(batch_sizes.text); });
+  forward_step.textChanged.connect(function () { stepSlider.setValue(forward_step.text); });
+  iteration_times.textChanged.connect(function () { iterationtimeSlider.setValue(iteration_times.text); });
+  d_k.textChanged.connect(function () { dkSlider.setValue(d_k.text); });
+  range_c.textChanged.connect(function () { rangecSlider.setValue(range_c.text); });
+  range_v.textChanged.connect(function () { rangevSlider.setValue(range_v.text); });
+  range_e.textChanged.connect(function () { rangeeSlider.setValue(range_e.text); });
+
+  batchSlider.valueChanged.connect(function () { batch_sizes.setText(batchSlider.value); });
+  stepSlider.valueChanged.connect(function () { forward_step.setText(stepSlider.value); });
+  iterationtimeSlider.valueChanged.connect(function () { iteration_times.setText(iterationtimeSlider.value); });
+  dkSlider.valueChanged.connect(function () { d_k.setText(dkSlider.value); });
+  rangecSlider.valueChanged.connect(function () { range_c.setText(rangecSlider.value); });
+  rangevSlider.valueChanged.connect(function () { range_v.setText(rangevSlider.value); });
+  rangeeSlider.valueChanged.connect(function () { range_e.setText(rangeeSlider.value); });
 
   batch_sizes.setText(iniConf["batch_sizes"]);
   learning_rate0.setText(iniConf["learning_rate0"]);
@@ -403,11 +404,11 @@ SetArguments.prototype.setNormalBox = function(iniConf){
   d_line.setText(iniConf["d_line"]);
   forward_step.setText(iniConf["forward_step"]);
   range_p_x.textChanged.connect(
-    function(){
+    function () {
       range_p_y.setText(range_p_x.text);
     });
   range_p_y.textChanged.connect(
-    function(){
+    function () {
       range_p_x.setText(range_p_y.text);
     });
   // 铁路单位造价相关
@@ -440,12 +441,10 @@ SetArguments.prototype.setNormalBox = function(iniConf){
   arable_land_occupation.setText(iniConf["arable_land_occupation"]);
   house_demolition.setText(iniConf["house_demolition"]);
   EAction.handleUserMessage("start set form");
-  if(0 == iniConf["replace_railway_by_bridge"].toInt())
-  {
-    not_replace_radio.setChecked(1);      
+  if (0 == iniConf["replace_railway_by_bridge"].toInt()) {
+    not_replace_radio.setChecked(1);
   }
-  else
-  {
+  else {
     replace_radio.setChecked(1);
   }
   // 铁路设计标准相关
@@ -472,31 +471,31 @@ SetArguments.prototype.setNormalBox = function(iniConf){
   var concave_vertical_curve_slider = this.dialog.findChild("concave_vertical_curve_slider");
   var minimum_transition_curve_length_slider = this.dialog.findChild("minimum_transition_curve_length_slider");
   var minimum_clip_line_length_slider = this.dialog.findChild("minimum_clip_line_length_slider");
-  var minimum_length_of_vertical_curve_slider = this.dialog.findChild("minimum_length_of_vertical_curve_slider");  
-
-  design_speed.textChanged.connect( function() {speedSlider.setValue(design_speed.text);} );
-  minimum_curve_radius.textChanged.connect( function() {minimum_curve_radius_slider.setValue(minimum_curve_radius.text);} );
-  minimum_circular_length.textChanged.connect( function() {minimum_circular_length_slider.setValue(minimum_circular_length.text);} );
-  minimal_longitudinal_length.textChanged.connect( function() {minimal_longitudinal_length_slider.setValue(minimal_longitudinal_length.text);} );
-  maximum_gradient.textChanged.connect( function() {maximum_gradient_slider.setValue(maximum_gradient.text);} );
-  maximum_slope_difference.textChanged.connect( function() {maximum_slope_difference_slider.setValue(maximum_slope_difference.text);} );
-  minimum_transition_curve_length.textChanged.connect( function() {minimum_transition_curve_length_slider.setValue(minimum_transition_curve_length.text);} );
-  minimum_clip_line_length.textChanged.connect( function() {minimum_clip_line_length_slider.setValue(minimum_clip_line_length.text);} );
-  minimum_radius_of_convex_vertical_curve.textChanged.connect( function() {minimum_radius_of_convex_vertical_curve_slider.setValue(minimum_radius_of_convex_vertical_curve.text);} );
-  minimum_radius_of_concave_vertical_curve.textChanged.connect( function() {concave_vertical_curve_slider.setValue(minimum_radius_of_concave_vertical_curve.text);} );
-  minimum_length_of_vertical_curve.textChanged.connect( function() {minimum_length_of_vertical_curve_slider.setValue(minimum_length_of_vertical_curve.text);} );
-
-  speedSlider.valueChanged.connect( function() {design_speed.setText(speedSlider.value);} );
-  minimum_curve_radius_slider.valueChanged.connect( function() {minimum_curve_radius.setText(minimum_curve_radius_slider.value);} );
-  minimum_circular_length_slider.valueChanged.connect( function() {minimum_circular_length.setText(minimum_circular_length_slider.value);} );
-  minimal_longitudinal_length_slider.valueChanged.connect( function() {minimal_longitudinal_length.setText(minimal_longitudinal_length_slider.value);} );
-  maximum_gradient_slider.valueChanged.connect( function() {maximum_gradient.setText(maximum_gradient_slider.value);} );
-  maximum_slope_difference_slider.valueChanged.connect( function() {maximum_slope_difference.setText(maximum_slope_difference_slider.value);} );
-  minimum_transition_curve_length_slider.valueChanged.connect( function() {minimum_transition_curve_length.setText(minimum_transition_curve_length_slider.value);} );
-  minimum_clip_line_length_slider.valueChanged.connect( function() {minimum_clip_line_length.setText(minimum_clip_line_length_slider.value);} );
-  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);} );
-  concave_vertical_curve_slider.valueChanged.connect( function() {minimum_radius_of_concave_vertical_curve.setText(concave_vertical_curve_slider.value);} );
-  minimum_length_of_vertical_curve_slider.valueChanged.connect( function() {minimum_length_of_vertical_curve.setText(minimum_length_of_vertical_curve_slider.value);} );
+  var minimum_length_of_vertical_curve_slider = this.dialog.findChild("minimum_length_of_vertical_curve_slider");
+
+  design_speed.textChanged.connect(function () { speedSlider.setValue(design_speed.text); });
+  minimum_curve_radius.textChanged.connect(function () { minimum_curve_radius_slider.setValue(minimum_curve_radius.text); });
+  minimum_circular_length.textChanged.connect(function () { minimum_circular_length_slider.setValue(minimum_circular_length.text); });
+  minimal_longitudinal_length.textChanged.connect(function () { minimal_longitudinal_length_slider.setValue(minimal_longitudinal_length.text); });
+  maximum_gradient.textChanged.connect(function () { maximum_gradient_slider.setValue(maximum_gradient.text); });
+  maximum_slope_difference.textChanged.connect(function () { maximum_slope_difference_slider.setValue(maximum_slope_difference.text); });
+  minimum_transition_curve_length.textChanged.connect(function () { minimum_transition_curve_length_slider.setValue(minimum_transition_curve_length.text); });
+  minimum_clip_line_length.textChanged.connect(function () { minimum_clip_line_length_slider.setValue(minimum_clip_line_length.text); });
+  minimum_radius_of_convex_vertical_curve.textChanged.connect(function () { minimum_radius_of_convex_vertical_curve_slider.setValue(minimum_radius_of_convex_vertical_curve.text); });
+  minimum_radius_of_concave_vertical_curve.textChanged.connect(function () { concave_vertical_curve_slider.setValue(minimum_radius_of_concave_vertical_curve.text); });
+  minimum_length_of_vertical_curve.textChanged.connect(function () { minimum_length_of_vertical_curve_slider.setValue(minimum_length_of_vertical_curve.text); });
+
+  speedSlider.valueChanged.connect(function () { design_speed.setText(speedSlider.value); });
+  minimum_curve_radius_slider.valueChanged.connect(function () { minimum_curve_radius.setText(minimum_curve_radius_slider.value); });
+  minimum_circular_length_slider.valueChanged.connect(function () { minimum_circular_length.setText(minimum_circular_length_slider.value); });
+  minimal_longitudinal_length_slider.valueChanged.connect(function () { minimal_longitudinal_length.setText(minimal_longitudinal_length_slider.value); });
+  maximum_gradient_slider.valueChanged.connect(function () { maximum_gradient.setText(maximum_gradient_slider.value); });
+  maximum_slope_difference_slider.valueChanged.connect(function () { maximum_slope_difference.setText(maximum_slope_difference_slider.value); });
+  minimum_transition_curve_length_slider.valueChanged.connect(function () { minimum_transition_curve_length.setText(minimum_transition_curve_length_slider.value); });
+  minimum_clip_line_length_slider.valueChanged.connect(function () { minimum_clip_line_length.setText(minimum_clip_line_length_slider.value); });
+  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); });
+  concave_vertical_curve_slider.valueChanged.connect(function () { minimum_radius_of_concave_vertical_curve.setText(concave_vertical_curve_slider.value); });
+  minimum_length_of_vertical_curve_slider.valueChanged.connect(function () { minimum_length_of_vertical_curve.setText(minimum_length_of_vertical_curve_slider.value); });
 
   design_speed.setText(iniConf["design_speed"]);
   minimum_curve_radius.setText(iniConf["minimum_curve_radius"]);
@@ -510,16 +509,16 @@ SetArguments.prototype.setNormalBox = function(iniConf){
   minimum_radius_of_concave_vertical_curve.setText(iniConf["minimum_radius_of_concave_vertical_curve"]);
   minimum_length_of_vertical_curve.setText(iniConf["minimum_length_of_vertical_curve"]);
 
- // 生态相关
- var water_pollution = this.dialog.findChild("water_pollution");
- var noise_and_vibration = this.dialog.findChild("noise_and_vibration");
- var cultural_heritage_protection = this.dialog.findChild("cultural_heritage_protection");
- var destruction_wildlife = this.dialog.findChild("destruction_wildlife");
- var original_natural = this.dialog.findChild("original_natural");
- var traffic_network = this.dialog.findChild("traffic_network");
- var fields_woods = this.dialog.findChild("fields_woods");
- var air_pollution = this.dialog.findChild("air_pollution");
- var house_demolition_2 = this.dialog.findChild("house_demolition_2");
+  // 生态相关
+  var water_pollution = this.dialog.findChild("water_pollution");
+  var noise_and_vibration = this.dialog.findChild("noise_and_vibration");
+  var cultural_heritage_protection = this.dialog.findChild("cultural_heritage_protection");
+  var destruction_wildlife = this.dialog.findChild("destruction_wildlife");
+  var original_natural = this.dialog.findChild("original_natural");
+  var traffic_network = this.dialog.findChild("traffic_network");
+  var fields_woods = this.dialog.findChild("fields_woods");
+  var air_pollution = this.dialog.findChild("air_pollution");
+  var house_demolition_2 = this.dialog.findChild("house_demolition_2");
 
   // slider
   var water_pollution_slider = this.dialog.findChild("water_pollution_slider");
@@ -532,25 +531,25 @@ SetArguments.prototype.setNormalBox = function(iniConf){
   var air_pollution_slider = this.dialog.findChild("air_pollution_slider");
   var house_demolition_2_slider = this.dialog.findChild("house_demolition_2_slider");
 
-  water_pollution.textChanged.connect( function() {water_pollution_slider.setValue(water_pollution.text);} );
-  noise_and_vibration.textChanged.connect( function() {noise_and_vibration_slider.setValue(noise_and_vibration.text);} );
-  cultural_heritage_protection.textChanged.connect( function() {cultural_heritage_protection_slider.setValue(cultural_heritage_protection.text);} );
-  destruction_wildlife.textChanged.connect( function() {destruction_wildlife_slider.setValue(destruction_wildlife.text);} );
-  original_natural.textChanged.connect( function() {original_natural_slider.setValue(original_natural.text);} );
-  traffic_network.textChanged.connect( function() {traffic_network_slider.setValue(traffic_network.text);} );
-  fields_woods.textChanged.connect( function() {fields_woods_slider.setValue(fields_woods.text);} );
-  air_pollution.textChanged.connect( function() {air_pollution_slider.setValue(air_pollution.text);} );
-  house_demolition_2.textChanged.connect( function() {house_demolition_2_slider.setValue(house_demolition_2.text);} );
-
-  water_pollution_slider.valueChanged.connect( function() {water_pollution.setText(water_pollution_slider.value);} );
-  noise_and_vibration_slider.valueChanged.connect( function() {noise_and_vibration.setText(noise_and_vibration_slider.value);} );
-  cultural_heritage_protection_slider.valueChanged.connect( function() {cultural_heritage_protection.setText(cultural_heritage_protection_slider.value);} );
-  destruction_wildlife_slider.valueChanged.connect( function() {destruction_wildlife.setText(destruction_wildlife_slider.value);} );
-  original_natural_slider.valueChanged.connect( function() {original_natural.setText(original_natural_slider.value);} );
-  traffic_network_slider.valueChanged.connect( function() {traffic_network.setText(traffic_network_slider.value);} );
-  fields_woods_slider.valueChanged.connect( function() {fields_woods.setText(fields_woods_slider.value);} );
-  air_pollution_slider.valueChanged.connect( function() {air_pollution.setText(air_pollution_slider.value);} );
-  house_demolition_2_slider.valueChanged.connect( function() {house_demolition_2.setText(house_demolition_2_slider.value);} );
+  water_pollution.textChanged.connect(function () { water_pollution_slider.setValue(water_pollution.text); });
+  noise_and_vibration.textChanged.connect(function () { noise_and_vibration_slider.setValue(noise_and_vibration.text); });
+  cultural_heritage_protection.textChanged.connect(function () { cultural_heritage_protection_slider.setValue(cultural_heritage_protection.text); });
+  destruction_wildlife.textChanged.connect(function () { destruction_wildlife_slider.setValue(destruction_wildlife.text); });
+  original_natural.textChanged.connect(function () { original_natural_slider.setValue(original_natural.text); });
+  traffic_network.textChanged.connect(function () { traffic_network_slider.setValue(traffic_network.text); });
+  fields_woods.textChanged.connect(function () { fields_woods_slider.setValue(fields_woods.text); });
+  air_pollution.textChanged.connect(function () { air_pollution_slider.setValue(air_pollution.text); });
+  house_demolition_2.textChanged.connect(function () { house_demolition_2_slider.setValue(house_demolition_2.text); });
+
+  water_pollution_slider.valueChanged.connect(function () { water_pollution.setText(water_pollution_slider.value); });
+  noise_and_vibration_slider.valueChanged.connect(function () { noise_and_vibration.setText(noise_and_vibration_slider.value); });
+  cultural_heritage_protection_slider.valueChanged.connect(function () { cultural_heritage_protection.setText(cultural_heritage_protection_slider.value); });
+  destruction_wildlife_slider.valueChanged.connect(function () { destruction_wildlife.setText(destruction_wildlife_slider.value); });
+  original_natural_slider.valueChanged.connect(function () { original_natural.setText(original_natural_slider.value); });
+  traffic_network_slider.valueChanged.connect(function () { traffic_network.setText(traffic_network_slider.value); });
+  fields_woods_slider.valueChanged.connect(function () { fields_woods.setText(fields_woods_slider.value); });
+  air_pollution_slider.valueChanged.connect(function () { air_pollution.setText(air_pollution_slider.value); });
+  house_demolition_2_slider.valueChanged.connect(function () { house_demolition_2.setText(house_demolition_2_slider.value); });
 
   water_pollution.setText(iniConf["water_pollution"]);
   noise_and_vibration.setText(iniConf["noise_and_vibration"]);

+ 5 - 0
scripts/Optimize/ZDMOptimize/ZDMOptimize.js

@@ -64,6 +64,11 @@ ZDMOptimize.prototype.zdmClicked = function () {
 };
 ZDMOptimize.prototype.opBtnClicked = function () {
   try {
+    if (!this.zdmsel) {
+      var appWin = EAction.getMainWindow();
+      QMessageBox.information(appWin, qsTr("提示"), qsTr("请选择优化的的文件"));
+      return;
+    }
     // 图层
     var layername = "ZDM-OPTIMIZE" + Math.floor(Math.random() * 100); // getLayername("ZDM-OPTIMIZE", "");
     //