Gis-Y před 7 měsíci
rodič
revize
8b0dd392a3
100 změnil soubory, kde provedl 72469 přidání a 0 odebrání
  1. 276 0
      42409006-杨永泉/AF/_entry.js
  2. 300 0
      42409006-杨永泉/AF/_entry_preview.js
  3. 426 0
      42409006-杨永泉/AF/js/Material_Editor_View_pane.js
  4. 119 0
      42409006-杨永泉/AF/js/_model.js
  5. 217 0
      42409006-杨永泉/AF/js/blank_Outline_Copyform_pane.js
  6. 181 0
      42409006-杨永泉/AF/js/blank_Outline_pane.js
  7. 88 0
      42409006-杨永泉/AF/js/blank_create_pane.js
  8. 105 0
      42409006-杨永泉/AF/js/blank_topmenu_pane.js
  9. 2027 0
      42409006-杨永泉/AF/js/cw_topmenu_pane.js
  10. 94 0
      42409006-杨永泉/AF/js/dieface_modify_pane.js
  11. 141 0
      42409006-杨永泉/AF/js/dieface_topmenu_pane.js
  12. 194 0
      42409006-杨永泉/AF/js/evaluation_splits_pane.js
  13. 186 0
      42409006-杨永泉/AF/js/evaluation_topmenu_pane.js
  14. 80 0
      42409006-杨永泉/AF/js/mainfrm_pane.js
  15. 180 0
      42409006-杨永泉/AF/js/part_import_pane.js
  16. 114 0
      42409006-杨永泉/AF/js/part_material_pane.js
  17. 160 0
      42409006-杨永泉/AF/js/part_pane.js
  18. 194 0
      42409006-杨永泉/AF/js/part_tip_pane.js
  19. 85 0
      42409006-杨永泉/AF/js/plan_create_pane.js
  20. 95 0
      42409006-杨永泉/AF/js/plan_plan_pane.js
  21. 159 0
      42409006-杨永泉/AF/js/plan_production_pane.js
  22. 127 0
      42409006-杨永泉/AF/js/plan_topmenu_pane.js
  23. 155 0
      42409006-杨永泉/AF/js/process_D_20_ToolsBinder_pane.js
  24. 154 0
      42409006-杨永泉/AF/js/process_D_20_ToolsDefine_pane.js
  25. 310 0
      42409006-杨永泉/AF/js/process_D_20_beads_copyform_pane.js
  26. 94 0
      42409006-杨永泉/AF/js/process_D_20_beads_pane.js
  27. 245 0
      42409006-杨永泉/AF/js/process_D_20_pane.js
  28. 157 0
      42409006-杨永泉/AF/js/process_D_20_topmenu_pane.js
  29. 120 0
      42409006-杨永泉/AF/js/process_pl_pane.js
  30. 97 0
      42409006-杨永泉/AF/js/process_topmenu_pane.js
  31. 327 0
      42409006-杨永泉/AF/js/side_pane_pane.js
  32. 147 0
      42409006-杨永泉/AF/js/simulation_control_pane.js
  33. 114 0
      42409006-杨永泉/AF/js/simulation_control_topmune_pane.js
  34. 136 0
      42409006-杨永泉/AF/js/simulation_log_pane.js
  35. 94 0
      42409006-杨永泉/AF/js/simulation_output_pane.js
  36. 94 0
      42409006-杨永泉/AF/js/simulation_results_pane.js
  37. 109 0
      42409006-杨永泉/AF/js/simulation_start_pane.js
  38. 113 0
      42409006-杨永泉/AF/js/simulation_topmenu_pane.js
  39. 10160 0
      42409006-杨永泉/AF/kul/Material_Editor_View.kul
  40. 1216 0
      42409006-杨永泉/AF/kul/blank_Outline.kul
  41. 1646 0
      42409006-杨永泉/AF/kul/blank_Outline_Copyform.kul
  42. 203 0
      42409006-杨永泉/AF/kul/blank_create.kul
  43. 173 0
      42409006-杨永泉/AF/kul/blank_topmenu.kul
  44. 7904 0
      42409006-杨永泉/AF/kul/cw_topmenu.kul
  45. 922 0
      42409006-杨永泉/AF/kul/dieface_modify.kul
  46. 242 0
      42409006-杨永泉/AF/kul/dieface_topmenu.kul
  47. 1097 0
      42409006-杨永泉/AF/kul/evaluation_splits.kul
  48. 424 0
      42409006-杨永泉/AF/kul/evaluation_topmenu.kul
  49. 284 0
      42409006-杨永泉/AF/kul/kul.entry.xml
  50. 75 0
      42409006-杨永泉/AF/kul/mainfrm.kul
  51. 291 0
      42409006-杨永泉/AF/kul/part.kul
  52. 3073 0
      42409006-杨永泉/AF/kul/part_import.kul
  53. 2098 0
      42409006-杨永泉/AF/kul/part_material.kul
  54. 3590 0
      42409006-杨永泉/AF/kul/part_tip.kul
  55. 483 0
      42409006-杨永泉/AF/kul/plan_create.kul
  56. 1474 0
      42409006-杨永泉/AF/kul/plan_plan.kul
  57. 1609 0
      42409006-杨永泉/AF/kul/plan_production.kul
  58. 239 0
      42409006-杨永泉/AF/kul/plan_topmenu.kul
  59. 5435 0
      42409006-杨永泉/AF/kul/process_D_20.kul
  60. 1193 0
      42409006-杨永泉/AF/kul/process_D_20_ToolsBinder.kul
  61. 972 0
      42409006-杨永泉/AF/kul/process_D_20_ToolsDefine.kul
  62. 2429 0
      42409006-杨永泉/AF/kul/process_D_20_beads.kul
  63. 2328 0
      42409006-杨永泉/AF/kul/process_D_20_beads_copyform.kul
  64. 275 0
      42409006-杨永泉/AF/kul/process_D_20_topmenu.kul
  65. 2662 0
      42409006-杨永泉/AF/kul/process_pl.kul
  66. 110 0
      42409006-杨永泉/AF/kul/process_topmenu.kul
  67. 1217 0
      42409006-杨永泉/AF/kul/side_pane.kul
  68. 3549 0
      42409006-杨永泉/AF/kul/simulation_control.kul
  69. 179 0
      42409006-杨永泉/AF/kul/simulation_control_topmune.kul
  70. 508 0
      42409006-杨永泉/AF/kul/simulation_log.kul
  71. 901 0
      42409006-杨永泉/AF/kul/simulation_output.kul
  72. 2030 0
      42409006-杨永泉/AF/kul/simulation_results.kul
  73. 988 0
      42409006-杨永泉/AF/kul/simulation_start.kul
  74. 176 0
      42409006-杨永泉/AF/kul/simulation_topmenu.kul
  75. 41 0
      42409006-杨永泉/AF/localhost/app.js
  76. 103 0
      42409006-杨永泉/AF/localhost/bin/www
  77. 96 0
      42409006-杨永泉/AF/localhost/bin/www~
  78. 12 0
      42409006-杨永泉/AF/localhost/node_modules/.bin/mime
  79. 17 0
      42409006-杨永泉/AF/localhost/node_modules/.bin/mime.cmd
  80. 28 0
      42409006-杨永泉/AF/localhost/node_modules/.bin/mime.ps1
  81. 754 0
      42409006-杨永泉/AF/localhost/node_modules/.package-lock.json
  82. 24 0
      42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/LICENSE
  83. 79 0
      42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/Readme.md
  84. 179 0
      42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/cjs/index.d.ts
  85. 176 0
      42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/cjs/index.js
  86. 4 0
      42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/cjs/package.json
  87. 179 0
      42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/esm/index.d.ts
  88. 169 0
      42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/esm/index.js
  89. 4 0
      42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/esm/package.json
  90. 28 0
      42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/package.json
  91. 21 0
      42409006-杨永泉/AF/localhost/node_modules/@types/cookie/LICENSE
  92. 16 0
      42409006-杨永泉/AF/localhost/node_modules/@types/cookie/README.md
  93. 135 0
      42409006-杨永泉/AF/localhost/node_modules/@types/cookie/index.d.ts
  94. 30 0
      42409006-杨永泉/AF/localhost/node_modules/@types/cookie/package.json
  95. 21 0
      42409006-杨永泉/AF/localhost/node_modules/@types/cors/LICENSE
  96. 75 0
      42409006-杨永泉/AF/localhost/node_modules/@types/cors/README.md
  97. 56 0
      42409006-杨永泉/AF/localhost/node_modules/@types/cors/index.d.ts
  98. 32 0
      42409006-杨永泉/AF/localhost/node_modules/@types/cors/package.json
  99. 21 0
      42409006-杨永泉/AF/localhost/node_modules/@types/node/LICENSE
  100. 0 0
      42409006-杨永泉/AF/localhost/node_modules/@types/node/README.md

+ 276 - 0
42409006-杨永泉/AF/_entry.js

@@ -0,0 +1,276 @@
+global.__comx_global_exception_function = function(e, promise){
+    if(promise) {
+        console.log('unhandledRejection:', e, promise);
+    }
+    else {
+//        if(e && e.message) {
+//            console.log('uncaughtException:', e.message);
+//        }
+//        else {
+            console.log('uncaughtException:', e);
+//        }
+    }
+};
+
+process.on('uncaughtException', (e)=>{
+    __comx_global_exception_function(e);
+});
+
+process.on('unhandledRejection',function(err,promise){
+    __comx_global_exception_function(err, promise);
+});
+
+var is_embedded = false;
+if(process.argv.length == 3 && process.argv[2] == 'embedded')
+{
+    is_embedded = true;
+}
+
+var fs = require('fs');
+var vm = require('vm');
+const { execSync } = require('child_process');
+
+initRuntimeEnv();
+
+var dirHome = process.env['COMX_SDK'];
+var dirUnit = __dirname + '/';
+
+if(process.platform == 'win32')
+{
+    require('bindings')('js_ext_comx_qtshell-native-win.node');
+    require('bindings')('js_ext_comx_resource-native-win.node');
+    require('bindings')('js_ext_comx_mutex-native-win.node');
+}
+
+if(process.platform == 'linux')
+{
+    require('bindings')('js_ext_comx_qt-native-linux.node');
+    require('bindings')('js_ext_comx_resource-native-linux.node');
+    require('bindings')('js_ext_comx_mutex-native-linux.node');
+}
+
+if(process.platform == 'darwin')
+{
+    require('bindings')('js_ext_comx_qt-native-darwin.node');
+    require('bindings')('js_ext_comx_resource-native-darwin.node');
+    require('bindings')('js_ext_comx_mutex-native-darwin.node');
+}
+
+var require_ = require('require-from-string');
+var __ = (_)=>{
+    (new vm.Script(_, {filename : 'remote'})).runInNewContext({
+	'require' : require,
+	'process' : process,
+	'comx' : comx,
+	'exports' :exports,
+	'comx_startup' : ()=>{
+	    comx.resource.qt.loadUnit(dirUnit, exports, function(){
+                if(is_embedded)
+                    unit.form._entry.ShowEmbedded();
+		else if(process.argv.length >= 3)
+		    unit.form[process.argv[2]].Show();
+		else
+		    unit.form._entry.Show();
+	    }, (form)=>{
+		//readyForm
+	    });
+	}
+    });
+};
+
+var tmpl = fs.readFileSync(dirHome+'template/4e7b90182d3b4e11a7ca74d8fc8c545f');
+comx.resource.Initialize(require_, __, tmpl);
+
+if(!comx.resource.hasResource)
+{
+    if(process.argv.length == 4)
+    {
+	var tmpl = fs.readFileSync(dirHome+'template/008f111453704f82b9616e9bf92655f0');
+	comx.resource.LoadKernelRemote(parseInt(process.argv[3]), false, tmpl);
+    }
+    else
+    {
+	var tmpl = fs.readFileSync(dirHome+'template/ad72fee60eea4a89844aa934b9bc099b');
+	comx.resource.LoadKernelRemote(getWSAddress(), false, tmpl);
+    }
+}
+else
+{
+    comx.resource.qt.loadUnit(dirUnit, exports, function(){
+        if(is_embedded)
+            unit.form._entry.ShowEmbedded();
+	else if(process.argv.length >= 3)
+	    unit.form[process.argv[2]].Show();
+	else
+	    unit.form._entry.Show();
+    }, (form)=>{
+	//readyForm
+    });
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Init Runtime Env
+
+function initRuntimeEnv()
+{
+    process.env.COMX_SDK = getHomeDir().replace(/\\/g, '/');
+
+    if(process.platform == 'win32')
+    {
+	addPathToEnv(getHomeDir() + 'dependences\\windows\\occt\\7.5\\win64\\vc14\\bin');
+	addPathToEnv(getHomeDir() + 'dependences\\windows\\vtk\\8.1\\bin');
+	addPathToEnv(getHomeDir() + 'dependences\\windows\\vtk\\9.3\\bin');
+    }
+    
+    var depsDir = getDepsDir();
+
+    if(depsDir)
+    {
+	process.chdir(depsDir);
+    }
+
+    if(process.platform == 'linux')
+    {
+	const packages = ['occt-7.5.0', 'vtk-8.1', 'vtk-9.3'];
+	const hardcodedPaths = ['/usr/lib/x86_64-linux-gnu/'];
+	
+	configureLdLibraryPath(packages, hardcodedPaths);
+    }
+}
+
+function getParentDir(dirName)
+{
+    var idx = dirName.lastIndexOf('/');
+    if(idx == -1)
+    {
+	idx = dirName.lastIndexOf('\\');
+    }
+
+    return dirName.substr(0, idx);
+}
+
+function getHomeDir()
+{
+    if(fs.existsSync(__dirname + '/07D976FB68304742A31191AA0503DE79'))
+    {
+	return __dirname + '/';
+    }
+    else
+    {
+    return getParentDir(getParentDir(__dirname)) + '/';
+    }
+}
+
+function getDepsDir()
+{
+    if(process.platform == 'win32')
+    {
+        return getHomeDir() + 'dependences\\windows\\qt\\5.15.2\\msvc2019_64\\bin\\';
+    }
+
+    if(process.platform == 'linux' || process.platform == 'darwin')
+    {
+	return getHomeDir() + 'addon';
+    }
+    
+    return false;
+}
+
+function getWSAddress()
+{
+    var fpath = getHomeDir() + '/cache/ws.cache';
+
+    if(!fs.existsSync(fpath))
+    {
+	return "ws://localhost:3000";
+    }
+    else
+    {
+	return '' + fs.readFileSync(fpath);
+    }
+}
+
+
+/**
+ * papend some env variables to PATH
+ * @param {string} newPath - new path that will be appended
+ * @param {boolean} [prepend=true] - append to the begin of PATH£¨default value is true£©
+ * @returns {void}
+ */
+function addPathToEnv(newPath, prepend = true) {
+    if (!newPath || typeof newPath !== 'string') {
+        throw new Error('Invalid path: Path must be a non-empty string.');
+    }
+
+    // get current PATH
+    const currentPath = process.env.PATH || '';
+
+    // check path exists or not
+    if (currentPath.includes(newPath)) {
+        console.warn(`Path "${newPath}" is already in PATH.`);
+        return;
+    }
+
+    // get separator char by os type
+    const separator = process.platform === 'win32' ? ';' : ':';
+
+    // append to PATH
+    process.env.PATH = prepend
+        ? `${newPath}${separator}${currentPath}` // append to begin
+        : `${currentPath}${separator}${newPath}`; // append to end
+
+    //console.log(`Updated PATH: ${process.env.PATH}`);
+}
+
+
+/**
+ * get pkg-config PATH
+ * @param {string} pkgName - pkg-config's package name£¨such as "occt-7.5.0"£©
+ * @returns {string} - PATH 
+ */
+function extractLibraryPath(pkgName) {
+    try {
+        const command = `pkg-config --libs-only-L ${pkgName} | sed -n 's/^-L//p'`;
+        const path = execSync(command, { encoding: 'utf-8' }).trim();
+        return path;
+    } catch (error) {
+        console.error(`Error extracting path for ${pkgName}:`, error.message);
+        return null;
+    }
+}
+
+/**
+ * append to LD_LIBRARY_PATH
+ * @param {string} path - target path
+ */
+function addPathToLdLibraryPath(path) {
+    if (path && !process.env.LD_LIBRARY_PATH?.includes(path)) {
+        process.env.LD_LIBRARY_PATH = `${path}:${process.env.LD_LIBRARY_PATH || ''}`;
+        //console.log(`Added to LD_LIBRARY_PATH: ${path}`);
+    } else {
+        //console.log(`Path already in LD_LIBRARY_PATH or invalid: ${path}`);
+    }
+}
+
+/**
+ * config LD_LIBRARY_PATH
+ * @param {string[]} packages - An array of package names that need to extract paths.
+ * @param {string[]} hardcodedPaths - Hard-coded path array
+ */
+function configureLdLibraryPath(packages, hardcodedPaths) {
+    // Add a hard-coded path
+    hardcodedPaths.forEach(path => {
+        addPathToLdLibraryPath(path);
+    });
+
+    // Extract and add the package path
+    packages.forEach(pkg => {
+        const path = extractLibraryPath(pkg);
+        if (path) {
+            addPathToLdLibraryPath(path);
+        }
+    });
+
+    //console.log('Updated LD_LIBRARY_PATH:', process.env.LD_LIBRARY_PATH);
+}
+

+ 300 - 0
42409006-杨永泉/AF/_entry_preview.js

@@ -0,0 +1,300 @@
+global.__comx_global_exception_function = function(e, promise){
+    if(promise) {
+        console.log('unhandledRejection:', e, promise);
+    }
+    else {
+//        if(e && e.message) {
+//            console.log('uncaughtException:', e.message);
+//        }
+//        else {
+            console.log('uncaughtException:', e);
+//        }
+    }
+};
+
+process.on('uncaughtException', (e)=>{
+    __comx_global_exception_function(e);
+});
+
+process.on('unhandledRejection',function(err,promise){
+    __comx_global_exception_function(err, promise);
+});
+
+var fs = require('fs');
+var vm = require('vm');
+const { execSync } = require('child_process');
+
+initRuntimeEnv();
+
+var dirHome = process.env['COMX_SDK'];
+var dirUnit = __dirname + '/';
+
+if(process.platform == 'win32')
+{
+    require('bindings')('js_ext_comx_qtshell-native-win.node');
+    require('bindings')('js_ext_comx_resource-native-win.node');
+    require('bindings')('js_ext_comx_mutex-native-win.node');
+}
+
+if(process.platform == 'linux')
+{
+    require('bindings')('js_ext_comx_qt-native-linux.node');
+    require('bindings')('js_ext_comx_resource-native-linux.node');
+    require('bindings')('js_ext_comx_mutex-native-linux.node');
+}
+
+if(process.platform == 'darwin')
+{
+    require('bindings')('js_ext_comx_qt-native-darwin.node');
+    require('bindings')('js_ext_comx_resource-native-darwin.node');
+    require('bindings')('js_ext_comx_mutex-native-darwin.node');
+}
+
+var require_ = require('require-from-string');
+var __ = (_)=>{
+    (new vm.Script(_, {filename : 'remote'})).runInNewContext({
+	'require' : require,
+	'process' : process,
+	'comx' : comx,
+	'exports' :exports,
+	'comx_startup' : ()=>{
+	    comx.resource.qt.loadUnit(dirUnit, exports, function(){
+		if(process.argv.length >= 4)
+                {
+                    var is_hide = !process.argv[3];
+                    if(is_hide)
+                    {
+                        unit.form[process.argv[2]].ShowEmbedded();
+                    }
+                    else
+		        unit.form[process.argv[2]].ShowPreview();
+                }
+		else
+                {
+                    var is_hide = !process.argv[2];
+                    if(is_hide)
+                    {
+                        unit.form._entry.ShowEmbedded();
+                    }
+                    else
+		        unit.form._entry.ShowPreview();
+                }
+	    }, (form)=>{
+		//readyForm
+	    });
+	}
+    });
+};
+
+var tmpl = fs.readFileSync(dirHome+'template/4e7b90182d3b4e11a7ca74d8fc8c545f');
+comx.resource.Initialize(require_, __, tmpl);
+
+if(!comx.resource.hasResource)
+{
+    if(process.argv.length == 4)
+    {
+	var tmpl = fs.readFileSync(dirHome+'template/008f111453704f82b9616e9bf92655f0');
+	comx.resource.LoadKernelRemote(parseInt(process.argv[3]), false, tmpl);
+    }
+    else
+    {
+	var tmpl = fs.readFileSync(dirHome+'template/ad72fee60eea4a89844aa934b9bc099b');
+	comx.resource.LoadKernelRemote(getWSAddress(), false, tmpl);
+    }
+}
+else
+{
+    comx.resource.qt.loadUnit(dirUnit, exports, function(){
+	if(process.argv.length >= 4)
+        {
+            var is_hide = !process.argv[3];
+            if(is_hide)
+            {
+                unit.form[process.argv[2]].ShowEmbedded();
+            }
+            else
+	        unit.form[process.argv[2]].ShowPreview();
+        }
+	else
+        {
+            var is_hide = !process.argv[2];
+            if(is_hide)
+            {
+                unit.form._entry.ShowEmbedded();
+            }
+            else
+	        unit.form._entry.ShowPreview();
+        }
+    }, (form)=>{
+	//readyForm
+    });
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Init Runtime Env
+
+function initRuntimeEnv()
+{
+    process.env.COMX_SDK = getHomeDir().replace(/\\/g, '/');
+
+    if(process.platform == 'win32')
+    {
+	addPathToEnv(getHomeDir() + 'dependences\\windows\\occt\\7.5\\win64\\vc14\\bin');
+	addPathToEnv(getHomeDir() + 'dependences\\windows\\vtk\\8.1\\bin');
+	addPathToEnv(getHomeDir() + 'dependences\\windows\\vtk\\9.3\\bin');
+    }
+    
+    var depsDir = getDepsDir();
+
+    if(depsDir)
+    {
+	process.chdir(depsDir);
+    }
+
+    if(process.platform == 'linux')
+    {
+	const packages = ['occt-7.5.0', 'vtk-8.1', 'vtk-9.3'];
+	const hardcodedPaths = ['/usr/lib/x86_64-linux-gnu/'];
+	
+	configureLdLibraryPath(packages, hardcodedPaths);
+    }
+}
+
+function getParentDir(dirName)
+{
+    var idx = dirName.lastIndexOf('/');
+    if(idx == -1)
+    {
+	idx = dirName.lastIndexOf('\\');
+    }
+
+    return dirName.substr(0, idx);
+}
+
+function getHomeDir()
+{
+    if(fs.existsSync(__dirname + '/07D976FB68304742A31191AA0503DE79'))
+    {
+	return __dirname + '/';
+    }
+    else
+    {
+    return getParentDir(getParentDir(__dirname)) + '/';
+    }
+}
+
+function getDepsDir()
+{
+    if(process.platform == 'win32')
+    {
+        return getHomeDir() + 'dependences\\windows\\qt\\5.15.2\\msvc2019_64\\bin\\';
+    }
+
+    if(process.platform == 'linux' || process.platform == 'darwin')
+    {
+	return getHomeDir() + 'addon';
+    }
+    
+    return false;
+}
+
+function getWSAddress()
+{
+    var fpath = getHomeDir() + '/cache/ws.cache';
+
+    if(!fs.existsSync(fpath))
+    {
+	return "ws://localhost:3000";
+    }
+    else
+    {
+	return '' + fs.readFileSync(fpath);
+    }
+}
+
+
+
+/**
+ * Adds the specified PATH to the environment variable path.
+ * @param {string} newPath - New path to add
+ * @param {boolean} [prepend=true] - Whether to add the PATH to the beginning of the path (default true)
+ * @returns {void}
+ */
+function addPathToEnv(newPath, prepend = true) {
+    if (!newPath || typeof newPath !== 'string') {
+        throw new Error('Invalid path: Path must be a non-empty string.');
+    }
+
+    // Get the current PATH
+    const currentPath = process.env.PATH || '';
+
+    // Check whether the path already exists.
+    if (currentPath.includes(newPath)) {
+        console.warn(`Path "${newPath}" is already in PATH.`);
+        return;
+    }
+
+    // Determine the path separator according to the operating system
+    const separator = process.platform === 'win32' ? ';' : ':';
+
+    // Add a new path
+    process.env.PATH = prepend
+        ? `${newPath}${separator}${currentPath}` // Add to the beginning
+        : `${currentPath}${separator}${newPath}`; // Add to end
+
+    //console.log(`Updated PATH: ${process.env.PATH}`);
+}
+
+
+/**
+ * Extract the library path of pkg-config.
+ * @param {string} pkgName - Package name of pkg-config (such as "occt-7.5.0")
+ * @returns {string} - The extracted path
+ */
+function extractLibraryPath(pkgName) {
+    try {
+        // Call pkg-config to extract the path.
+        const command = `pkg-config --libs-only-L ${pkgName} | sed -n 's/^-L//p'`;
+        const path = execSync(command, { encoding: 'utf-8' }).trim();
+        return path;
+    } catch (error) {
+        console.error(`Error extracting path for ${pkgName}:`, error.message);
+        return null;
+    }
+}
+
+/**
+ * Add path to LD_LIBRARY_PATH
+ * @param {string} path - Path to add
+ */
+function addPathToLdLibraryPath(path) {
+    if (path && !process.env.LD_LIBRARY_PATH?.includes(path)) {
+        process.env.LD_LIBRARY_PATH = `${path}:${process.env.LD_LIBRARY_PATH || ''}`;
+        //console.log(`Added to LD_LIBRARY_PATH: ${path}`);
+    } else {
+        //console.log(`Path already in LD_LIBRARY_PATH or invalid: ${path}`);
+    }
+}
+
+/**
+ * Configure LD_LIBRARY_PATH
+ * @param {string[]} packages - An array of package names that need to extract paths.
+ * @param {string[]} hardcodedPaths - Hard-coded path array
+ */
+function configureLdLibraryPath(packages, hardcodedPaths) {
+    // Add a hard-coded path
+    hardcodedPaths.forEach(path => {
+        addPathToLdLibraryPath(path);
+    });
+
+    // Extract and add the package path
+    packages.forEach(pkg => {
+        const path = extractLibraryPath(pkg);
+        if (path) {
+            addPathToLdLibraryPath(path);
+        }
+    });
+
+    //console.log('Updated LD_LIBRARY_PATH:', process.env.LD_LIBRARY_PATH);
+}
+

+ 426 - 0
42409006-杨永泉/AF/js/Material_Editor_View_pane.js

@@ -0,0 +1,426 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnComModelHide();
+        OnMtbModelShow();
+        OnRawModelShow(); 
+        OnGenModelShow();
+        OnVariationModelShow();
+        OnKinematicModelShow();
+        OnStrainModelShow();
+        OnHardeningModelShow();
+        OnVarModelShow();
+        OnYieldModelShow();
+        OnFailureModelShow();
+        OnFormingModelShow();
+        
+        OnFormabilityModelHide();
+        OnLubracationModelHide();
+        OnChemicalModelHide();
+        OnThermalModelHide();
+        OnBasicModelHide();
+        OnMaterialModelHide();
+        ui.log_stk.index = 0;
+        model.startLocalhost(()=>{
+                ui.webview.value = "http://localhost:4000";
+                ui.webview1.value = "http://localhost:4000";
+                ui.webview2.value = "http://localhost:4000";
+                //ui.webview6.value = "http://localhost:4000";
+                parent.setTimeout(()=>{
+                        model.updateLineChart(getChar4());
+                        //model.updateLineChart(getChar5());
+                }, 100);
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function getChar4(){
+        option = {
+                xAxis: {
+                        type: 'category',
+                        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+                },
+                yAxis: {
+                        type: 'value'
+                },
+                series: [
+                        {
+                                data: [820, 932, 901, 934, 1290, 1330, 1320],
+                                type: 'line',
+                                smooth: true
+                        }
+                ]
+        };
+        return option;
+        
+}
+
+function getChar5(){
+        
+        function func(x) {
+                x /= 10;
+                return Math.sin(x) * Math.cos(x * 2 + 1) * Math.sin(x * 3 + 2) * 50;
+        }
+        function generateData() {
+                let data = [];
+                for (let i = -200; i <= 200; i += 0.1) {
+                        data.push([i, func(i)]);
+                }
+                return data;
+        }
+        option = {
+                animation: false,
+                grid: {
+                        top: 40,
+                        left: 50,
+                        right: 40,
+                        bottom: 50
+                },
+                xAxis: {
+                        name: 'x',
+                        minorTick: {
+                                show: true
+                        },
+                        minorSplitLine: {
+                                show: true
+                        }
+                },
+                yAxis: {
+                        name: 'y',
+                        min: -100,
+                        max: 100,
+                        minorTick: {
+                                show: true
+                        },
+                        minorSplitLine: {
+                                show: true
+                        }
+                },
+                dataZoom: [
+                        {
+                                show: true,
+                                type: 'inside',
+                                filterMode: 'none',
+                                xAxisIndex: [0],
+                                startValue: -20,
+                                endValue: 20
+                        },
+                        {
+                                show: true,
+                                type: 'inside',
+                                filterMode: 'none',
+                                yAxisIndex: [0],
+                                startValue: -20,
+                                endValue: 20
+                        }
+                ],
+                series: [
+                        {
+                                type: 'line',
+                                showSymbol: false,
+                                clip: true,
+                                data: generateData()
+                        }
+                ]
+        };
+        return option;
+}
+
+function OnCloseWin(){
+        unit.form.Material_Editor_View.Close();
+}
+
+function OnFailureModelHide(){
+        ui.failure_down_btn.visible = false;
+        ui.failure_right_btn.visible = true;
+        ui.failure_stk.visible = false;
+}
+
+function OnFailureModelShow(){
+        ui.failure_down_btn.visible = true;
+        ui.failure_right_btn.visible = false;
+        ui.failure_stk.visible = true;
+}
+
+function OnFormingModelHide(){
+        ui.forming_down_btn.visible = false;
+        ui.forming_right_btn.visible = true;
+        ui.forming_stk.visible = false;
+}
+
+function OnFormingModelShow(){
+        ui.forming_down_btn.visible = true;
+        ui.forming_right_btn.visible = false;
+        ui.forming_stk.visible = true;
+}
+
+function OnVarModelHide(){
+        ui.var_down_btn.visible = false;
+        ui.var_right_btn.visible = true;
+        ui.var_stk.visible = false;
+}
+
+function OnVarModelShow(){
+        ui.var_down_btn.visible = true;
+        ui.var_right_btn.visible = false;
+        ui.var_stk.visible = true;
+}
+
+function OnYieldModelHide(){
+        ui.yield_down_btn.visible = false;
+        ui.yield_right_btn.visible = true;
+        ui.yield_stk.visible = false;
+}
+
+function OnYieldModelShow(){
+        ui.yield_down_btn.visible = true;
+        ui.yield_right_btn.visible = false;
+        ui.yield_stk.visible = true;
+}
+
+function OnVariationModelHide(){
+        ui.variation_down_btn.visible = false;
+        ui.variation_right_btn.visible = true;
+        ui.variation_stk.visible = false;
+}
+
+function OnVariationModelShow(){
+        ui.variation_down_btn.visible = true;
+        ui.variation_right_btn.visible = false;
+        ui.variation_stk.visible = true;
+}
+
+function OnKinematicModelHide(){
+        ui.kinematic_down_btn.visible = false;
+        ui.kinematic_right_btn.visible = true;
+        ui.kinematic_stk.visible = false;
+}
+
+function OnKinematicModelShow(){
+        ui.kinematic_down_btn.visible = true;
+        ui.kinematic_right_btn.visible = false;
+        ui.kinematic_stk.visible = true;
+}
+
+function OnStrainModelHide(){
+        ui.strain_down_btn.visible = false;
+        ui.strain_right_btn.visible = true;
+        ui.strain_stk.visible = false;
+}
+
+function OnStrainModelShow(){
+        ui.strain_down_btn.visible = true;
+        ui.strain_right_btn.visible = false;
+        ui.strain_stk.visible = true;
+}
+
+function OnHardeningModelHide(){
+        ui.Hardwning_down_btn.visible = false;
+        ui.Hardwning_right_btn.visible = true;
+        ui.hardening_stk.visible = false;
+}
+
+function OnHardeningModelShow(){
+        ui.Hardwning_down_btn.visible = true;
+        ui.Hardwning_right_btn.visible = false;
+        ui.hardening_stk.visible = true;
+}
+
+function OnFormabilityModelHide(){
+        ui.formability_down_btn.visible = false;
+        ui.formability_right_btn.visible = true;
+        ui.formability_stk.visible = false;
+}
+
+function OnFormabilityModelShow(){
+        ui.formability_down_btn.visible = true;
+        ui.formability_right_btn.visible = false;
+        ui.formability_stk.visible = true;
+
+}
+
+function OnLubracationModelHide(){
+        ui.lubrication_down_btn.visible = false;
+        ui.lubrication_right_btn.visible = true;
+        ui.lubrication_stk.visible = false;
+}
+
+function OnLubracationModelShow(){
+        ui.lubrication_down_btn.visible = true;
+        ui.lubrication_right_btn.visible = false;
+        ui.lubrication_stk.visible = true;
+
+}
+
+function OnChemicalModelHide(){
+        ui.chemical_down_btn.visible = false;
+        ui.chemical_right_btn.visible = true;
+        ui.chemical_stk.visible = false;
+}
+
+function OnChemicalModelShow(){
+        ui.chemical_down_btn.visible = true;
+        ui.chemical_right_btn.visible = false;
+        ui.chemical_stk.visible = true;
+
+}
+
+function OnThermalModelHide(){
+        ui.thermal_down_btn.visible = false;
+        ui.thermal_right_btn.visible = true;
+        ui.thermal_stk.visible = false;
+}
+
+function OnThermalModelShow(){
+        ui.thermal_down_btn.visible = true;
+        ui.thermal_right_btn.visible = false;
+        ui.thermal_stk.visible = true;
+}
+
+function OnBasicModelHide(){
+        ui.basic_down_btn.visible = false;
+        ui.basic_right_btn.visible = true;
+        ui.basic_stk.visible = false;
+}
+
+function OnBasicModelShow(){
+        ui.basic_down_btn.visible = true;
+        ui.basic_right_btn.visible = false;
+        ui.basic_stk.visible = true;
+}
+
+function OnMaterialModelHide(){
+        ui.material_down_btn.visible = false;
+        ui.material_right_btn.visible = true;
+        ui.material_stk.visible = false;
+}
+
+function OnMaterialModelShow(){
+        ui.material_down_btn.visible = true;
+        ui.material_right_btn.visible = false;
+        ui.material_stk.visible = true;
+}
+
+function OnComModelHide(){
+        ui.com_down_btn.visible = false;
+        ui.com_right_btn.visible = true;
+        ui.edit_info_com.visible = false;
+}
+
+function OnComModelShow(){
+        ui.com_down_btn.visible = true;
+        ui.com_right_btn.visible = false;
+        ui.edit_info_com.visible = true;
+}
+
+function OnMtbModelHide(){
+        ui.mtb_down_btn.visible = false;
+        ui.mtb_right_btn.visible = true;
+        ui.edit_info_mtb.visible = false;
+}
+
+function OnMtbModelShow(){
+        ui.mtb_down_btn.visible = true;
+        ui.mtb_right_btn.visible = false;
+        ui.edit_info_mtb.visible = true;
+}
+
+function OnRawModelHide(){
+        ui.raw_down_btn.visible = false;
+        ui.raw_right_btn.visible = true;
+        ui.edit_info_raw.visible = false;
+}
+
+function OnRawModelShow(){
+        ui.raw_down_btn.visible = true;
+        ui.raw_right_btn.visible = false;
+        ui.edit_info_raw.visible = true;
+}
+
+function OnGenModelHide(){
+        ui.gen_down_btn.visible = false;
+        ui.gen_right_btn.visible = true;
+        ui.edit_info_Gen.visible = false;
+}
+
+function OnGenModelShow(){
+        ui.gen_down_btn.visible = true;
+        ui.gen_right_btn.visible = false;
+        ui.edit_info_Gen.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 119 - 0
42409006-杨永泉/AF/js/_model.js

@@ -0,0 +1,119 @@
+var fs   = require('fs');
+var path = require('path');
+var io   = require('socket.io-client');
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//Initialize codes.
+AutoLoadPlugins();
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//You can load the plugins in global field, if the next line codes are uncommented.
+//AutoLoadGlobalPlugins();
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//Sample codes.
+exports.Test = function() {
+        console.log("Hi, I'm a model test funciton");
+};
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//Put you codes here
+
+var g_init = false;
+var g_cp_www_js = false;
+exports.startLocalhost = function(cb){
+        if(!g_init) {
+                g_init = true;
+                var spawn = require('child_process').spawn;
+                var www_js = path.join(__dirname, '/../localhost/bin/www');
+                var cp = spawn('node', [www_js]);
+                g_cp_www_js = cp;
+                cp.stdout.on('data', data=>{
+                        //console.log(data.toString());
+                });
+        }
+        
+        var client = io("ws://localhost:4000");
+        client.on('connect', ()=>{
+                if(cb){cb();}
+                client.disconnect();
+        });
+};
+
+exports.updateLineChart = function(dataLineChart){
+        var client = io("ws://localhost:4000");
+        client.on('connect', ()=>{
+                client.emit('updateLineChart', dataLineChart);
+        });
+};
+
+exports.closeLocalhost = function(){
+        if(g_cp_www_js) {
+                process.kill(g_cp_www_js.pid);
+        }
+};
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// AutoLoadPlugins Function Implement Start.
+
+function AutoLoadPlugins() {
+        var plugin_dir = (__dirname + '/../addon/');
+        if(!fs.existsSync(plugin_dir)) {
+                return;
+        }
+    
+        var files = fs.readdirSync(plugin_dir);
+        files.forEach(function(filename){
+                var filedir = path.join(plugin_dir, filename);
+                var stats = fs.statSync(filedir);
+                if(!stats.isDirectory()) {
+                        if(filedir.indexOf('-linux.node') !== -1 && require('os').platform() === 'linux') {
+                                require(filedir);
+                        }
+            
+                        if(filedir.indexOf('-win.node') !== -1 && require('os').platform() === 'win32') {
+                                require(filedir);
+                        }
+                }
+        });
+}
+
+function AutoLoadGlobalPlugins() {
+        var plugin_dir = (process.env.COMX_SDK + 'addon/');
+        if (!fs.existsSync(plugin_dir)) {
+                return;
+        }
+
+        var files = fs.readdirSync(plugin_dir);
+        files.forEach(function(filename) {
+                var filedir = path.join(plugin_dir, filename);
+                var stats = fs.statSync(filedir);
+                if (!stats.isDirectory()) {
+                        if (filedir.indexOf('-linux.node') !== -1 && require('os').platform() === 'linux') {
+                                require(filedir);
+                        }
+
+                        if (filedir.indexOf('-win.node') !== -1 && require('os').platform() === 'win32') {
+                                require(filedir);
+                        }
+                }
+        });
+}
+
+//AutoLoadPlugins Function Implement End.
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// ide_info Function Implement Start.
+
+exports.ide_info = (msg) => {
+        if (process.send) {
+                process.send({
+                        type: 'debug',
+                        info: msg
+                });
+        }
+};
+
+//ide_info Function Implement End.
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

+ 217 - 0
42409006-杨永泉/AF/js/blank_Outline_Copyform_pane.js

@@ -0,0 +1,217 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        //ui.import_stk.index = 1;
+        OnGenericShow();
+        OnImportShow();
+        OnPartShow();
+        OnHidpShow();
+        OnHidShow();
+        OnHiddShow();
+        
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnOk(){
+        
+}
+
+function OnCancel(){
+        pane.Close();
+}
+function OnHidpHide(){
+        ui.hidp_btn_down.visible = false;
+        ui.hidp_btn_right.visible = true;
+        ui.hidp_stk.visible = false;
+
+}
+
+function OnHidpShow(){
+        ui.hidp_btn_down.visible = true;
+        ui.hidp_btn_right.visible = false;
+        ui.hidp_stk.visible = true;
+
+}
+
+function OnHiddHide(){
+        ui.hidd_btn_down.visible = false;
+        ui.hidd_btn_right.visible = true;
+        ui.hidd_stk.visible = false;
+}
+
+function OnHiddShow(){
+        ui.hidd_btn_down.visible = true;
+        ui.hidd_btn_right.visible = false;
+        ui.hidd_stk.visible = true;
+
+}
+
+function OnHidHide(){
+        ui.hid_btn_down.visible = false;
+        ui.hid_btn_rigth.visible = true;
+        ui.hid_stk.visible = false;
+
+}
+
+function OnHidShow(){
+        ui.hid_btn_down.visible = true;
+        ui.hid_btn_rigth.visible = false;
+        ui.hid_stk.visible = true;
+
+}
+function OnCollaspeOtherClick(){
+        ui.btn_co.valid = true;
+        ui.btn_ca.valid = false;
+        ui.btn_ea.valid = false;
+        ui.btn_fb.valid = false;
+
+}
+
+function OnCollaspeAllClick(){
+        ui.btn_co.valid = false;
+        ui.btn_ca.valid = true;
+        ui.btn_ea.valid = false;
+        ui.btn_fb.valid = false;
+        OnPartHide();
+
+}
+
+function OnExpendClick(){
+        ui.btn_co.valid = false;
+        ui.btn_ca.valid = false;
+        ui.btn_ea.valid = true;
+        ui.btn_fb.valid = false;
+        OnPartShow();
+
+}
+
+function OnFilterClick(){
+        ui.btn_co.valid = false;
+        ui.btn_ca.valid = false;
+        ui.btn_ea.valid = false;
+        ui.btn_fb.valid = true;
+        //return FilterBoundaries();
+
+}
+function FilterBoundaries(){
+        OnHidHide();
+        OnHiddHide();
+        OnHidpHide();
+}
+function OnGenericHide(){
+        ui.generic_btn_down.visible = false;
+        ui.generic_btn_right.visible = true;
+        ui.generic_stk.visible = false;
+
+}
+
+function OnGenericShow(){
+        ui.generic_btn_down.visible = true;
+        ui.generic_btn_right.visible = false;
+        ui.generic_stk.visible = true;
+
+}
+
+function OnImportHide(){
+        ui.import_btn_down.visible = false;
+        ui.import_btn_right.visible = true;
+        ui.import_stk.visible = false;
+
+}
+
+function OnImportShow(){
+        ui.import_btn_down.visible = true;
+        ui.import_btn_right.visible = false;
+        ui.import_stk.visible = true;
+
+}
+
+function OnPartHide(){
+        ui.part_btn_down.visible = false;
+        ui.part_btn_right.visible = true;
+        ui.part_stk.visible = false;
+
+}
+
+function OnPartShow(){
+        ui.part_btn_down.visible = true;
+        ui.part_btn_right.visible = false;
+        ui.part_stk.visible = true;
+
+}
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 181 - 0
42409006-杨永泉/AF/js/blank_Outline_pane.js

@@ -0,0 +1,181 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnCutModelShow();
+        OnOutlineModelShow();
+        model.startLocalhost(()=>{
+                ui.webview.value = "http://localhost:4000";
+                parent.setTimeout(()=>{
+                        model.updateLineChart(getChart1());
+                       
+                }, 100);
+        });
+}
+
+function update(){
+        model.updateLineChart(getChart1());
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+function getChart1() {
+        option = {
+                xAxis: {
+                        type: 'category',
+                        boundaryGap: false
+                },
+                yAxis: {
+                        type: 'value',
+                        boundaryGap: [0, '30%']
+                },
+                visualMap: {
+                        type: 'piecewise',
+                        show: false,
+                        dimension: 0,
+                        seriesIndex: 0,
+                        pieces: [
+                                {
+                                        gt: 1,
+                                        lt: 3,
+                                        color: 'rgba(0, 0, 180, 0.4)'
+                                },
+                                {
+                                        gt: 5,
+                                        lt: 7,
+                                        color: 'rgba(0, 0, 180, 0.4)'
+                                }
+                        ]
+                },
+                series: [
+                        {
+                                type: 'line',
+                                smooth: 0.6,
+                                symbol: 'none',
+                                lineStyle: {
+                                        color: '#5470C6',
+                                        width: 5
+                                },
+                                markLine: {
+                                        symbol: ['none', 'none'],
+                                        label: { show: false },
+                                        data: [{ xAxis: 1 }, { xAxis: 3 }, { xAxis: 5 }, { xAxis: 7 }]
+                                },
+                                areaStyle: {},
+                                data: [
+                                        ['2019-10-10', 200],
+                                        ['2019-10-11', 560],
+                                        ['2019-10-12', 750],
+                                        ['2019-10-13', 580],
+                                        ['2019-10-14', 250],
+                                        ['2019-10-15', 300],
+                                        ['2019-10-16', 450],
+                                        ['2019-10-17', 300],
+                                        ['2019-10-18', 100]
+                                ]
+                        }
+                ]
+        };
+        return option;
+}
+
+function OnBlankChange(){
+        unit.form.side_pane.OnBlankOutlineCopy();
+}
+
+function OnCutModelHide(){
+        ui.cut_down_btn.visible = false;
+        ui.cut_right_btn.visible = true;
+        ui.cut_stk.visible = false;
+}
+
+function OnCutModelShow(){
+        ui.cut_down_btn.visible = true;
+        ui.cut_right_btn.visible = false;
+        ui.cut_stk.visible = true;
+}
+
+function OnOutlineModelHide(){
+        ui.outline_down_btn.visible = false;
+        ui.outline_right_btn.visible = true;
+        ui.outline_stk.visible = false;
+}
+
+function OnOutlineModelShow(){
+        ui.outline_down_btn.visible = true;
+        ui.outline_right_btn.visible = false;
+        ui.outline_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 88 - 0
42409006-杨永泉/AF/js/blank_create_pane.js

@@ -0,0 +1,88 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnCreatBlankDie(){
+        unit.form.side_pane.createBlank();
+}
+
+function OnCreateBlank(){
+        unit.form.side_pane.createBlank();
+}
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 105 - 0
42409006-杨永泉/AF/js/blank_topmenu_pane.js

@@ -0,0 +1,105 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnChangeStep(Idx){
+        const difModel = {
+                'Outline':() => {
+                        ui.outline_btn.valid = true;
+                        ui.embed_btn.valid = false;
+                        ui.blank_btn.valid = false;
+                        unit.form.blank_Outline.update();
+                        unit.form.side_pane.OnChangeDiefaceTopmenu(0);
+                },
+                'Embed':() => {
+                        ui.outline_btn.valid = false;
+                        ui.embed_btn.valid = true;
+                        ui.blank_btn.valid = false;
+                        unit.form.side_pane.OnChangeDiefaceTopmenu(1);
+                },
+                'Blank':() => {
+                        ui.outline_btn.valid = false;
+                        ui.embed_btn.valid = false;
+                        ui.blank_btn.valid = true;
+                        unit.form.side_pane.OnChangeDiefaceTopmenu(2);
+                }
+        };
+        return difModel[Idx]();
+}
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2027 - 0
42409006-杨永泉/AF/js/cw_topmenu_pane.js


+ 94 - 0
42409006-杨永泉/AF/js/dieface_modify_pane.js

@@ -0,0 +1,94 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview)
+{
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview)
+{
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm()
+{
+}
+
+function OnException(err)
+{
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para)
+{
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath)
+{
+}
+
+function PUI(cb)
+{
+        if(pui)cb();
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb)
+{
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter)
+{
+    if(typeof(__DeclareVariable) == 'function')
+    {
+	__DeclareVariable(name, setter, getter);
+    }
+}
+
+function CW_DeclareOuterVariable(name)
+{
+    if(typeof(__DeclareOuterVariable) == 'function')
+    {
+	__DeclareOuterVariable(name);
+    }
+}

+ 141 - 0
42409006-杨永泉/AF/js/dieface_topmenu_pane.js

@@ -0,0 +1,141 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnChangeStep(Idx){
+        const difModel = {
+                'Tip':() => {
+                        ui.tip_btn.valid = true;
+                        ui.modify_btn.valid = false;
+                        ui.binder_btn.valid = false;
+                        ui.addendum_btn.valid = false;
+                        ui.modify2_btn.valid = false;
+                        ui.trimchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeDiefaceTopmenu(0);
+                },
+                'Modify':() => {
+                        ui.tip_btn.valid = false;
+                        ui.modify_btn.valid = true;
+                        ui.binder_btn.valid = false;
+                        ui.addendum_btn.valid = false;
+                        ui.modify2_btn.valid = false;
+                        ui.trimchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeDiefaceTopmenu(1);
+                },
+                'Binder':() => {
+                        ui.tip_btn.valid = false;
+                        ui.modify_btn.valid = false;
+                        ui.binder_btn.valid = true;
+                        ui.addendum_btn.valid = false;
+                        ui.modify2_btn.valid = false;
+                        ui.trimchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeDiefaceTopmenu(2);
+                },
+                'Addendum':() => {
+                        ui.tip_btn.valid = false;
+                        ui.modify_btn.valid = false;
+                        ui.binder_btn.valid = false;
+                        ui.addendum_btn.valid = true;
+                        ui.modify2_btn.valid = false;
+                        ui.trimchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeDiefaceTopmenu(3);
+                },
+                'Modify2':() => {
+                        ui.tip_btn.valid = false;
+                        ui.modify_btn.valid = false;
+                        ui.binder_btn.valid = false;
+                        ui.addendum_btn.valid = false;
+                        ui.modify2_btn.valid = true;
+                        ui.trimchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeDiefaceTopmenu(4);
+                },
+                'Trimchk':() => {
+                        ui.tip_btn.valid = false;
+                        ui.modify_btn.valid = false;
+                        ui.binder_btn.valid = false;
+                        ui.addendum_btn.valid = false;
+                        ui.modify2_btn.valid = false;
+                        ui.trimchk_btn.valid = true;
+                        unit.form.side_pane.OnChangeDiefaceTopmenu(5);
+                }
+                
+        };
+        return difModel[Idx]();
+}
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 194 - 0
42409006-杨永泉/AF/js/evaluation_splits_pane.js

@@ -0,0 +1,194 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnEdgeModelHide();
+        OnFldModelHide();
+        model.startLocalhost(()=>{
+                ui.webview.value = "http://localhost:4000";
+                parent.setTimeout(()=>{
+                        model.updateLineChart(getChart3());       
+                }, 100);
+        });
+}
+function update(){
+        model.updateLineChart(getChart3());   
+}
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function getChart3() {
+        option = {
+                xAxis: {
+                        scale: true
+                },
+                yAxis: {
+                        scale: true
+                },
+                series: [
+                        {
+                                type: 'effectScatter',
+                                symbolSize: 20,
+                                data: [
+                                        [172.7, 105.2],
+                                        [153.4, 42]
+                                ]
+                        },
+                        {
+                                type: 'scatter',
+                                // prettier-ignore
+                                data: [[161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0], [155.8, 53.6],
+                                        [170.0, 59.0], [159.1, 47.6], [166.0, 69.8], [176.2, 66.8], [160.2, 75.2],
+                                        [172.5, 55.2], [170.9, 54.2], [172.9, 62.5], [153.4, 42.0], [160.0, 50.0],
+                                        [147.2, 49.8], [168.2, 49.2], [175.0, 73.2], [157.0, 47.8], [167.6, 68.8],
+                                        [159.5, 50.6], [175.0, 82.5], [166.8, 57.2], [176.5, 87.8], [170.2, 72.8],
+                                        [174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [170.5, 67.8], [160.0, 47.0],
+                                        [154.4, 46.2], [162.0, 55.0], [176.5, 83.0], [160.0, 54.4], [152.0, 45.8],
+                                        [162.1, 53.6], [170.0, 73.2], [160.2, 52.1], [161.3, 67.9], [166.4, 56.6],
+                                        [168.9, 62.3], [163.8, 58.5], [167.6, 54.5], [160.0, 50.2], [161.3, 60.3],
+                                        [167.6, 58.3], [165.1, 56.2], [160.0, 50.2], [170.0, 72.9], [157.5, 59.8],
+                                        [167.6, 61.0], [160.7, 69.1], [163.2, 55.9], [152.4, 46.5], [157.5, 54.3],
+                                        [168.3, 54.8], [180.3, 60.7], [165.5, 60.0], [165.0, 62.0], [164.5, 60.3],
+                                        [156.0, 52.7], [160.0, 74.3], [163.0, 62.0], [165.7, 73.1], [161.0, 80.0],
+                                        [162.0, 54.7], [166.0, 53.2], [174.0, 75.7], [172.7, 61.1], [167.6, 55.7],
+                                        [151.1, 48.7], [164.5, 52.3], [163.5, 50.0], [152.0, 59.3], [169.0, 62.5],
+                                        [164.0, 55.7], [161.2, 54.8], [155.0, 45.9], [170.0, 70.6], [176.2, 67.2],
+                                        [170.0, 69.4], [162.5, 58.2], [170.3, 64.8], [164.1, 71.6], [169.5, 52.8],
+                                        [163.2, 59.8], [154.5, 49.0], [159.8, 50.0], [173.2, 69.2], [170.0, 55.9],
+                                        [161.4, 63.4], [169.0, 58.2], [166.2, 58.6], [159.4, 45.7], [162.5, 52.2],
+                                        [159.0, 48.6], [162.8, 57.8], [159.0, 55.6], [179.8, 66.8], [162.9, 59.4],
+                                        [161.0, 53.6], [151.1, 73.2], [168.2, 53.4], [168.9, 69.0], [173.2, 58.4],
+                                        [171.8, 56.2], [178.0, 70.6], [164.3, 59.8], [163.0, 72.0], [168.5, 65.2],
+                                        [166.8, 56.6], [172.7, 105.2], [163.5, 51.8], [169.4, 63.4], [167.8, 59.0],
+                                        [159.5, 47.6], [167.6, 63.0], [161.2, 55.2], [160.0, 45.0], [163.2, 54.0],
+                                        [162.2, 50.2], [161.3, 60.2], [149.5, 44.8], [157.5, 58.8], [163.2, 56.4],
+                                        [172.7, 62.0], [155.0, 49.2], [156.5, 67.2], [164.0, 53.8], [160.9, 54.4],
+                                        [162.8, 58.0], [167.0, 59.8], [160.0, 54.8], [160.0, 43.2], [168.9, 60.5],
+                                        [158.2, 46.4], [156.0, 64.4], [160.0, 48.8], [167.1, 62.2], [158.0, 55.5],
+                                        [167.6, 57.8], [156.0, 54.6], [162.1, 59.2], [173.4, 52.7], [159.8, 53.2],
+                                        [170.5, 64.5], [159.2, 51.8], [157.5, 56.0], [161.3, 63.6], [162.6, 63.2],
+                                        [160.0, 59.5], [168.9, 56.8], [165.1, 64.1], [162.6, 50.0], [165.1, 72.3],
+                                        [166.4, 55.0], [160.0, 55.9], [152.4, 60.4], [170.2, 69.1], [162.6, 84.5],
+                                        [170.2, 55.9], [158.8, 55.5], [172.7, 69.5], [167.6, 76.4], [162.6, 61.4],
+                                        [167.6, 65.9], [156.2, 58.6], [175.2, 66.8], [172.1, 56.6], [162.6, 58.6],
+                                        [160.0, 55.9], [165.1, 59.1], [182.9, 81.8], [166.4, 70.7], [165.1, 56.8],
+                                        [177.8, 60.0], [165.1, 58.2], [175.3, 72.7], [154.9, 54.1], [158.8, 49.1],
+                                        [172.7, 75.9], [168.9, 55.0], [161.3, 57.3], [167.6, 55.0], [165.1, 65.5],
+                                        [175.3, 65.5], [157.5, 48.6], [163.8, 58.6], [167.6, 63.6], [165.1, 55.2],
+                                        [165.1, 62.7], [168.9, 56.6], [162.6, 53.9], [164.5, 63.2], [176.5, 73.6],
+                                        [168.9, 62.0], [175.3, 63.6], [159.4, 53.2], [160.0, 53.4], [170.2, 55.0],
+                                        [162.6, 70.5], [167.6, 54.5], [162.6, 54.5], [160.7, 55.9], [160.0, 59.0],
+                                        [157.5, 63.6], [162.6, 54.5], [152.4, 47.3], [170.2, 67.7], [165.1, 80.9],
+                                        [172.7, 70.5], [165.1, 60.9], [170.2, 63.6], [170.2, 54.5], [170.2, 59.1],
+                                        [161.3, 70.5], [167.6, 52.7], [167.6, 62.7], [165.1, 86.3], [162.6, 66.4],
+                                        [152.4, 67.3], [168.9, 63.0], [170.2, 73.6], [175.2, 62.3], [175.2, 57.7],
+                                        [160.0, 55.4], [165.1, 104.1], [174.0, 55.5], [170.2, 77.3], [160.0, 80.5],
+                                        [167.6, 64.5], [167.6, 72.3], [167.6, 61.4], [154.9, 58.2], [162.6, 81.8],
+                                        [175.3, 63.6], [171.4, 53.4], [157.5, 54.5], [165.1, 53.6], [160.0, 60.0],
+                                        [174.0, 73.6], [162.6, 61.4], [174.0, 55.5], [162.6, 63.6], [161.3, 60.9],
+                                        [156.2, 60.0], [149.9, 46.8], [169.5, 57.3], [160.0, 64.1], [175.3, 63.6],
+                                        [169.5, 67.3], [160.0, 75.5], [172.7, 68.2], [162.6, 61.4], [157.5, 76.8],
+                                        [176.5, 71.8], [164.4, 55.5], [160.7, 48.6], [174.0, 66.4], [163.8, 67.3]
+                                ]
+                        }
+                ]
+        };
+        return option;
+}
+
+function OnEdgeModelHide(){
+        ui.Edge_down_btn.visible = false;
+        ui.Edge_right_btn.visible = true;
+        ui.Edge_stk.visible = false;
+}
+
+function OnEdgeModelShow(){
+        ui.Edge_down_btn.visible = true;
+        ui.Edge_right_btn.visible = false;
+        ui.Edge_stk.visible = true;
+}
+
+function OnFldModelHide(){
+        ui.FLD_down_btn.visible = false;
+        ui.FLD_right_btn.visible = true;
+        ui.FLD_stk.visible = false;
+}
+
+function OnFldModelShow(){
+        ui.FLD_down_btn.visible = true;
+        ui.FLD_right_btn.visible = false;
+        ui.FLD_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}12;
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 186 - 0
42409006-杨永泉/AF/js/evaluation_topmenu_pane.js

@@ -0,0 +1,186 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+function OnChangeModel(Idx){
+        const difModel = {
+                'splits':() => {
+                        ui.splits_btn.valid = true;
+                        ui.wrinkles_btn.valid = false;
+                        ui.drawin_btn.valid = false;
+                        ui.skiplines_btn.valid = false;
+                        ui.springback_btn.valid = false;
+                        ui.surface_btn.valid = false;
+                        //ui.stk_dif_model.index = 0;
+                },
+                'wrinkles':() => {
+                        ui.splits_btn.valid = false;
+                        ui.wrinkles_btn.valid = true;
+                        ui.drawin_btn.valid = false;
+                        ui.skiplines_btn.valid = false;
+                        ui.springback_btn.valid = false;
+                        ui.surface_btn.valid = false;
+                        //ui.stk_dif_model.index = 1;
+                },
+                'drawin':() => {
+                        ui.splits_btn.valid = false;
+                        ui.wrinkles_btn.valid = false;
+                        ui.drawin_btn.valid = true;
+                        ui.skiplines_btn.valid = false;
+                        ui.springback_btn.valid = false;
+                        ui.surface_btn.valid = false;
+                        //ui.stk_dif_model.index = 2;
+                },
+                'skiplines':() => {
+                        ui.splits_btn.valid = false;
+                        ui.wrinkles_btn.valid = false;
+                        ui.drawin_btn.valid = false;
+                        ui.skiplines_btn.valid = true;
+                        ui.springback_btn.valid = false;
+                        ui.surface_btn.valid = false;
+                        //ui.stk_dif_model.index = 3;
+                },
+                'springback':() => {
+                        ui.splits_btn.valid = false;
+                        ui.wrinkles_btn.valid = false;
+                        ui.drawin_btn.valid = false;
+                        ui.skiplines_btn.valid = false;
+                        ui.springback_btn.valid = true;
+                        ui.surface_btn.valid = false;
+                        //ui.stk_dif_model.index = 4;
+                },
+                'surface':() => {
+                        ui.splits_btn.valid = false;
+                        ui.wrinkles_btn.valid = false;
+                        ui.drawin_btn.valid = false;
+                        ui.skiplines_btn.valid = false;
+                        ui.springback_btn.valid = false;
+                        ui.surface_btn.valid = true;
+                        //ui.stk_dif_model.index = 5;
+                }
+                
+        };
+        return difModel[Idx]();
+}
+function OnChangedModel(Idx){
+        const difModel = {
+                'prodperform':() => {
+                        ui.prodperform_btn.valid = true;
+                        ui.forces_btn.valid = false;
+                        ui.wear_btn.valid = false;
+                        ui.resolve_btn.valid = false;
+                        ui.settings_btn = false;
+                        //ui.stk_dif_model.index = 6;
+                },
+                'forces':() => {
+                        ui.prodperform_btn.valid = false;
+                        ui.forces_btn.valid = true;
+                        ui.wear_btn.valid = false;
+                        ui.resolve_btn.valid = false;
+                        ui.settings_btn = false;
+                        //ui.stk_dif_model.index = 7;
+                },
+                'wear':() => {
+                        ui.prodperform_btn.valid = false;
+                        ui.forces_btn.valid = false;
+                        ui.wear_btn.valid = true;
+                        ui.resolve_btn.valid = false;
+                        ui.settings_btn = false;
+                        //ui.stk_dif_model.index = 8;
+                },
+                'resolve':() => {
+                        ui.prodperform_btn.valid = false;
+                        ui.forces_btn.valid = false;
+                        ui.wear_btn.valid = false;
+                        ui.resolve_btn.valid = true;
+                        ui.settings_btn = false;
+                        //ui.stk_dif_model.index = 9;
+                },
+                'settings':() => {
+                        ui.prodperform_btn.valid = false;
+                        ui.forces_btn.valid = false;
+                        ui.wear_btn.valid = false;
+                        ui.resolve_btn.valid = false;
+                        ui.settings_btn = true;
+                        //ui.stk_dif_model.index = 10;
+                }
+                
+        };
+        return difModel[Idx]();
+}
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 80 - 0
42409006-杨永泉/AF/js/mainfrm_pane.js

@@ -0,0 +1,80 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+var dock_widget = false;
+
+function OnInitializeData(reload, preview) {
+        if(preview) {return;}
+                
+        parent.setTimeout(()=>{
+                OnInitDocker();
+        }, 0);
+       
+}
+
+function appendDockPane(sub_form, title, init_pos, allow_pos, features) {
+        let dw = sub_form.CreateDock(title);
+
+        if(features) {ui.docker.setFeatures(dw, features);}
+        ui.docker.setAllowAreas(dw, allow_pos);
+        ui.docker.dock(dw, init_pos);
+        
+        return dw;
+}
+
+function OnInitDocker() {
+        
+        dock_widget = appendDockPane(unit.form.side_pane, "功能区", 1, 1|2);
+      
+        ui.docker.show(dock_widget, true);
+       
+}
+
+function installDockerCallback(apply_cb, next_cb, back_cb){
+        ui.OnLeftSideApply = apply_cb;
+        ui.OnLeftSideNext = next_cb;
+        ui.OnLeftSideBack = back_cb;
+}
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+}
+
+function OnCloseForm() {
+    
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+//The message corresponding callback executed by the main form
+// when calling pui.fireEvent(type,para) in the Docker subform.
+function OnChildDockerMessage(type, para){
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}

+ 180 - 0
42409006-杨永泉/AF/js/part_import_pane.js

@@ -0,0 +1,180 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnPartImtBtnShow(0);
+        OnPartImtBtnShow(1);
+        OnPartImtBtnShow(2);
+        OnPartImtBtnShow(3);
+        OnPartImtBtnShow(4);
+        OnPartImtBtnHide(5);
+        ui.part_imt_2.index = 0;
+        OnCurvesModelShow();
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+/*function OnOpenBtnImTool(){
+        unit.form.side_pane.OnOpenBtnImTool();
+
+}*/
+
+function OnOpenImTool(){
+        unit.form.side_pane.OnOpenToolFile();
+}
+
+function OnOpenImPart(){
+        unit.form.side_pane.OnOpenPartFile();
+}
+
+function OnCurvesModelHide(){
+        ui.curves_down_btn.visible = false;
+        ui.curves_right_btn.visible = true;
+        ui.curves_stk.visible = false;
+}
+
+function OnCurvesModelShow(){
+        ui.curves_down_btn.visible = true;
+        ui.curves_right_btn.visible = false;
+        ui.curves_stk.visible = true;
+}
+
+function OnPartImtBtnHide(Idx){
+        if(Idx === 0){
+                ui.imt_btn_d0.visible = false;
+                ui.imt_btn_r0.visible = true;
+                ui.part_imt_0.visible = false;
+        }
+        if(Idx === 1){
+                ui.imt_btn_d1.visible = false;
+                ui.imt_btn_r1.visible = true;
+                ui.part_imt_1.visible = false;
+        }
+        if(Idx === 2){
+                ui.imt_btn_d2.visible = false;
+                ui.imt_btn_r2.visible = true;
+                ui.part_imt_2.visible = false;
+        }
+        if(Idx === 3){
+                ui.imt_btn_d3.visible = false;
+                ui.imt_btn_r3.visible = true;
+                ui.part_imt_3.visible = false;
+        }
+        if(Idx === 4){
+                ui.imt_btn_d4.visible = false;
+                ui.imt_btn_r4.visible = true;
+                ui.part_imt_4.visible = false;
+        }
+        if(Idx === 5){
+                ui.imt_btn_d5.visible = false;
+                ui.imt_btn_r5.visible = true;
+                ui.part_imt_5.visible = false;
+        }
+        
+}
+
+function OnPartImtBtnShow(Idx){
+        if(Idx === 0){
+                ui.imt_btn_d0.visible = true;
+                ui.imt_btn_r0.visible = false;
+                ui.part_imt_0.visible = true;
+        }
+        if(Idx === 1){
+                ui.imt_btn_d1.visible = true;
+                ui.imt_btn_r1.visible = false;
+                ui.part_imt_1.visible = true;
+        }
+        if(Idx === 2){
+                ui.imt_btn_d2.visible = true;
+                ui.imt_btn_r2.visible = false;
+                ui.part_imt_2.visible = true;
+        }
+        if(Idx === 3){
+                ui.imt_btn_d3.visible = true;
+                ui.imt_btn_r3.visible = false;
+                ui.part_imt_3.visible = true;
+        }
+        if(Idx === 4){
+                ui.imt_btn_d4.visible = true;
+                ui.imt_btn_r4.visible = false;
+                ui.part_imt_4.visible = true;
+        }
+        if(Idx === 5){
+                ui.imt_btn_d5.visible = true;
+                ui.imt_btn_r5.visible = false;
+                ui.part_imt_5.visible = true;
+        }
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 114 - 0
42409006-杨永泉/AF/js/part_material_pane.js

@@ -0,0 +1,114 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        ui.list.table = [["Material Zones", "Type"], ["CR3-070mm/0.700mm", "Constant"]];
+        ui.list.filter = [0, 1, ["Constant", "Rolled"]];
+        ui.list.head_size = [0, -1];
+        OnInfoModelShow();
+        OnMeterialModelShow();
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnOpenEditWin(){
+        unit.form.Material_Editor_View.Show();
+}
+
+function OnMeterialModelHide(){
+        ui.material_btn_down.visible = false;
+        ui.material_btn_right.visible = true;
+        ui.material_stk.visible = false;
+}
+
+function OnInfoModelHide(){
+        ui.info_btn_down.visible = false;
+        ui.info_btn_right.visible = true;
+        ui.info_stk.visible = false;
+}
+
+function OnInfoModelShow(){
+        ui.info_btn_down.visible = true;
+        ui.info_btn_right.visible = false;
+        ui.info_stk.visible = true;
+}
+
+function OnMeterialModelShow(){
+        ui.material_btn_down.visible = true;
+        ui.material_btn_right.visible = false;
+        ui.material_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 160 - 0
42409006-杨永泉/AF/js/part_pane.js

@@ -0,0 +1,160 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnChangeStep(Idx){
+        const difModel = {
+                'project':() => {
+                        ui.project_btn.valid = true;
+                        ui.import_btn.valid = false;
+                        ui.tip_btn.valid = false;
+                        ui.material_btn.valid = false;
+                        ui.fillet_btn.valid = false;
+                        ui.modify_btn.valid = false;
+                        ui.formchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeStep(0);
+                },
+                'import':() => {
+                        ui.project_btn.valid = false;
+                        ui.import_btn.valid = true;
+                        ui.tip_btn.valid = false;
+                        ui.material_btn.valid = false;
+                        ui.fillet_btn.valid = false;
+                        ui.modify_btn.valid = false;
+                        ui.formchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeStep(1);
+                },
+                'tip':() => {
+                        ui.project_btn.valid = false;
+                        ui.import_btn.valid = false;
+                        ui.tip_btn.valid = true;
+                        ui.material_btn.valid = false;
+                        ui.fillet_btn.valid = false;
+                        ui.modify_btn.valid = false;
+                        ui.formchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeStep(2);
+                        unit.form.part_tip.upda();
+                     
+                },
+                'material':() => {
+                        ui.project_btn.valid = false;
+                        ui.import_btn.valid = false;
+                        ui.tip_btn.valid = false;
+                        ui.material_btn.valid = true;
+                        ui.fillet_btn.valid = false;
+                        ui.modify_btn.valid = false;
+                        ui.formchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeStep(3);
+                },
+                'fillet':() => {
+                        ui.project_btn.valid = false;
+                        ui.import_btn.valid = false;
+                        ui.tip_btn.valid = false;
+                        ui.material_btn.valid = false;
+                        ui.fillet_btn.valid = true;
+                        ui.modify_btn.valid = false;
+                        ui.formchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeStep(4);
+                },
+                'modify':() => {
+                        ui.project_btn.valid = false;
+                        ui.import_btn.valid = false;
+                        ui.tip_btn.valid = false;
+                        ui.material_btn.valid = false;
+                        ui.fillet_btn.valid = false;
+                        ui.modify_btn.valid = true;
+                        ui.formchk_btn.valid = false;
+                        unit.form.side_pane.OnChangeStep(5);
+                },
+                'formchk':() => {
+                        ui.project_btn.valid = false;
+                        ui.import_btn.valid = false;
+                        ui.tip_btn.valid = false;
+                        ui.material_btn.valid = false;
+                        ui.fillet_btn.valid = false;
+                        ui.modify_btn.valid = false;
+                        ui.formchk_btn.valid = true;
+                        unit.form.side_pane.OnChangeStep(6);
+                }
+                
+        };
+        return difModel[Idx]();
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 194 - 0
42409006-杨永泉/AF/js/part_tip_pane.js

@@ -0,0 +1,194 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        ui.main_tip_stk.index = 1;
+        OnTipBtnChange('point');
+        OnOpenCenterOfDie();
+        OnShowCurTip(); 
+        model.startLocalhost(()=>{
+                ui.webview.value = "http://localhost:4000";
+                parent.setTimeout(()=>{
+                        model.updateLineChart(getChart());
+                       
+                }, 100);
+        });
+        
+}
+function upda() {
+        model.updateLineChart(getChart());
+}
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+        model.closeLocalhost();
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function getChart() {
+        const data = [];
+        for (let i = 0; i <= 360; i++) {
+                let t = (i / 180) * Math.PI;
+                let r = Math.sin(2 * t) * Math.cos(2 * t);
+                data.push([r, i]);
+        }
+        option = {
+                legend: {
+                        data: ['line']
+                },
+                polar: {
+                        center: ['50%', '54%'],
+                        radius:'60%'
+                },
+                tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                                type: 'cross'
+                        }, padding: [5, 10], // 减小内边距,缩小提示框
+                        textStyle: {
+                                fontSize: 10 // 减小字体大小
+                        }
+                },
+                angleAxis: {
+                        type: 'value',
+                        startAngle: 0
+                },
+                radiusAxis: {
+                        min: 0
+                },
+                series: [
+                        {
+                                coordinateSystem: 'polar',
+                                name: 'line',
+                                type: 'line',
+                                showSymbol: false,
+                                data: data
+                        }
+                ],
+                animationDuration: 2000,
+                width:'80',
+                height:'80'
+        };
+        return option;
+}
+
+function OnResize(){
+
+}
+
+function OnHideCurTip(){
+        ui.cur_tip_stk.visible = false;
+        ui.tip_right.visible = true;
+        ui.tip_down.visible = false;
+}
+
+function OnShowCurTip(){
+        ui.cur_tip_stk.visible = true;
+        ui.tip_right.visible = false;
+        ui.tip_down.visible = true;
+}
+
+function OnTipBtnChange(Idx){
+        const difTipMOdel = {
+                'point':() => {
+                        ui.Automatic_tip_stk.index = 0;
+                        ui.T_point.valid = true;
+                        ui.T_angel.valid = false;
+                        ui.C_die.valid = false;
+                        ui.cur_tip_model_stk.visible = true;
+                },
+                'angle':() => {
+                        ui.Automatic_tip_stk.index = 1;
+                        ui.T_point.valid = false;
+                        ui.T_angel.valid = true;
+                        ui.C_die.valid = false;
+                        ui.cur_tip_model_stk.visible = true;
+                },
+                'die':() => {
+                        ui.Automatic_tip_stk.index = 2;
+                        ui.T_point.valid = false;
+                        ui.T_angel.valid = false;
+                        ui.C_die.valid = true;
+                        ui.cur_tip_model_stk.visible = false;
+                }
+        };
+        return difTipMOdel[Idx]();
+}
+
+function OnOpenCenterOfDie(){
+        ui.center_of_die_stk.index = 1;
+}
+
+function OnCloseCenterOfDie(){
+        ui.center_of_die_stk.index = 0;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 85 - 0
42409006-杨永泉/AF/js/plan_create_pane.js

@@ -0,0 +1,85 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnCreatePlan(){
+        unit.form.side_pane.createPlan();
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 95 - 0
42409006-杨永泉/AF/js/plan_plan_pane.js

@@ -0,0 +1,95 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnPlotModelHide();
+        ui.plan_list.table = [["Features", "D-20"], ["Draw Region", ""], ["Outer Trim", ""]];
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnPlotModelHide(){
+        ui.plot_down_btn.visible = false;
+        ui.plot_right_btn.visible = true;
+        ui.plot_stk.visible = false;
+}
+
+function OnPlotModelShow(){
+        ui.plot_down_btn.visible = true;
+        ui.plot_right_btn.visible = false;
+        ui.plot_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 159 - 0
42409006-杨永泉/AF/js/plan_production_pane.js

@@ -0,0 +1,159 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnPressDataModelHide();
+        OnPressModelHide();
+        OnPressBedModelHide();
+        OnToolingModelHide();
+        OnCommentsModelHide();
+        OnWarningsModelHide();
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnPressDataModelHide(){
+        ui.pressdata_down_btn.visible = false;
+        ui.pressdata_right_btn.visible = true;
+        ui.pressdata_stk.visible = false;
+}
+
+function OnPressDataModelShow(){
+        ui.pressdata_down_btn.visible = true;
+        ui.pressdata_right_btn.visible = false;
+        ui.pressdata_stk.visible = true;
+}
+
+function OnPressModelHide(){
+        ui.press_down_btn.visible = false;
+        ui.press_right_btn.visible = true;
+        ui.press_stk.visible = false;
+}
+
+function OnPressModelShow(){
+        ui.press_down_btn.visible = true;
+        ui.press_right_btn.visible = false;
+        ui.press_stk.visible = true;
+}
+
+function OnPressBedModelHide(){
+        ui.pressbed_down_btn.visible = false;
+        ui.pressbed_right_btn.visible = true;
+        ui.pressbed_stk.visible = false;
+}
+
+function OnPressBedModelShow(){
+        ui.pressbed_down_btn.visible = true;
+        ui.pressbed_right_btn.visible = false;
+        ui.pressbed_stk.visible = true;
+}
+
+function OnToolingModelHide(){
+        ui.tooling_down_btn.visible = false;
+        ui.tooling_right_btn.visible = true;
+        ui.tooling_stk.visible = false;
+}
+
+function OnToolingModelShow(){
+        ui.tooling_down_btn.visible = true;
+        ui.tooling_right_btn.visible = false;
+        ui.tooling_stk.visible = true;
+}
+
+function OnCommentsModelHide(){
+        ui.comments_down_btn.visible = false;
+        ui.comments_right_btn.visible = true;
+        ui.comments_stk.visible = false;
+}
+
+function OnCommentsModelShow(){
+        ui.comments_down_btn.visible = true;
+        ui.comments_right_btn.visible = false;
+        ui.comments_stk.visible = true;
+}
+
+function OnWarningsModelHide(){
+        ui.warnings_down_btn.visible = false;
+        ui.warnings_right_btn.visible = true;
+        ui.warnings_stk.visible = false;
+}
+
+function OnWarningsModelShow(){
+        ui.warnings_down_btn.visible = true;
+        ui.warnings_right_btn.visible = false;
+        ui.warnings_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 127 - 0
42409006-杨永泉/AF/js/plan_topmenu_pane.js

@@ -0,0 +1,127 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnChangeStep(Idx){
+        const difModel = {
+                'Settings':() => {
+                        ui.settings_btn.valid = true;
+                        ui.production_btn.valid = false;
+                        ui.plan_btn.valid = false;
+                        ui.tooling_btn.valid = false;
+                        ui.piece_btn.valid = false;
+                        unit.form.side_pane.OnChangePlanTopmenu(0);
+                },
+                'Production':() => {
+                        ui.settings_btn.valid = false;
+                        ui.production_btn.valid = true;
+                        ui.plan_btn.valid = false;
+                        ui.tooling_btn.valid = false;
+                        ui.piece_btn.valid = false;
+                        unit.form.side_pane.OnChangePlanTopmenu(1);
+                },
+                'Plan':() => {
+                        ui.settings_btn.valid = false;
+                        ui.production_btn.valid = false;
+                        ui.plan_btn.valid = true;
+                        ui.tooling_btn.valid = false;
+                        ui.piece_btn.valid = false;
+                        unit.form.side_pane.OnChangePlanTopmenu(2);
+                },
+                'Tooling':() => {
+                        ui.settings_btn.valid = false;
+                        ui.production_btn.valid = false;
+                        ui.plan_btn.valid = false;
+                        ui.tooling_btn.valid = true;
+                        ui.piece_btn.valid = false;
+                        unit.form.side_pane.OnChangePlanTopmenu(3);
+                },
+                'Piece':() => {
+                        ui.settings_btn.valid = false;
+                        ui.production_btn.valid = false;
+                        ui.plan_btn.valid = false;
+                        ui.tooling_btn.valid = false;
+                        ui.piece_btn.valid = true;
+                        unit.form.side_pane.OnChangePlanTopmenu(4);
+                }
+                
+        };
+        return difModel[Idx]();
+}
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 155 - 0
42409006-杨永泉/AF/js/process_D_20_ToolsBinder_pane.js

@@ -0,0 +1,155 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnOperationsShow();
+        OnImpartsShow();
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnInvert(){
+        if(ui.pb_allin.enable === true){
+                OnAllIn();
+        }else{
+                OnAllOut();     
+        }
+        //OnAllIn();
+        //OnAllOut();
+}
+
+function OnAllOut(){
+        ui.pb_allout.enable = false;
+        ui.pb_allin.enable = true;
+        ui.clear.enable = false;
+}
+
+function OnAllIn(){
+        ui.pb_allout.enable = true;
+        ui.pb_allin.enable = false;
+        ui.clear.enable = true;
+
+}
+
+function OnOk(){
+
+}
+
+function OnClose(){
+        pane.Close();
+
+}
+
+function OnFaces(){
+        ui.select_stk.index = 1;
+        ui.obj.visible = ui.cb_add.visible = ui.cb_binder.visible = ui.cb_fill.visible = ui.cb_part.visible = true;
+        
+}
+
+function OnObject(){
+        ui.select_stk.index = 0;
+        ui.sf.visible = ui.pb_allin.visible = ui.pb_allout.visible = ui.pb_in.visible = ui.pb_invert.visible = ui.pb_out.visible = true;
+
+}
+
+function OnOperationsHide(){
+        ui.ope_btn_down.visible = false;
+        ui.ope_btn_right.visible = true;
+        ui.ope_stk.visible = false;
+
+}
+
+function OnOperationsShow(){
+        ui.ope_btn_down.visible = true;
+        ui.ope_btn_right.visible = false;
+        ui.ope_stk.visible = true;
+
+}
+
+function OnImpartsHide(){
+        ui.imparts_btn_down.visible = false;
+        ui.impart_btn_right.visible = true;
+        ui.imparts_stk.visible = false;
+
+}
+
+function OnImpartsShow(){
+        ui.imparts_btn_down.visible = true;
+        ui.impart_btn_right.visible = false;
+        ui.imparts_stk.visible = true;
+
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 154 - 0
42409006-杨永泉/AF/js/process_D_20_ToolsDefine_pane.js

@@ -0,0 +1,154 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnOperationShow();
+        OnImPartShow();
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnSeclectFace(){
+        ui.pb_allin.enable = true;
+        ui.pb_allout.enable = true;
+        ui.pb_invert.enable = true;
+}
+function OnComGeoSwitch(){
+        ui.pb_allin.enable = false;
+        ui.pb_allout.enable = false;
+        ui.pb_invert.enable = false;
+
+}
+function OnInvertClick(){
+        if(ui.pb_allin.enable === true){
+                OnAllInClick();
+        }else{
+                OnAllOutClick();     
+        }
+        //OnAllInClick();
+        //OnAllOutClick();
+}
+
+function OnAllInClick(){
+        ui.pb_allout.enable = true;
+        ui.pb_allin.enable = false;
+        ui.pb_clear.enable = true;
+
+}
+
+function OnAllOutClick(){
+        ui.pb_allout.enable = false;
+        ui.pb_allin.enable = true;
+        ui.pb_clear.enable = false;
+
+}
+
+function OnClose(){
+        pane.Close();
+}
+
+function OnOk(){
+
+}
+
+function OnOperationHide(){
+        ui.opera_btn_down.visible = false;
+        ui.opera_btn_right.visible = true;
+        ui.opera_stk.visible = false;
+
+}
+
+function OnOperationShow(){
+        ui.opera_btn_down.visible = true;
+        ui.opera_btn_right.visible = false;
+        ui.opera_stk.visible = true;
+
+}
+
+function OnImPartHide(){
+        ui.ipart_btn_down.visible = false;
+        ui.ipart_btn_right.visible = true;
+        ui.ipart_stk.visible = false;
+
+}
+
+function OnImPartShow(){
+        ui.ipart_btn_down.visible = true;
+        ui.ipart_btn_right.visible = false;
+        ui.ipart_stk.visible = true;
+
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 310 - 0
42409006-杨永泉/AF/js/process_D_20_beads_copyform_pane.js

@@ -0,0 +1,310 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+                
+        });
+        OnSimResultShow();
+        OnSheelBdShow();
+        OnPartShow();
+        OnImportShow();
+        OnGenericShow();
+        OnHidShow();
+        OnHiddShow();
+        OnHidpShow();
+        OnDShow();
+        OnDrawShow();
+        OnBlankOutlineShow();
+        
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnClose(){
+        pane.Close();
+
+}
+
+function OnOk(){
+
+}
+
+function OnCollaspeOtherClick(){
+        ui.btn_co.valid = true;
+        ui.btn_ca.valid = false;
+        ui.btn_ea.valid = false;
+        ui.btn_fb.valid = false;
+
+}
+
+function OnCollaspeAllClick(){
+        ui.btn_co.valid = false;
+        ui.btn_ca.valid = true;
+        ui.btn_ea.valid = false;
+        ui.btn_fb.valid = false;
+        OnSimResultHide();
+        OnPartHide();
+        OnDHide();
+        OnBlankOutlineHide();
+
+}
+
+function OnExpendClick(){
+        ui.btn_co.valid = false;
+        ui.btn_ca.valid = false;
+        ui.btn_ea.valid = true;
+        ui.btn_fb.valid = false;
+        OnSimResultShow();
+        OnPartShow();
+        OnDShow();
+        OnBlankOutlineShow();
+
+}
+
+function OnFilterClick(){
+        ui.btn_co.valid = false;
+        ui.btn_ca.valid = false;
+        ui.btn_ea.valid = false;
+        ui.btn_fb.valid = true;
+        //return FilterBoundaries();
+
+}
+function FilterBoundaries(){
+        OnHidHide();
+        OnHiddHide();
+        OnHidpHide();
+}
+
+function OnBlankOutlineHide(){
+        ui.blankline_btn_down.visible = false;
+        ui.blankline_btn_right.visible = true;
+        ui.blankline_stk.visible = false;
+
+}
+
+function OnBlankOutlineShow(){
+        ui.blankline_btn_down.visible = true;
+        ui.blankline_btn_right.visible = false;
+        ui.blankline_stk.visible = true;
+
+}
+
+function OnDrawHide(){
+        ui.drawbe_btn_down.visible = false;
+        ui.drawbe_btn_right.visible = true;
+        ui.drawbe_stk.visible = false;
+
+}
+
+function OnDrawShow(){
+        ui.drawbe_btn_down.visible = true;
+        ui.drawbe_btn_right.visible = false;
+        ui.drawbe_stk.visible = true;
+
+}
+
+function OnDHide(){
+        ui.d20_btn_down.visible = false;
+        ui.d20_btn_right.visible = true;
+        ui.d20_stk.visible = false;
+
+}
+
+function OnDShow(){
+        ui.d20_btn_down.visible = true;
+        ui.d20_btn_right.visible = false;
+        ui.d20_stk.visible = true;
+
+}
+
+function OnHidpHide(){
+        ui.hidp_btn_down.visible = false;
+        ui.hidp_btn_right.visible = true;
+        ui.hidp_stk.visible = false;
+
+}
+
+function OnHidpShow(){
+        ui.hidp_btn_down.visible = true;
+        ui.hidp_btn_right.visible = false;
+        ui.hidp_stk.visible = true;
+
+}
+
+function OnHiddHide(){
+        ui.hidd_btn_down.visible = false;
+        ui.hidd_btn_right.visible = true;
+        ui.hidd_stk.visible = false;
+}
+
+function OnHiddShow(){
+        ui.hidd_btn_down.visible = true;
+        ui.hidd_btn_right.visible = false;
+        ui.hidd_stk.visible = true;
+
+}
+
+function OnHidHide(){
+        ui.hid_btn_down.visible = false;
+        ui.hid_btn_rigth.visible = true;
+        ui.hid_stk.visible = false;
+
+}
+
+function OnHidShow(){
+        ui.hid_btn_down.visible = true;
+        ui.hid_btn_rigth.visible = false;
+        ui.hid_stk.visible = true;
+
+}
+
+function OnGenericHide(){
+        ui.generic_btn_down.visible = false;
+        ui.generic_btn_right.visible = true;
+        ui.generic_stk.visible = false;
+
+}
+
+function OnGenericShow(){
+        ui.generic_btn_down.visible = true;
+        ui.generic_btn_right.visible = false;
+        ui.generic_stk.visible = true;
+
+}
+
+function OnImportHide(){
+        ui.import_btn_down.visible = false;
+        ui.import_btn_right.visible = true;
+        ui.import_stk.visible = false;
+
+}
+
+function OnImportShow(){
+        ui.import_btn_down.visible = true;
+        ui.import_btn_right.visible = false;
+        ui.import_stk.visible = true;
+
+}
+
+function OnPartHide(){
+        ui.part_btn_down.visible = false;
+        ui.part_btn_right.visible = true;
+        ui.part_stk.visible = false;
+
+}
+
+function OnPartShow(){
+        ui.part_btn_down.visible = true;
+        ui.part_btn_right.visible = false;
+        ui.part_stk.visible = true;
+
+}
+
+function OnSheelBdShow(){
+        ui.sheelbd_btn_down.visible = true;
+        ui.sheelbd_btn_right.visible = false;
+        ui.sheet_bd_end_stk.visible = true;
+
+}
+
+function OnSheelBdHide(){
+        ui.sheelbd_btn_down.visible = false;
+        ui.sheelbd_btn_right.visible = true;
+        ui.sheet_bd_end_stk.visible = false;
+
+}
+
+function OnSimResultHide(){
+        ui.simresult_down_btn.visible = false;
+        ui.simresult_right_btn.visible = true;
+        ui.sheetbd_stk.visible = false;
+}
+
+function OnSimResultShow(){
+        ui.simresult_down_btn.visible = true;
+        ui.simresult_right_btn.visible = false;
+        ui.sheetbd_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+/*function OnCurvesModelHide(){
+        ui.simresult_down_btn.visible = false;
+        ui.simresult_right_btn.visible = true;
+        ui.curves_stk.visible = false;
+}
+
+function OnCurvesModelShow(){
+        ui.simresult_down_btn.visible = true;
+        ui.simresult_right_btn.visible = false;
+        ui.curves_stk.visible = true;
+}*/
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 94 - 0
42409006-杨永泉/AF/js/process_D_20_beads_pane.js

@@ -0,0 +1,94 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        ui.D_20_bead_stk.index = 0;
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnAddDrawBeadButton(){
+        if(ui.D_20_bead_stk.index === 0){
+                ui.D_20_bead_stk.index = 1;
+        }
+
+}
+
+function OnProcessDBead(){
+        unit.form.side_pane.OnProcessBeadCopy();
+
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 245 - 0
42409006-杨永泉/AF/js/process_D_20_pane.js

@@ -0,0 +1,245 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnBedModelShow();
+        OnRamModelShow();
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnSupportModelShow();
+        OnNonModelHide();
+        OnPartialModelHide();
+        OnDieSupportModelShow();
+        OnPunchSupportModelShow();
+        OnNonActiveModelShow();
+        OnBedModelShow();
+        OnRamModelShow();
+        OnPunch();
+        ui.tools_model_stk.index = 2;
+    
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnPunchChange(){
+        unit.form.side_pane.OnProcessPunch();
+
+}
+
+function OnBinderChange(){
+        unit.form.side_pane.OnProcessBinder();
+
+}
+
+function OnBinder(){
+        ui.ram_btn.valid = false;
+        ui.die_btn.valid = false;
+        ui.bed_btn.valid = false;
+        ui.punch_btn.valid = false;
+        ui.binder_btn.valid = true;
+        ui.tools_model_stk.index = 2;
+}
+
+function OnPunch(){
+        ui.ram_btn.valid = false;
+        ui.die_btn.valid = false;
+        ui.bed_btn.valid = false;
+        ui.punch_btn.valid = true;
+        ui.binder_btn.valid = false;
+        ui.tools_model_stk.index = 1;
+}
+
+function OnBed(){
+        ui.ram_btn.valid = false;
+        ui.die_btn.valid = false;
+        ui.bed_btn.valid = true;
+        ui.punch_btn.valid = false;
+        ui.binder_btn.valid = false;
+        ui.tools_model_stk.index = 3;
+}
+
+function OnDie(){
+        ui.ram_btn.valid = false;
+        ui.die_btn.valid = true;
+        ui.bed_btn.valid = false;
+        ui.punch_btn.valid = false;
+        ui.binder_btn.valid = false;
+        ui.tools_model_stk.index = 0;
+}
+
+function OnRam(){
+        ui.ram_btn.valid = true;
+        ui.die_btn.valid = false;
+        ui.bed_btn.valid = false;
+        ui.punch_btn.valid = false;
+        ui.binder_btn.valid = false;
+        ui.tools_model_stk.index = 3;
+}
+
+function OnBedModelHide(){
+        ui.bed_down_btn.visible = false;
+        ui.bed_right_btn.visible = true;
+        ui.bed_stk.visible = false;
+}
+
+function OnBedModelShow(){
+        ui.bed_down_btn.visible = true;
+        ui.bed_right_btn.visible = false;
+        ui.bed_stk.visible = true;
+}
+
+function OnRamModelHide(){
+        ui.ram_down_btn.visible = false;
+        ui.ram_right_btn.visible = true;
+        ui.ram_stk.visible = false;
+}
+
+function OnRamModelShow(){
+        ui.ram_down_btn.visible = true;
+        ui.ram_right_btn.visible = false;
+        ui.ram_stk.visible = true;
+}
+
+function OnNonActiveModelHide(){
+        ui.non_active_down_btn.visible = false;
+        ui.non_active_right_btn.visible = true;
+        ui.non_active_stk.visible = false;
+}
+
+function OnNonActiveModelShow(){
+        ui.non_active_down_btn.visible = true;
+        ui.non_active_right_btn.visible = false;
+        ui.non_active_stk.visible = true;
+}
+
+function OnPunchSupportModelHide(){
+        ui.punch_support_down_btn.visible = false;
+        ui.punch_support_right_btn.visible = true;
+        ui.punch_support_stk.visible = false;
+}
+
+function OnPunchSupportModelShow(){
+        ui.punch_support_down_btn.visible = true;
+        ui.punch_support_right_btn.visible = false;
+        ui.punch_support_stk.visible = true;
+}
+
+function OnDieSupportModelHide(){
+        ui.Die_support_down_btn.visible = false;
+        ui.Die_support_right_btn.visible = true;
+        ui.Die_support_stk.visible = false;
+}
+
+function OnDieSupportModelShow(){
+        ui.Die_support_down_btn.visible = true;
+        ui.Die_support_right_btn.visible = false;
+        ui.Die_support_stk.visible = true;
+}
+
+function OnNonModelHide(){
+        ui.non_down_btn.visible = false;
+        ui.non_right_btn.visible = true;
+        ui.non_stk.visible = false;
+}
+
+function OnNonModelShow(){
+        ui.non_down_btn.visible = true;
+        ui.non_right_btn.visible = false;
+        ui.non_stk.visible = true;
+}
+
+function OnPartialModelHide(){
+        ui.partial_down_btn.visible = false;
+        ui.partial_right_btn.visible = true;
+        ui.partial_stk.visible = false;
+}
+
+function OnPartialModelShow(){
+        ui.partial_down_btn.visible = true;
+        ui.partial_right_btn.visible = false;
+        ui.partial_stk.visible = true;
+}
+
+function OnSupportModelHide(){
+        ui.support_down_btn.visible = false;
+        ui.support_right_btn.visible = true;
+        ui.support_stk.visible = false;
+}
+
+function OnSupportModelShow(){
+        ui.support_down_btn.visible = true;
+        ui.support_right_btn.visible = false;
+        ui.support_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 157 - 0
42409006-杨永泉/AF/js/process_D_20_topmenu_pane.js

@@ -0,0 +1,157 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnChangeStep(Idx){
+        const difModel = {
+                'OP_Setup':() => {
+                        ui.op_setup_btn.valid = true;
+                        ui.tools_btn.valid = false;
+                        ui.beads_btn.valid = false;
+                        ui.pilots_btn.valid = false;
+                        ui.lube_btn.valid = false;
+                        ui.pressure_btn.valid = false;
+                        ui.ref_btn.valid = false;
+                        unit.form.side_pane.OnChangeProcessD20Topmenu(0);
+                },
+                'Tools':() => {
+                        ui.op_setup_btn.valid = false;
+                        ui.tools_btn.valid = true;
+                        ui.beads_btn.valid = false;
+                        ui.pilots_btn.valid = false;
+                        ui.lube_btn.valid = false;
+                        ui.pressure_btn.valid = false;
+                        ui.ref_btn.valid = false;
+                        unit.form.side_pane.OnChangeProcessD20Topmenu(1);
+                },
+                'Beads':() => {
+                        ui.op_setup_btn.valid = false;
+                        ui.tools_btn.valid = false;
+                        ui.beads_btn.valid = true;
+                        ui.pilots_btn.valid = false;
+                        ui.lube_btn.valid = false;
+                        ui.pressure_btn.valid = false;
+                        ui.ref_btn.valid = false;
+                        unit.form.side_pane.OnChangeProcessD20Topmenu(2);
+                },
+                'Pilots':() => {
+                        ui.op_setup_btn.valid = false;
+                        ui.tools_btn.valid = false;
+                        ui.beads_btn.valid = false;
+                        ui.pilots_btn.valid = true;
+                        ui.lube_btn.valid = false;
+                        ui.pressure_btn.valid = false;
+                        ui.ref_btn.valid = false;
+                        unit.form.side_pane.OnChangeProcessD20Topmenu(3);
+                },
+                'Lube':() => {
+                        ui.op_setup_btn.valid = false;
+                        ui.tools_btn.valid = false;
+                        ui.beads_btn.valid = false;
+                        ui.pilots_btn.valid = false;
+                        ui.lube_btn.valid = true;
+                        ui.pressure_btn.valid = false;
+                        ui.ref_btn.valid = false;
+                        unit.form.side_pane.OnChangeProcessD20Topmenu(4);
+                },
+                'Pressure':() => {
+                        ui.op_setup_btn.valid = false;
+                        ui.tools_btn.valid = false;
+                        ui.beads_btn.valid = false;
+                        ui.pilots_btn.valid = false;
+                        ui.lube_btn.valid = false;
+                        ui.pressure_btn.valid = true;
+                        ui.ref_btn.valid = false;
+                        unit.form.side_pane.OnChangeProcessD20Topmenu(5);
+                },
+                'Ref':() => {
+                        ui.op_setup_btn.valid = false;
+                        ui.tools_btn.valid = false;
+                        ui.beads_btn.valid = false;
+                        ui.pilots_btn.valid = false;
+                        ui.lube_btn.valid = false;
+                        ui.pressure_btn.valid = false;
+                        ui.ref_btn.valid = true;
+                        unit.form.side_pane.OnChangeProcessD20Topmenu(6);
+                }
+                
+        };
+        return difModel[Idx]();
+}
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 120 - 0
42409006-杨永泉/AF/js/process_pl_pane.js

@@ -0,0 +1,120 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnPressModelShow();
+        OnDrawbeadModelShow();
+        OnDefinitionModelShow();
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnPressModelHide(){
+        ui.press_down_btn.visible = false;
+        ui.press_right_btn.visible = true;
+        ui.press_stk.visible = false;
+}
+
+function OnPressModelShow(){
+        ui.press_down_btn.visible = true;
+        ui.press_right_btn.visible = false;
+        ui.press_stk.visible = true;
+}
+
+function OnDrawbeadModelHide(){
+        ui.drawbead_down_btn.visible = false;
+        ui.drawbead_right_btn.visible = true;
+        ui.drawbead_stk.visible = false;
+}
+
+function OnDrawbeadModelShow(){
+        ui.drawbead_down_btn.visible = true;
+        ui.drawbead_right_btn.visible = false;
+        ui.drawbead_stk.visible = true;
+}
+
+function OnDefinitionModelHide(){
+        ui.definition_down_btn.visible = false;
+        ui.definition_right_btn.visible = true;
+        ui.definition_stk.visible = false;
+}
+
+function OnDefinitionModelShow(){
+        ui.definition_down_btn.visible = true;
+        ui.definition_right_btn.visible = false;
+        ui.definition_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 97 - 0
42409006-杨永泉/AF/js/process_topmenu_pane.js

@@ -0,0 +1,97 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnChangeStep(Idx){
+        const difModel = {
+                'PL':() => {
+                        ui.pl_btn.valid = true;
+                        ui.d_20_btn.valid = false;
+                        unit.form.side_pane.OnChangeProcessTopmenu(0);
+                },
+                'D_20':() => {
+                        ui.pl_btn.valid = false;
+                        ui.d_20_btn.valid = true;
+                        unit.form.side_pane.OnChangeProcessTopmenu(1);
+                }
+        };
+        return difModel[Idx]();
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 327 - 0
42409006-杨永泉/AF/js/side_pane_pane.js

@@ -0,0 +1,327 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        ui.part_import.index = 1;
+        OnChangeModel('part');
+        ui.process_d_20_topmenu.visible = false;
+        ui.dieface_stk.index = 1;
+        
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+function OnProcessPunch(){
+        unit.form.process_D_20_ToolsDefine.Show();
+}
+function OnProcessBinder(){
+        unit.form.process_D_20_ToolsBinder.Show();
+}
+function OnBlankOutlineCopy(){
+        unit.form.blank_Outline_Copyform.Show();
+}
+function OnProcessBeadCopy(){
+        unit.form.process_D_20_beads_copyform.Show();
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnChangeSimulationTopmenu(Idx){
+        const difStep = {
+                '0':() => {
+                        ui.simulation_stk.index = 0;
+                        ui.simulation_control_topmune_model.visible = true;
+                },
+                '1':() => {
+                        ui.simulation_stk.index = 1;
+                        ui.simulation_control_topmune_model.visible = false;
+                },
+                '2':() => {
+                        ui.simulation_stk.index = 2;
+                        ui.simulation_control_topmune_model.visible = false;
+                },
+                '3':() => {
+                        ui.simulation_stk.index = 3;
+                        ui.simulation_control_topmune_model.visible = false;
+                }
+        };
+        difStep[Idx]();
+}
+function OnChangeDieTopmenu(Idx){
+        const difStep = {
+                'M':() => {
+                        ui.m_btn.valid = true;
+                        ui.d_btn.valid = false;
+                        ui.dieface_stk.index = 0;
+                },
+                'D':() => {
+                        ui.m_btn.valid = false;
+                        ui.d_btn.valid = true;
+                        ui.dieface_stk.index = 1;
+                }
+        };
+        difStep[Idx]();
+}
+function OnChangeSimulationControlTopmenu(Idx){
+        const difStep = {
+                '0':() => {
+                        ui.simulation_control_stk.index = 0;
+                       
+                },
+                '1':() => {
+                        ui.simulation_control_stk.index = 1;
+                        
+                },
+                '2':() => {
+                        ui.simulation_control_stk.index = 2;
+                       
+                },
+                '3':() => {
+                        ui.simulation_control_stk.index = 3;
+                       
+                }
+        };
+        difStep[Idx]();
+}
+function OnChangeProcessD20Topmenu(Idx){
+        const difStep = {
+                '0':() => {
+                        ui.D_20_topmenu_stk.index = 0;
+                        ui.process_d_20_topmenu.visible = true;
+                },
+                '1':() => {
+                        ui.D_20_topmenu_stk.index = 1;
+                        ui.process_d_20_topmenu.visible = true;
+                },
+                '2':() => {
+                        ui.D_20_topmenu_stk.index = 2;
+                        ui.process_d_20_topmenu.visible = true;
+                },
+                '3':() => {
+                        ui.D_20_topmenu_stk.index = 3;
+                        ui.process_d_20_topmenu.visible = true;
+                },
+                '4':() => {
+                        ui.D_20_topmenu_stk.index = 4;
+                        ui.process_d_20_topmenu.visible = true;
+                },
+                '5':() => {
+                        ui.D_20_topmenu_stk.index = 5;
+                        ui.process_d_20_topmenu.visible = true;
+                },
+                '6':() => {
+                        ui.D_20_topmenu_stk.index = 6;
+                        ui.process_d_20_topmenu.visible = true;
+                }
+        };
+        difStep[Idx]();
+}
+function OnChangeProcessTopmenu(Idx){
+        const difStep = {
+                '0':() => {
+                        ui.process_stk.index = 0;
+                        ui.process_d_20_topmenu.visible = false;
+                },
+                '1':() => {
+                        ui.process_stk.index = 1;
+                        ui.process_d_20_topmenu.visible = true;
+                }
+        };
+        difStep[Idx]();
+}
+function OnChangeDiefaceTopmenu(Idx){
+        const difStep = {
+                '0':() => {ui.dieface_stk.index = 0;},
+                '1':() => {ui.dieface_stk.index = 1;},
+                '2':() => {ui.dieface_stk.index = 2;},
+                '3':() => {ui.dieface_stk.index = 3;},
+                '4':() => {ui.dieface_stk.index = 4;},
+                '5':() => {ui.dieface_stk.index = 5;}
+        };
+        difStep[Idx]();
+}
+function OnChangePlanTopmenu(Idx){
+        const difStep = {
+                '0':() => {ui.plan_topmenu_stk.index = 0;},
+                '1':() => {ui.plan_topmenu_stk.index = 1;},
+                '2':() => {ui.plan_topmenu_stk.index = 2;},
+                '3':() => {ui.plan_topmenu_stk.index = 3;},
+                '4':() => {ui.plan_topmenu_stk.index = 4;}
+        };
+        difStep[Idx]();
+}
+function createPlan(){
+        ui.Plan_stk.index = 1;
+        ui.plan_topmenu_stk.index = 1;
+}
+function createBlank(){
+        ui.Blank_stk.index = 1;
+        ui.plan_topmenu_stk.index = 0;
+}
+function OnOpenPartFile(){
+        var fname = ui.OpenFileDialog("Import File", unit.dir+"/", "(*.igs *.afd)");
+}
+function OnOpenToolFile(){
+        var fname = ui.OpenFileDialog("Import File", unit.dir+"/", "(*.igs)");
+}
+function OnChangeStep(Idx){
+        const difStep = {
+                '0':() => {ui.part_import.index = 0;},
+                '1':() => {ui.part_import.index = 1;},
+                '2':() => {ui.part_import.index = 2;},
+                '3':() => {ui.part_import.index = 3;},
+                '4':() => {ui.part_import.index = 4;},
+                '5':() => {ui.part_import.index = 5;},
+                '6':() => {ui.part_import.index = 6;}
+        };
+        difStep[Idx]();
+}
+function OnChangeModel(Idx){
+        const difModel = {
+                'part':() => {
+                        ui.part_btn.valid = true;
+                        ui.plan_btn.valid = false;
+                        ui.dieface_btn.valid = false;
+                        ui.blank_btn.valid = false;
+                        ui.process_btn.valid = false;
+                        ui.simulation_btn.valid = false;
+                        ui.evaluation_btn.valid = false;
+                        ui.stk_dif_model.index = 0;
+                },
+                'plan':() => {
+                        ui.part_btn.valid = false;
+                        ui.plan_btn.valid = true;
+                        ui.dieface_btn.valid = false;
+                        ui.blank_btn.valid = false;
+                        ui.process_btn.valid = false;
+                        ui.simulation_btn.valid = false;
+                        ui.evaluation_btn.valid = false;
+                        ui.stk_dif_model.index = 1;
+                },
+                'dieface':() => {
+                        ui.part_btn.valid = false;
+                        ui.plan_btn.valid = false;
+                        ui.dieface_btn.valid = true;
+                        ui.blank_btn.valid = false;
+                        ui.process_btn.valid = false;
+                        ui.simulation_btn.valid = false;
+                        ui.evaluation_btn.valid = false;
+                        ui.stk_dif_model.index = 2;
+                },
+                'blank':() => {
+                        ui.part_btn.valid = false;
+                        ui.plan_btn.valid = false;
+                        ui.dieface_btn.valid = false;
+                        ui.blank_btn.valid = true;
+                        ui.process_btn.valid = false;
+                        ui.simulation_btn.valid = false;
+                        ui.evaluation_btn.valid = false;
+                        ui.stk_dif_model.index = 3;
+                },
+                'process':() => {
+                        ui.part_btn.valid = false;
+                        ui.plan_btn.valid = false;
+                        ui.dieface_btn.valid = false;
+                        ui.blank_btn.valid = false;
+                        ui.process_btn.valid = true;
+                        ui.simulation_btn.valid = false;
+                        ui.evaluation_btn.valid = false;
+                        ui.stk_dif_model.index = 4;
+                },
+                'simulation':() => {
+                        ui.part_btn.valid = false;
+                        ui.plan_btn.valid = false;
+                        ui.dieface_btn.valid = false;
+                        ui.blank_btn.valid = false;
+                        ui.process_btn.valid = false;
+                        ui.simulation_btn.valid = true;
+                        ui.evaluation_btn.valid = false;
+                        ui.stk_dif_model.index = 5;
+                },
+                'evaluation':() => {
+                        ui.part_btn.valid = false;
+                        ui.plan_btn.valid = false;
+                        ui.dieface_btn.valid = false;
+                        ui.blank_btn.valid = false;
+                        ui.process_btn.valid = false;
+                        ui.simulation_btn.valid = false;
+                        ui.evaluation_btn.valid = true;
+                        ui.stk_dif_model.index = 6;
+                        unit.form.evaluation_splits.update();
+                }
+                
+        };
+        return difModel[Idx]();
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 147 - 0
42409006-杨永泉/AF/js/simulation_control_pane.js

@@ -0,0 +1,147 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        ui.listbox.value = ['Refinement Zone      0.22mm      30.00°      7'];
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnAdvancedModelHide();
+        OnElementModelShow();
+        OnTimeModelShow();
+        OnRefinementModelShow();
+        OnAccuracyModelShow();
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnAdvancedModelHide(){
+        ui.advanced_down_btn.visible = false;
+        ui.advanced_right_btn.visible = true;
+        ui.advanced_stk.visible = false;
+}
+
+function OnAdvancedModelShow(){
+        ui.advanced_down_btn.visible = true;
+        ui.advanced_right_btn.visible = false;
+        ui.advanced_stk.visible = true;
+}
+
+function OnElementModelHide(){
+        ui.element_down_btn.visible = false;
+        ui.element_right_btn.visible = true;
+        ui.element_stk.visible = false;
+}
+
+function OnElementModelShow(){
+        ui.element_down_btn.visible = true;
+        ui.element_right_btn.visible = false;
+        ui.element_stk.visible = true;
+}
+
+function OnTimeModelHide(){
+        ui.time_down_btn.visible = false;
+        ui.time_right_btn.visible = true;
+        ui.time_stk.visible = false;
+}
+
+function OnTimeModelShow(){
+        ui.time_down_btn.visible = true;
+        ui.time_right_btn.visible = false;
+        ui.time_stk.visible = true;
+}
+
+function OnRefinementModelHide(){
+        ui.Refinement_down_btn.visible = false;
+        ui.Refinement_right_btn.visible = true;
+        ui.Refinement_stk.visible = false;
+}
+
+function OnRefinementModelShow(){
+        ui.Refinement_down_btn.visible = true;
+        ui.Refinement_right_btn.visible = false;
+        ui.Refinement_stk.visible = true;
+}
+
+function OnAccuracyModelHide(){
+        ui.accuary_down_btn.visible = false;
+        ui.accuary_right_btn.visible = true;
+        ui.accuary_stk.visible = false;
+}
+
+function OnAccuracyModelShow(){
+        ui.accuary_down_btn.visible = true;
+        ui.accuary_right_btn.visible = false;
+        ui.accuary_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 114 - 0
42409006-杨永泉/AF/js/simulation_control_topmune_pane.js

@@ -0,0 +1,114 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnChangeStep(Idx){
+        const difModel = {
+                'Main':() => {
+                        ui.main_btn.valid = true;
+                        ui.results_btn.valid = false;
+                        ui.output_btn.valid = false;
+                        ui.misc_btn.valid = false;
+                        unit.form.side_pane.OnChangeSimulationControlTopmenu(0);
+                },
+                'Results':() => {
+                        ui.main_btn.valid = false;
+                        ui.results_btn.valid = true;
+                        ui.output_btn.valid = false;
+                        ui.misc_btn.valid = false;
+                        unit.form.side_pane.OnChangeSimulationControlTopmenu(1);
+                },
+                'Output':() => {
+                        ui.main_btn.valid = false;
+                        ui.results_btn.valid = false;
+                        ui.output_btn.valid = true;
+                        ui.misc_btn.valid = false;
+                        unit.form.side_pane.OnChangeSimulationControlTopmenu(2);
+                },
+                'Misc':() => {
+                        ui.main_btn.valid = false;
+                        ui.results_btn.valid = false;
+                        ui.output_btn.valid = false;
+                        ui.misc_btn.valid = true;
+                        unit.form.side_pane.OnChangeSimulationControlTopmenu(3);
+                }
+        };
+        return difModel[Idx]();
+}
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 136 - 0
42409006-杨永泉/AF/js/simulation_log_pane.js

@@ -0,0 +1,136 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        OnWarningModelHide();
+        OnMonitorModelHide();
+        OnLogModelShow();
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+function OnChangeModel(Idx){
+        const difModel = {
+                'job':() => {
+                        ui.job_btn.valid = true;
+                        ui.rea_btn.valid = false;
+                        //ui.stk_dif_model.index = 0;
+                },
+                'realizations':() => {
+                        ui.job_btn.valid = false;
+                        ui.rea_btn.valid = true;
+                        //ui.stk_dif_model.index = 1;
+                }
+                
+        };
+        return difModel[Idx]();
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnMonitorModelHide(){
+        ui.monitor_down_btn.visible = false;
+        ui.monitor_right_btn.visible = true;
+        ui.monitor_stk.visible = false;
+}
+
+function OnMonitorModelShow(){
+        ui.monitor_down_btn.visible = true;
+        ui.monitor_right_btn.visible = false;
+        ui.monitor_stk.visible = true;
+}
+
+function OnWarningModelHide(){
+        ui.warnings_down_btn.visible = false;
+        ui.warnings_right_btn.visible = true;
+        ui.warnings_stk.visible = false;
+}
+
+function OnWarningModelShow(){
+        ui.warnings_down_btn.visible = true;
+        ui.warnings_right_btn.visible = false;
+        ui.warnings_stk.visible = true;
+}
+
+function OnLogModelHide(){
+        ui.log_down_btn.visible = false;
+        ui.log_right_btn.visible = true;
+        ui.log_stk.visible = false;
+}
+
+function OnLogModelShow(){
+        ui.log_down_btn.visible = true;
+        ui.log_right_btn.visible = false;
+        ui.log_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 94 - 0
42409006-杨永泉/AF/js/simulation_output_pane.js

@@ -0,0 +1,94 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview)
+{
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview)
+{
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm()
+{
+}
+
+function OnException(err)
+{
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para)
+{
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath)
+{
+}
+
+function PUI(cb)
+{
+        if(pui)cb();
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb)
+{
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter)
+{
+    if(typeof(__DeclareVariable) == 'function')
+    {
+	__DeclareVariable(name, setter, getter);
+    }
+}
+
+function CW_DeclareOuterVariable(name)
+{
+    if(typeof(__DeclareOuterVariable) == 'function')
+    {
+	__DeclareOuterVariable(name);
+    }
+}

+ 94 - 0
42409006-杨永泉/AF/js/simulation_results_pane.js

@@ -0,0 +1,94 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview)
+{
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview)
+{
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm()
+{
+}
+
+function OnException(err)
+{
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para)
+{
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath)
+{
+}
+
+function PUI(cb)
+{
+        if(pui)cb();
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb)
+{
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter)
+{
+    if(typeof(__DeclareVariable) == 'function')
+    {
+	__DeclareVariable(name, setter, getter);
+    }
+}
+
+function CW_DeclareOuterVariable(name)
+{
+    if(typeof(__DeclareOuterVariable) == 'function')
+    {
+	__DeclareOuterVariable(name);
+    }
+}

+ 109 - 0
42409006-杨永泉/AF/js/simulation_start_pane.js

@@ -0,0 +1,109 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+        ui.list_one.table = [["Host/Queue", "Cores", "Slots", "Waiting"], ["Localhost", "0/4"], ["Queue1"]];
+        ui.list_one.head_size = [0, 20, 10, 40];
+        ui.list_two.table = [["No.", "Job Name", "Owner", "Type"]];
+        ui.list_two.head_size = [20, 0, 10, 40];
+        OnBackModelShow();
+        OnNoqueueModelShow();
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+
+function OnBackModelHide(){
+        ui.back_down_btn.visible = false;
+        ui.back_right_btn.visible = true;
+        ui.back_stk.visible = false;
+}
+
+function OnBackModelShow(){
+        ui.back_down_btn.visible = true;
+        ui.back_right_btn.visible = false;
+        ui.back_stk.visible = true;
+}
+
+function OnNoqueueModelHide(){
+        ui.Noqueue_down_btn.visible = false;
+        ui.Noqueue_right_btn.visible = true;
+        ui.Noqueue_stk.visible = false;
+}
+
+function OnNoqueueModelShow(){
+        ui.Noqueue_down_btn.visible = true;
+        ui.Noqueue_right_btn.visible = false;
+        ui.Noqueue_stk.visible = true;
+}
+
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

+ 113 - 0
42409006-杨永泉/AF/js/simulation_topmenu_pane.js

@@ -0,0 +1,113 @@
+////////////////////////////////////////////////////////////////////////////
+// System Pre-define Functions
+// 95099372-ef3e-11ea-9c81-bf848405c62e
+
+//Callback of data preparation stage before UI is fully loaded.
+function OnInitializeData(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+//Callback after UI is fully loaded and displayed.
+function OnReady(reload, preview) {
+    
+        PUI(()=>{
+                //you can access the 'ui' namespace in the parent form using the variable 'pui' here.
+                //The 'pui' variable is valid in all functions of this document.
+                //For robustness, you'd better use 'PUI(cb);' to access 'pui' variable.
+	
+        });
+}
+
+function OnCloseForm() {
+}
+
+function OnException(err) {
+        //ui.MessageBox('Error', '' + err, MessageBox.Icon.Critical, MessageBox.Button.Ok);
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Callback Functions.
+// 641a254c-ef3e-11ea-bc8a-379bb908bdd7
+function OnChangeStep(Idx){
+        const difModel = {
+                'Control':() => {
+                        ui.control_btn.valid = true;
+                        ui.setup_btn.valid = false;
+                        ui.start_btn.valid = false;
+                        ui.log_btn.valid = false;
+                        unit.form.side_pane.OnChangeSimulationTopmenu(0);
+                },
+                'Setup':() => {
+                        ui.control_btn.valid = false;
+                        ui.setup_btn.valid = true;
+                        ui.start_btn.valid = false;
+                        ui.log_btn.valid = false;
+                        unit.form.side_pane.OnChangeSimulationTopmenu(1);
+                },
+                'Start':() => {
+                        ui.control_btn.valid = false;
+                        ui.setup_btn.valid = false;
+                        ui.start_btn.valid = true;
+                        ui.log_btn.valid = false;
+                        unit.form.side_pane.OnChangeSimulationTopmenu(2);
+                },
+                'Log':() => {
+                        ui.control_btn.valid = false;
+                        ui.setup_btn.valid = false;
+                        ui.start_btn.valid = false;
+                        ui.log_btn.valid = true;
+                        unit.form.side_pane.OnChangeSimulationTopmenu(3);
+                }
+        };
+        return difModel[Idx]();
+}
+//The message corresponding callback executed by the docker pane.
+// when calling [side_pane].fireEvent(type,para) in the main form.
+function OnParentDockerMessage(type, para) {
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Utils Functions.
+// 6c165ad6-ef3e-11ea-987c-b761a131c2fe
+
+function onDragFile(filepath) {
+}
+
+function PUI(cb) {
+        if(pui){cb();}
+}
+
+/*Usage of BLOCK_EVENT
+        BLOCK_EVENT(()=>{
+                ui.[name].[var] = ...;
+        });
+*/
+
+function BLOCK_EVENT(cb) {
+        ui.block_event = true;
+        
+        cb();
+        
+        ui.block_event = false;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// template codes for cw callback js.
+
+function CW_DeclareVariable(name, setter, getter) {
+        if(typeof(__DeclareVariable) === 'function') {
+                __DeclareVariable(name, setter, getter);
+        }
+}
+
+function CW_DeclareOuterVariable(name) {
+        if(typeof(__DeclareOuterVariable) === 'function') {
+                __DeclareOuterVariable(name);
+        }
+}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 10160 - 0
42409006-杨永泉/AF/kul/Material_Editor_View.kul


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1216 - 0
42409006-杨永泉/AF/kul/blank_Outline.kul


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1646 - 0
42409006-杨永泉/AF/kul/blank_Outline_Copyform.kul


+ 203 - 0
42409006-杨永泉/AF/kul/blank_create.kul

@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="blank_create" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x9b8a4c04-0x5c5b-0x4442-0x8b-0xa1-0xa3-0x96-0x37-0xce-0xb5-0xae</property>
+  <widget type="form" name="blank_create_pane">
+    <property name="id">0x74b5993b-0xd1b6-0x4cad-0xb7-0x0f-0xf1-0x67-0x46-0xe4-0xa6-0xb5</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">blank_create_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="vbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_height">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="space">
+        <property name="size">20</property>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="bitmap">
+          <property name="name"/>
+          <property name="picture">createflatblank.png</property>
+          <property name="autoPlay">false</property>
+          <property name="id_alias">12</property>
+          <property name="width">130</property>
+          <property name="height">37</property>
+          <property name="adjust">fixed</property>
+          <property name="fit_origin_size">false</property>
+          <property name="transparent_background">false</property>
+          <property name="mouse_trace">false</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="simple_bind"/>
+          <property name="handle_bind"/>
+          <property name="onLButtonDown">OnCreateBlank()</property>
+          <property name="onLButtonUp"/>
+          <property name="onMButtonDown"/>
+          <property name="onMButtonUp"/>
+          <property name="onRButtonDown"/>
+          <property name="onRButtonUp"/>
+          <property name="onMouseMove"/>
+          <property name="onResize"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+      </widget>
+      <widget type="space">
+        <property name="size">20</property>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="bitmap">
+          <property name="name"/>
+          <property name="picture">createflatblankfordie.png</property>
+          <property name="autoPlay">false</property>
+          <property name="id_alias">13</property>
+          <property name="width">130</property>
+          <property name="height">37</property>
+          <property name="adjust">fixed</property>
+          <property name="fit_origin_size">false</property>
+          <property name="transparent_background">false</property>
+          <property name="mouse_trace">false</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="simple_bind"/>
+          <property name="handle_bind"/>
+          <property name="onLButtonDown">OnCreatBlankDie()</property>
+          <property name="onLButtonUp"/>
+          <property name="onMButtonDown"/>
+          <property name="onMButtonUp"/>
+          <property name="onRButtonDown"/>
+          <property name="onRButtonUp"/>
+          <property name="onMouseMove"/>
+          <property name="onResize"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+      </widget>
+      <widget type="space">
+        <property name="size">20</property>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="bitmap">
+          <property name="name"/>
+          <property name="picture">create_predeformed_blank.png</property>
+          <property name="autoPlay">false</property>
+          <property name="id_alias">14</property>
+          <property name="width">130</property>
+          <property name="height">37</property>
+          <property name="adjust">fixed</property>
+          <property name="fit_origin_size">false</property>
+          <property name="transparent_background">false</property>
+          <property name="mouse_trace">false</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="simple_bind"/>
+          <property name="handle_bind"/>
+          <property name="onLButtonDown"/>
+          <property name="onLButtonUp"/>
+          <property name="onMButtonDown"/>
+          <property name="onMButtonUp"/>
+          <property name="onRButtonDown"/>
+          <property name="onRButtonUp"/>
+          <property name="onMouseMove"/>
+          <property name="onResize"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+      </widget>
+      <widget type="space">
+        <property name="size">20</property>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="bitmap">
+          <property name="name"/>
+          <property name="picture">create_Pre_blank.png</property>
+          <property name="autoPlay">false</property>
+          <property name="id_alias">15</property>
+          <property name="width">130</property>
+          <property name="height">37</property>
+          <property name="adjust">fixed</property>
+          <property name="fit_origin_size">false</property>
+          <property name="transparent_background">false</property>
+          <property name="mouse_trace">false</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="simple_bind"/>
+          <property name="handle_bind"/>
+          <property name="onLButtonDown"/>
+          <property name="onLButtonUp"/>
+          <property name="onMButtonDown"/>
+          <property name="onMButtonUp"/>
+          <property name="onRButtonDown"/>
+          <property name="onRButtonUp"/>
+          <property name="onMouseMove"/>
+          <property name="onResize"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

+ 173 - 0
42409006-杨永泉/AF/kul/blank_topmenu.kul

@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="blank_topmenu" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x73c5e349-0xeeae-0x4239-0x90-0x12-0x48-0xe4-0x43-0xfc-0x6a-0x1b</property>
+  <widget type="form" name="blank_topmenu_pane">
+    <property name="id">0x5902c48d-0xbadb-0x4c55-0xb3-0x4b-0x51-0xbb-0x0c-0x7b-0xc2-0x72</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">blank_topmenu_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="hbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_width">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="pushbutton">
+        <property name="name">outline_btn</property>
+        <property name="label">Outline</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">24</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">3</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Outline')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">embed_btn</property>
+        <property name="label">Embed/Nest</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">39</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">5</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Embed')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">blank_btn</property>
+        <property name="label">Blank</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">18</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">false</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">7</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Blank')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name"/>
+        <property name="label"/>
+        <property name="tip"/>
+        <property name="bitmap">关闭.png</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">15</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">false</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">9</property>
+        <property name="visible">true</property>
+        <property name="onClick"/>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet"/>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 7904 - 0
42409006-杨永泉/AF/kul/cw_topmenu.kul


+ 922 - 0
42409006-杨永泉/AF/kul/dieface_modify.kul

@@ -0,0 +1,922 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="dieface_modify" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x7e931124-0xb23c-0x4100-0x8a-0xda-0x9d-0x48-0x8e-0x9f-0x4c-0xdd</property>
+  <widget type="form" name="dieface_modify_pane">
+    <property name="id">0x24c85c93-0x5f77-0x461e-0x85-0x36-0x63-0x30-0xca-0x58-0x18-0x30</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">false</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">dieface_modify_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="hbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_width">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="vbox">
+        <property name="adjust">vertical</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_height">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="separator">
+          <property name="id_alias">6</property>
+          <property name="margin">1</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+        </widget>
+        <widget type="hbox">
+          <property name="adjust">horizontal</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="label">
+            <property name="name"/>
+            <property name="text">Controls</property>
+            <property name="tip"/>
+            <property name="id_alias">14</property>
+            <property name="width">30</property>
+            <property name="height">8</property>
+            <property name="adjust">fixed</property>
+            <property name="auto_width">false</property>
+            <property name="align">left</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="handle_bind"/>
+            <property name="simple_bind"/>
+            <property name="visible_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+        </widget>
+        <widget type="separator">
+          <property name="id_alias">8</property>
+          <property name="margin">1</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+        </widget>
+        <widget type="listbox">
+          <property name="name"/>
+          <property name="data">part</property>
+          <property name="width">50</property>
+          <property name="height">50</property>
+          <property name="adjust">horizontal</property>
+          <property name="flat">false</property>
+          <property name="type">list</property>
+          <property name="icon_size">54</property>
+          <property name="icon_hint">30</property>
+          <property name="icon_flow">horizontal</property>
+          <property name="icon_wrap">true</property>
+          <property name="image_list">development1,package1</property>
+          <property name="id_alias">9</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="simple_bind"/>
+          <property name="list_bind"/>
+          <property name="index1_bind"/>
+          <property name="enable_bind"/>
+          <property name="visible_bind"/>
+          <property name="onChange"/>
+          <property name="onRightClick"/>
+          <property name="onDoubleClick"/>
+          <property name="onContentMenu"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+        <widget type="hbox">
+          <property name="adjust">horizontal</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="pushbutton">
+            <property name="name"/>
+            <property name="label"/>
+            <property name="tip"/>
+            <property name="bitmap">leftmodifyTrim.png</property>
+            <property name="bitmap_align">left</property>
+            <property name="width">15</property>
+            <property name="height">12</property>
+            <property name="adjust">fixed</property>
+            <property name="can_check">false</property>
+            <property name="default">false</property>
+            <property name="flat">true</property>
+            <property name="flat_radio">false</property>
+            <property name="gray">false</property>
+            <property name="toolbutton">false</property>
+            <property name="id_alias">15</property>
+            <property name="visible">true</property>
+            <property name="onClick"/>
+            <property name="onCheck"/>
+            <property name="onContentMenu"/>
+            <property name="shadow">false</property>
+            <property name="shadow_type">soft</property>
+            <property name="enable_bind"/>
+            <property name="simple_bind"/>
+            <property name="valid_bind"/>
+            <property name="visible_bind"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="pushbutton">
+            <property name="name"/>
+            <property name="label"/>
+            <property name="tip"/>
+            <property name="bitmap">arrow_down.bmp</property>
+            <property name="bitmap_align">left</property>
+            <property name="width">8</property>
+            <property name="height">12</property>
+            <property name="adjust">fixed</property>
+            <property name="can_check">false</property>
+            <property name="default">false</property>
+            <property name="flat">true</property>
+            <property name="flat_radio">false</property>
+            <property name="gray">false</property>
+            <property name="toolbutton">false</property>
+            <property name="id_alias">16</property>
+            <property name="visible">true</property>
+            <property name="onClick"/>
+            <property name="onCheck"/>
+            <property name="onContentMenu"/>
+            <property name="shadow">false</property>
+            <property name="shadow_type">soft</property>
+            <property name="enable_bind"/>
+            <property name="simple_bind"/>
+            <property name="valid_bind"/>
+            <property name="visible_bind"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="separator">
+            <property name="id_alias">17</property>
+            <property name="margin">0</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+          </widget>
+          <widget type="pushbutton">
+            <property name="name"/>
+            <property name="label"/>
+            <property name="tip"/>
+            <property name="bitmap">关闭.png</property>
+            <property name="bitmap_align">left</property>
+            <property name="width">15</property>
+            <property name="height">12</property>
+            <property name="adjust">fixed</property>
+            <property name="can_check">false</property>
+            <property name="default">false</property>
+            <property name="flat">true</property>
+            <property name="flat_radio">false</property>
+            <property name="gray">false</property>
+            <property name="toolbutton">false</property>
+            <property name="id_alias">18</property>
+            <property name="visible">true</property>
+            <property name="onClick"/>
+            <property name="onCheck"/>
+            <property name="onContentMenu"/>
+            <property name="shadow">false</property>
+            <property name="shadow_type">soft</property>
+            <property name="enable_bind"/>
+            <property name="simple_bind"/>
+            <property name="valid_bind"/>
+            <property name="visible_bind"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="separator">
+            <property name="id_alias">19</property>
+            <property name="margin">0</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+        <widget type="separator">
+          <property name="id_alias">11</property>
+          <property name="margin">0</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+      </widget>
+      <widget type="separator">
+        <property name="id_alias">4</property>
+        <property name="margin">2</property>
+        <property name="gray">false</property>
+        <property name="visible">true</property>
+      </widget>
+      <widget type="stack">
+        <property name="name"/>
+        <property name="adjust">fixed</property>
+        <property name="margin">3</property>
+        <property name="border">flat</property>
+        <property name="label">Group Box</property>
+        <property name="index1_bind"/>
+        <property name="hightlight">false</property>
+        <widget type="vbox">
+          <property name="adjust">horizontal</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_height">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="hbox">
+            <property name="adjust">horizontal</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text">Add Module</property>
+              <property name="tip"/>
+              <property name="id_alias">27</property>
+              <property name="width">40</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">center</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Trim</property>
+                <property name="tip"/>
+                <property name="id_alias">37</property>
+                <property name="width">25</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">false</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">leftmodifyTrim.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">39</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Fill Holes</property>
+                <property name="tip"/>
+                <property name="id_alias">41</property>
+                <property name="width">30</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">false</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">leftpartmodifyall.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">false</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">43</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">leftpartmodifysingle.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">44</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Outer Fill</property>
+                <property name="tip"/>
+                <property name="id_alias">46</property>
+                <property name="width">30</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">false</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">dieface_automatic.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">48</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">leftpartmodifymanual.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">49</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">dieface_end.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">50</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">dieface_double.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">51</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Modify</property>
+                <property name="tip"/>
+                <property name="id_alias">53</property>
+                <property name="width">30</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">false</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">leftpartmodifydetail.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">55</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">leftpartmodifymorph.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">56</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">leftpartmodifyradius.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">57</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">leftpartmodifypreform.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">58</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">dieface_insert.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">60</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">leftpartmodifyunfold.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">20</property>
+                <property name="height">28</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">61</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

+ 242 - 0
42409006-杨永泉/AF/kul/dieface_topmenu.kul

@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="dieface_topmenu" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0xc7d8a2d2-0x0e4b-0x49c1-0xbf-0x20-0x99-0x5c-0x49-0x99-0xae-0xbe</property>
+  <widget type="form" name="dieface_topmenu_pane">
+    <property name="id">0xf38e3a2a-0xb18d-0x4781-0x8f-0xd1-0x1d-0xf8-0x6c-0x40-0x2b-0x7f</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">dieface_topmenu_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="hbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_width">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="pushbutton">
+        <property name="name">tip_btn</property>
+        <property name="label">Tip</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">13</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">3</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Tip')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">modify_btn</property>
+        <property name="label">Modify</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">24</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">5</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Modify')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">binder_btn</property>
+        <property name="label">Binder</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">22</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">7</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Binder')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">addendum_btn</property>
+        <property name="label">Addendum</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">34</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">9</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Addendum')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">modify2_btn</property>
+        <property name="label">Modify</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">24</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">11</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Modify2')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">trimchk_btn</property>
+        <property name="label">Trimchk</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">26</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">false</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">13</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Trimchk')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1097 - 0
42409006-杨永泉/AF/kul/evaluation_splits.kul


+ 424 - 0
42409006-杨永泉/AF/kul/evaluation_topmenu.kul

@@ -0,0 +1,424 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="evaluation_topmenu" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x14d996b9-0x9044-0x4f55-0xaa-0x72-0xc0-0x83-0xf6-0xe6-0x97-0x20</property>
+  <widget type="form" name="evaluation_topmenu_pane">
+    <property name="id">0x077e8350-0xe5f3-0x4d9a-0x94-0xd5-0x7b-0x5f-0x9e-0x07-0x3f-0x37</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">evaluation_topmenu_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="vbox">
+      <property name="adjust">auto</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_height">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="hbox">
+        <property name="adjust">horizontal</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="pushbutton">
+          <property name="name">splits_btn</property>
+          <property name="label">Splits</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">18</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">5</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeModel('splits')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">wrinkles_btn</property>
+          <property name="label">Wrinkles</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">27</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">7</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeModel('wrinkles')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">drawin_btn</property>
+          <property name="label">Draw-In</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">26</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">9</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeModel('drawin')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">skiplines_btn</property>
+          <property name="label">Skip Lines</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">31</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">11</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeModel('skiplines')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">springback_btn</property>
+          <property name="label">Springback</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">35</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">13</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeModel('springback')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">surface_btn</property>
+          <property name="label">Surface</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">25</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">15</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeModel('surface')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">horizontal</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="pushbutton">
+          <property name="name">prodperform_btn</property>
+          <property name="label">Prod Perform</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">41</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">17</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangedModel('prodperform')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">forces_btn</property>
+          <property name="label">Forces</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">23</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">19</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangedModel('forces')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">wear_btn</property>
+          <property name="label">Wear</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">19</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">21</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangedModel('wear')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">resolve_btn</property>
+          <property name="label">Resolve</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">25</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">23</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangedModel('resolve')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">settings_btn</property>
+          <property name="label">Settings</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">26</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">25</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangedModel('settings')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

+ 284 - 0
42409006-杨永泉/AF/kul/kul.entry.xml

@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="entry" name="AF" xmlns="http://www.kingmesh.com">
+  <pkgid name="mainfrm">
+    <location>mainfrm.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="cw_topmenu">
+    <location>cw_topmenu.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="side_pane">
+    <location>side_pane.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="part">
+    <location>part.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="part_import">
+    <location>part_import.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="part_tip">
+    <location>part_tip.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="part_material">
+    <location>part_material.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="Material_Editor_View">
+    <location>Material_Editor_View.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="plan_create">
+    <location>plan_create.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="plan_topmenu">
+    <location>plan_topmenu.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="plan_production">
+    <location>plan_production.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="plan_plan">
+    <location>plan_plan.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="dieface_topmenu">
+    <location>dieface_topmenu.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="dieface_modify">
+    <location>dieface_modify.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="blank_create">
+    <location>blank_create.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="blank_topmenu">
+    <location>blank_topmenu.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="blank_Outline">
+    <location>blank_Outline.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="process_topmenu">
+    <location>process_topmenu.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="process_pl">
+    <location>process_pl.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="process_D_20">
+    <location>process_D_20.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="process_D_20_topmenu">
+    <location>process_D_20_topmenu.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="process_D_20_beads">
+    <location>process_D_20_beads.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="simulation_topmenu">
+    <location>simulation_topmenu.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="simulation_control">
+    <location>simulation_control.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="simulation_results">
+    <location>simulation_results.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="simulation_control_topmune">
+    <location>simulation_control_topmune.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="simulation_output">
+    <location>simulation_output.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="simulation_start">
+    <location>simulation_start.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="evaluation_topmenu">
+    <location>evaluation_topmenu.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="evaluation_splits">
+    <location>evaluation_splits.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="simulation_log">
+    <location>simulation_log.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="process_D_20_beads_copyform">
+    <location>process_D_20_beads_copyform.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="blank_Outline_Copyform">
+    <location>blank_Outline_Copyform.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="process_D_20_ToolsDefine">
+    <location>process_D_20_ToolsDefine.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <pkgid name="process_D_20_ToolsBinder">
+    <location>process_D_20_ToolsBinder.kul</location>
+    <value>nil</value>
+  </pkgid>
+  <formid name="mainfrm_pane">
+    <location>mainfrm.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="cw_topmenu_pane">
+    <location>cw_topmenu.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="side_pane_pane">
+    <location>side_pane.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="part_pane">
+    <location>part.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="part_import_pane">
+    <location>part_import.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="part_tip_pane">
+    <location>part_tip.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="part_material_pane">
+    <location>part_material.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="Material_Editor_View_pane">
+    <location>Material_Editor_View.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="plan_create_pane">
+    <location>plan_create.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="plan_topmenu_pane">
+    <location>plan_topmenu.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="plan_production_pane">
+    <location>plan_production.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="plan_plan_pane">
+    <location>plan_plan.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="dieface_topmenu_pane">
+    <location>dieface_topmenu.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="dieface_modify_pane">
+    <location>dieface_modify.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="blank_create_pane">
+    <location>blank_create.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="blank_topmenu_pane">
+    <location>blank_topmenu.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="blank_Outline_pane">
+    <location>blank_Outline.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="process_topmenu_pane">
+    <location>process_topmenu.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="process_pl_pane">
+    <location>process_pl.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="process_D_20_pane">
+    <location>process_D_20.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="process_D_20_topmenu_pane">
+    <location>process_D_20_topmenu.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="process_D_20_beads_pane">
+    <location>process_D_20_beads.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="simulation_topmenu_pane">
+    <location>simulation_topmenu.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="simulation_control_pane">
+    <location>simulation_control.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="simulation_results_pane">
+    <location>simulation_results.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="simulation_control_topmune_pane">
+    <location>simulation_control_topmune.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="simulation_output_pane">
+    <location>simulation_output.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="simulation_start_pane">
+    <location>simulation_start.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="evaluation_topmenu_pane">
+    <location>evaluation_topmenu.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="evaluation_splits_pane">
+    <location>evaluation_splits.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="simulation_log_pane">
+    <location>simulation_log.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="process_D_20_beads_copyform_pane">
+    <location>process_D_20_beads_copyform.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="blank_Outline_Copyform_pane">
+    <location>blank_Outline_Copyform.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="process_D_20_ToolsDefine_pane">
+    <location>process_D_20_ToolsDefine.kul</location>
+    <value>nil</value>
+  </formid>
+  <formid name="process_D_20_ToolsBinder_pane">
+    <location>process_D_20_ToolsBinder.kul</location>
+    <value>nil</value>
+  </formid>
+  <default>simulation_results</default>
+</kul_pkg>

+ 75 - 0
42409006-杨永泉/AF/kul/mainfrm.kul

@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="mainfrm" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x630d7730-0xc1c0-0x4f28-0xb3-0x74-0x22-0x97-0x13-0xe8-0xb3-0x94</property>
+  <widget type="form" name="mainfrm_pane">
+    <property name="id">0xc638c1d1-0x3030-0x4829-0x92-0x5f-0x81-0xef-0x78-0xba-0x69-0xf0</property>
+    <property name="style">popup</property>
+    <property name="title">MagicForm</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">false</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">mainfrm_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="vbox">
+      <property name="adjust">auto</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_height">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="composite">
+        <property name="name"/>
+        <property name="ref">cw_topmenu</property>
+        <property name="id_alias">3</property>
+        <property name="adjust">horizontal</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="visible">true</property>
+        <property name="enable">true</property>
+      </widget>
+      <widget type="glcanvas">
+        <property name="name"/>
+        <property name="id_alias">4</property>
+        <property name="width">180</property>
+        <property name="height">180</property>
+        <property name="adjust">auto</property>
+        <property name="gray">false</property>
+        <property name="visible">true</property>
+        <property name="onPickup"/>
+        <property name="onHighlight"/>
+        <property name="onContentMenu"/>
+        <property name="onLButtonDown"/>
+        <property name="onLButtonUp"/>
+        <property name="onMButtonDown"/>
+        <property name="onMButtonUp"/>
+        <property name="onRButtonDown"/>
+        <property name="onRButtonUp"/>
+        <property name="onMouseMove"/>
+        <property name="onBusy"/>
+        <property name="hightlight">false</property>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

+ 291 - 0
42409006-杨永泉/AF/kul/part.kul

@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="part" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x14b46485-0xc0f6-0x4a1b-0xb1-0x68-0x77-0xa9-0x51-0xf6-0x66-0x91</property>
+  <widget type="form" name="part_pane">
+    <property name="id">0xe6fbe055-0x34bc-0x4acc-0x82-0xf6-0xf9-0x69-0x17-0x1b-0x56-0x32</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">part_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="vbox">
+      <property name="adjust">auto</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_height">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="separator">
+        <property name="id_alias">3</property>
+        <property name="margin">1</property>
+        <property name="gray">false</property>
+        <property name="visible">true</property>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="pushbutton">
+          <property name="name">project_btn</property>
+          <property name="label">project</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">23</property>
+          <property name="height">11</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">5</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeStep('project')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">import_btn</property>
+          <property name="label">Import</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">22</property>
+          <property name="height">11</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">7</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeStep('import')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">tip_btn</property>
+          <property name="label">Tip</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">14</property>
+          <property name="height">11</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">9</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeStep('tip')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">material_btn</property>
+          <property name="label">Material</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">26</property>
+          <property name="height">11</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">11</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeStep('material')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">fillet_btn</property>
+          <property name="label">Fillet</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">16</property>
+          <property name="height">11</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">13</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeStep('fillet')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">modify_btn</property>
+          <property name="label">Modify</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">24</property>
+          <property name="height">11</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">true</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">15</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeStep('modify')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">3</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">formchk_btn</property>
+          <property name="label">Formchk</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">28</property>
+          <property name="height">11</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">true</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">17</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeStep(formchk)</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3073 - 0
42409006-杨永泉/AF/kul/part_import.kul


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2098 - 0
42409006-杨永泉/AF/kul/part_material.kul


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3590 - 0
42409006-杨永泉/AF/kul/part_tip.kul


+ 483 - 0
42409006-杨永泉/AF/kul/plan_create.kul

@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="plan_create" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0xf52d6533-0x3ef7-0x4d3c-0x8a-0xae-0xc2-0xda-0x40-0x65-0x14-0x82</property>
+  <widget type="form" name="plan_create_pane">
+    <property name="id">0xde213c64-0x9f2a-0x4f03-0xb7-0x23-0x64-0x1b-0x82-0xca-0x40-0x12</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">plan_create_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="vbox">
+      <property name="adjust">auto</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_height">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="vbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_height">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="vbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_height">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text">Peocess</property>
+              <property name="tip"/>
+              <property name="id_alias">17</property>
+              <property name="width">35</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">right</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">Empty Plan</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">true</property>
+              <property name="id_alias">18</property>
+              <property name="width">50</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">20</property>
+              <property name="width">35</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">Single Action Draw,Measurement</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">21</property>
+              <property name="width">120</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">23</property>
+              <property name="width">35</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">Single Action Draw,Trim,Measuremnet</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">24</property>
+              <property name="width">120</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">26</property>
+              <property name="width">35</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">Autoplan</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">27</property>
+              <property name="width">120</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">29</property>
+              <property name="width">35</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">Prog Die</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">30</property>
+              <property name="width">120</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+        </widget>
+        <widget type="vbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_height">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text">Press</property>
+              <property name="tip"/>
+              <property name="id_alias">32</property>
+              <property name="width">35</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">right</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">Generic</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">33</property>
+              <property name="width">50</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">35</property>
+              <property name="width">35</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">Select from Database</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">36</property>
+              <property name="width">120</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+        </widget>
+      </widget>
+      <widget type="separator">
+        <property name="id_alias">4</property>
+        <property name="margin">2</property>
+        <property name="gray">false</property>
+        <property name="visible">true</property>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="bitmap">
+          <property name="name"/>
+          <property name="picture">createplan.png</property>
+          <property name="autoPlay">false</property>
+          <property name="id_alias">9</property>
+          <property name="width">150</property>
+          <property name="height">40</property>
+          <property name="adjust">fixed</property>
+          <property name="fit_origin_size">false</property>
+          <property name="transparent_background">false</property>
+          <property name="mouse_trace">false</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="simple_bind"/>
+          <property name="handle_bind"/>
+          <property name="onLButtonDown">OnCreatePlan()</property>
+          <property name="onLButtonUp"/>
+          <property name="onMButtonDown"/>
+          <property name="onMButtonUp"/>
+          <property name="onRButtonDown"/>
+          <property name="onRButtonUp"/>
+          <property name="onMouseMove"/>
+          <property name="onResize"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1474 - 0
42409006-杨永泉/AF/kul/plan_plan.kul


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1609 - 0
42409006-杨永泉/AF/kul/plan_production.kul


+ 239 - 0
42409006-杨永泉/AF/kul/plan_topmenu.kul

@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="plan_topmenu" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0xc3c27afe-0x1765-0x4723-0xb8-0xc1-0xae-0x7b-0x4e-0x60-0xde-0xaf</property>
+  <widget type="form" name="plan_topmenu_pane">
+    <property name="id">0xac569661-0x2901-0x48ed-0xaa-0x82-0xc7-0x1d-0x03-0x98-0xd3-0x3c</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">plan_topmenu_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="hbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_width">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="pushbutton">
+        <property name="name">settings_btn</property>
+        <property name="label">Settings</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">26</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">3</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Settings')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">production_btn</property>
+        <property name="label">Production</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">34</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">5</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Production')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">plan_btn</property>
+        <property name="label">Plan</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">16</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">7</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Plan')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">tooling_btn</property>
+        <property name="label">Tooling</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">25</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">9</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Tooling')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">piece_btn</property>
+        <property name="label">Piece Cost</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">34</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">11</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Piece')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name"/>
+        <property name="label"/>
+        <property name="tip"/>
+        <property name="bitmap">关闭.png</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">14</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">false</property>
+        <property name="default">false</property>
+        <property name="flat">true</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">13</property>
+        <property name="visible">true</property>
+        <property name="onClick"/>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet"/>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 5435 - 0
42409006-杨永泉/AF/kul/process_D_20.kul


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1193 - 0
42409006-杨永泉/AF/kul/process_D_20_ToolsBinder.kul


+ 972 - 0
42409006-杨永泉/AF/kul/process_D_20_ToolsDefine.kul

@@ -0,0 +1,972 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="process_D_20_ToolsDefine" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x95adbb62-0x15aa-0x4ea5-0x9c-0xf7-0x5b-0x1a-0x44-0xac-0xa0-0x6b</property>
+  <widget type="form" name="process_D_20_ToolsDefine_pane">
+    <property name="id">0x7314478d-0x2a52-0x4db1-0x98-0xf9-0xa4-0x2d-0x38-0x31-0x41-0x6b</property>
+    <property name="style">popup</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">process_D_20_ToolsDefine_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="vbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_height">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+        <widget type="label">
+          <property name="name"/>
+          <property name="text">Define Geometry for Tool "Punch"</property>
+          <property name="tip"/>
+          <property name="id_alias">13</property>
+          <property name="width">40</property>
+          <property name="height">8</property>
+          <property name="adjust">fixed</property>
+          <property name="auto_width">true</property>
+          <property name="align">right</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="handle_bind"/>
+          <property name="simple_bind"/>
+          <property name="visible_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">horizontal</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="label">
+          <property name="name"/>
+          <property name="text">Geometry</property>
+          <property name="tip"/>
+          <property name="id_alias">14</property>
+          <property name="width">19</property>
+          <property name="height">8</property>
+          <property name="adjust">fixed</property>
+          <property name="auto_width">true</property>
+          <property name="align">left</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="handle_bind"/>
+          <property name="simple_bind"/>
+          <property name="visible_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+      </widget>
+      <widget type="vbox">
+        <property name="adjust">horizontal</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_height">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="stack">
+          <property name="name"/>
+          <property name="adjust">fixed</property>
+          <property name="margin">1</property>
+          <property name="border">flat</property>
+          <property name="label">Group Box</property>
+          <property name="index1_bind"/>
+          <property name="hightlight">false</property>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name">ipart_btn_right</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_右.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">51</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnImPartShow()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name">ipart_btn_down</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_下.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">52</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnImPartHide()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Generic</property>
+                <property name="tip"/>
+                <property name="id_alias">53</property>
+                <property name="width">19</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">true</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="stack">
+              <property name="name">ipart_stk</property>
+              <property name="adjust">fixed</property>
+              <property name="margin">1</property>
+              <property name="border">flat</property>
+              <property name="label">Group Box</property>
+              <property name="index1_bind"/>
+              <property name="hightlight">false</property>
+              <widget type="vbox">
+                <property name="adjust">auto</property>
+                <property name="hightlight">false</property>
+                <property name="margin">1</property>
+                <property name="scroll">false</property>
+                <property name="shadow">true</property>
+                <property name="scroll_height">auto</property>
+                <property name="scroll_amargin">5</property>
+                <property name="scroll_steps">3</property>
+                <widget type="hbox">
+                  <property name="adjust">auto</property>
+                  <property name="hightlight">false</property>
+                  <property name="margin">1</property>
+                  <property name="scroll">false</property>
+                  <property name="shadow">true</property>
+                  <property name="scroll_width">auto</property>
+                  <property name="scroll_amargin">5</property>
+                  <property name="scroll_steps">3</property>
+                  <widget type="pushbutton">
+                    <property name="name"/>
+                    <property name="label">DieFace</property>
+                    <property name="tip"/>
+                    <property name="bitmap">nil</property>
+                    <property name="bitmap_align">left</property>
+                    <property name="width">50</property>
+                    <property name="height">12</property>
+                    <property name="adjust">fixed</property>
+                    <property name="can_check">false</property>
+                    <property name="default">false</property>
+                    <property name="flat">true</property>
+                    <property name="flat_radio">false</property>
+                    <property name="gray">false</property>
+                    <property name="toolbutton">false</property>
+                    <property name="id_alias">69</property>
+                    <property name="visible">true</property>
+                    <property name="onClick"/>
+                    <property name="onCheck"/>
+                    <property name="onContentMenu"/>
+                    <property name="shadow">false</property>
+                    <property name="shadow_type">soft</property>
+                    <property name="enable_bind"/>
+                    <property name="simple_bind"/>
+                    <property name="valid_bind"/>
+                    <property name="visible_bind"/>
+                    <property name="handle_bind"/>
+                    <property name="hightlight">false</property>
+                    <property name="stylesheet"/>
+                  </widget>
+                </widget>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name">opera_btn_right</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_右.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">56</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnOperationShow()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name">opera_btn_down</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_下.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">57</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnOperationHide()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Hood_Inner-DR-Binder-Offset</property>
+                <property name="tip"/>
+                <property name="id_alias">58</property>
+                <property name="width">19</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">true</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="stack">
+              <property name="name">opera_stk</property>
+              <property name="adjust">fixed</property>
+              <property name="margin">3</property>
+              <property name="border">flat</property>
+              <property name="label">Group Box</property>
+              <property name="index1_bind"/>
+              <property name="hightlight">false</property>
+              <widget type="vbox">
+                <property name="adjust">auto</property>
+                <property name="hightlight">false</property>
+                <property name="margin">1</property>
+                <property name="scroll">false</property>
+                <property name="shadow">true</property>
+                <property name="scroll_height">auto</property>
+                <property name="scroll_amargin">5</property>
+                <property name="scroll_steps">3</property>
+                <widget type="hbox">
+                  <property name="adjust">auto</property>
+                  <property name="hightlight">false</property>
+                  <property name="margin">1</property>
+                  <property name="scroll">false</property>
+                  <property name="shadow">true</property>
+                  <property name="scroll_width">auto</property>
+                  <property name="scroll_amargin">5</property>
+                  <property name="scroll_steps">3</property>
+                  <widget type="pushbutton">
+                    <property name="name"/>
+                    <property name="label">D-20</property>
+                    <property name="tip"/>
+                    <property name="bitmap">nil</property>
+                    <property name="bitmap_align">left</property>
+                    <property name="width">50</property>
+                    <property name="height">12</property>
+                    <property name="adjust">fixed</property>
+                    <property name="can_check">false</property>
+                    <property name="default">false</property>
+                    <property name="flat">true</property>
+                    <property name="flat_radio">false</property>
+                    <property name="gray">false</property>
+                    <property name="toolbutton">false</property>
+                    <property name="id_alias">70</property>
+                    <property name="visible">true</property>
+                    <property name="onClick"/>
+                    <property name="onCheck"/>
+                    <property name="onContentMenu"/>
+                    <property name="shadow">false</property>
+                    <property name="shadow_type">soft</property>
+                    <property name="enable_bind"/>
+                    <property name="simple_bind"/>
+                    <property name="valid_bind"/>
+                    <property name="visible_bind"/>
+                    <property name="handle_bind"/>
+                    <property name="hightlight">false</property>
+                    <property name="stylesheet"/>
+                  </widget>
+                </widget>
+              </widget>
+            </widget>
+          </widget>
+        </widget>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="pushbutton">
+          <property name="name">pb_clear</property>
+          <property name="label">Clear All</property>
+          <property name="tip"/>
+          <property name="bitmap">错号.png</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">50</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">false</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">17</property>
+          <property name="visible">true</property>
+          <property name="onClick"/>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+        <widget type="checkbutton">
+          <property name="name"/>
+          <property name="label">Show Tool</property>
+          <property name="tip"/>
+          <property name="id_alias">22</property>
+          <property name="width">39</property>
+          <property name="height">10</property>
+          <property name="auto">true</property>
+          <property name="adjust">fixed</property>
+          <property name="flat">false</property>
+          <property name="check">false</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="enable_bind"/>
+          <property name="visible_bind"/>
+          <property name="onClick"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="label">
+          <property name="name"/>
+          <property name="text">Hood_Inner-DR-Punch-Offset</property>
+          <property name="tip"/>
+          <property name="id_alias">23</property>
+          <property name="width">19</property>
+          <property name="height">8</property>
+          <property name="adjust">fixed</property>
+          <property name="auto_width">true</property>
+          <property name="align">center</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="handle_bind"/>
+          <property name="simple_bind"/>
+          <property name="visible_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+      </widget>
+      <widget type="vbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_height">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text">Use</property>
+              <property name="tip"/>
+              <property name="id_alias">42</property>
+              <property name="width">19</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">true</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="radiobutton">
+              <property name="name">comg_rb</property>
+              <property name="label">Complete Geometry</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">44</property>
+              <property name="width">50</property>
+              <property name="height">10</property>
+              <property name="auto">true</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch">OnComGeoSwitch()</property>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name">secf_rb</property>
+              <property name="label">Secected Faces</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">45</property>
+              <property name="width">50</property>
+              <property name="height">10</property>
+              <property name="auto">true</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch">OnSeclectFace()</property>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+      </widget>
+      <widget type="vbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_height">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text">Selected Faces</property>
+              <property name="tip"/>
+              <property name="id_alias">46</property>
+              <property name="width">19</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">true</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name">pb_in</property>
+                <property name="label">In</property>
+                <property name="tip"/>
+                <property name="bitmap">In箭头.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">45</property>
+                <property name="height">12</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">false</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">true</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">61</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name">pb_out</property>
+                <property name="label">Out</property>
+                <property name="tip"/>
+                <property name="bitmap">out箭头.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">45</property>
+                <property name="height">12</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">false</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">true</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">62</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name">pb_allin</property>
+                <property name="label">All In</property>
+                <property name="tip"/>
+                <property name="bitmap">nil</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">45</property>
+                <property name="height">12</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">false</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">63</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnAllInClick()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name">pb_allout</property>
+                <property name="label">All Out</property>
+                <property name="tip"/>
+                <property name="bitmap">nil</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">45</property>
+                <property name="height">12</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">false</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">64</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnAllOutClick()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name">pb_invert</property>
+                <property name="label">Invert</property>
+                <property name="tip"/>
+                <property name="bitmap">nil</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">45</property>
+                <property name="height">12</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">false</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">65</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnInvertClick()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name"/>
+          <property name="label">OK</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">30</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">false</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">27</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnOk()</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name"/>
+          <property name="label">Cancel</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">40</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">false</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">28</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnClose()</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2429 - 0
42409006-杨永泉/AF/kul/process_D_20_beads.kul


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2328 - 0
42409006-杨永泉/AF/kul/process_D_20_beads_copyform.kul


+ 275 - 0
42409006-杨永泉/AF/kul/process_D_20_topmenu.kul

@@ -0,0 +1,275 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="process_D_20_topmenu" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x45fedfa2-0xada2-0x436a-0xa0-0xea-0x3b-0x7b-0x2e-0xc9-0xe2-0x80</property>
+  <widget type="form" name="process_D_20_topmenu_pane">
+    <property name="id">0xabfc8ec5-0x4c2e-0x4e28-0xa0-0xbf-0x1e-0x0c-0x57-0x2d-0x72-0xea</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">process_D_20_topmenu_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="hbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_width">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="pushbutton">
+        <property name="name">op_setup_btn</property>
+        <property name="label">OP Setup</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">30</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">3</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('OP_Setup')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">tools_btn</property>
+        <property name="label">Tools</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">18</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">5</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Tools')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">beads_btn</property>
+        <property name="label">Beads</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">20</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">7</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Beads')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">pilots_btn</property>
+        <property name="label">Pilots/Spacers</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">43</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">9</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Pilots')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">lube_btn</property>
+        <property name="label">Lube</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">18</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">11</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Lube')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">pressure_btn</property>
+        <property name="label">Pressure</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">27</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">13</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Pressure')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">ref_btn</property>
+        <property name="label">Ref</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">15</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">15</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Ref')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2662 - 0
42409006-杨永泉/AF/kul/process_pl.kul


+ 110 - 0
42409006-杨永泉/AF/kul/process_topmenu.kul

@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="process_topmenu" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x56617cfe-0xc2b7-0x4cd0-0xa6-0x68-0xb9-0xb8-0x5d-0x0f-0x05-0xcf</property>
+  <widget type="form" name="process_topmenu_pane">
+    <property name="id">0xa0de61f8-0x8fe4-0x462f-0x9a-0x23-0x43-0x98-0x5f-0x5b-0x8f-0x84</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">process_topmenu_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="hbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_width">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="pushbutton">
+        <property name="name">pl_btn</property>
+        <property name="label">PL</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">15</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">3</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('PL')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">d_20_btn</property>
+        <property name="label">D-20</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">20</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">5</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('D_20')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1217 - 0
42409006-杨永泉/AF/kul/side_pane.kul


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3549 - 0
42409006-杨永泉/AF/kul/simulation_control.kul


+ 179 - 0
42409006-杨永泉/AF/kul/simulation_control_topmune.kul

@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="simulation_control_topmune" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x2a276856-0x6665-0x4c32-0x80-0xbc-0x1a-0x30-0x41-0x49-0x83-0xc4</property>
+  <widget type="form" name="simulation_control_topmune_pane">
+    <property name="id">0xfb606203-0x7868-0x4d0f-0x8a-0xd5-0xb3-0xa5-0x94-0xa1-0x7a-0x55</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">simulation_control_topmune_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="hbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_width">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">main_btn</property>
+        <property name="label">Main</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">20</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">4</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Main')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">results_btn</property>
+        <property name="label">Results</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">25</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">6</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Results')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">output_btn</property>
+        <property name="label">Output</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">25</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">8</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Output')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">misc_btn</property>
+        <property name="label">Misc</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">20</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">10</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Misc')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

+ 508 - 0
42409006-杨永泉/AF/kul/simulation_log.kul

@@ -0,0 +1,508 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="simulation_log" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x1f05ac7b-0x6870-0x4648-0x98-0xb0-0xc9-0x16-0x7f-0x22-0x3d-0x55</property>
+  <widget type="form" name="simulation_log_pane">
+    <property name="id">0x165f2fff-0x603a-0x41fe-0xb2-0x98-0x7d-0xa7-0x99-0x53-0x2f-0x9a</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">simulation_log_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="vbox">
+      <property name="adjust">auto</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_height">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">job_btn</property>
+          <property name="label">Job</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">20</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">6</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeModel('job')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="pushbutton">
+          <property name="name">rea_btn</property>
+          <property name="label">Realizations</property>
+          <property name="tip"/>
+          <property name="bitmap">nil</property>
+          <property name="bitmap_align">left</property>
+          <property name="width">40</property>
+          <property name="height">12</property>
+          <property name="adjust">fixed</property>
+          <property name="can_check">true</property>
+          <property name="default">false</property>
+          <property name="flat">false</property>
+          <property name="flat_radio">false</property>
+          <property name="gray">false</property>
+          <property name="toolbutton">false</property>
+          <property name="id_alias">7</property>
+          <property name="visible">true</property>
+          <property name="onClick">OnChangeModel('realizations')</property>
+          <property name="onCheck"/>
+          <property name="onContentMenu"/>
+          <property name="shadow">false</property>
+          <property name="shadow_type">soft</property>
+          <property name="enable_bind"/>
+          <property name="simple_bind"/>
+          <property name="valid_bind"/>
+          <property name="visible_bind"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet">part_btn</property>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+      </widget>
+      <widget type="stack">
+        <property name="name"/>
+        <property name="adjust">fixed</property>
+        <property name="margin">3</property>
+        <property name="border">flat</property>
+        <property name="label">Group Box</property>
+        <property name="index1_bind"/>
+        <property name="hightlight">false</property>
+        <widget type="vbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_height">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">horizontal</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name">log_right_btn</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_右.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">20</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnLogModelShow()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name">log_down_btn</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_下.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">21</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnLogModelHide()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Solver Log</property>
+                <property name="tip"/>
+                <property name="id_alias">22</property>
+                <property name="width">19</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">true</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="stack">
+              <property name="name">log_stk</property>
+              <property name="adjust">fixed</property>
+              <property name="margin">3</property>
+              <property name="border">flat</property>
+              <property name="label">Group Box</property>
+              <property name="index1_bind"/>
+              <property name="hightlight">false</property>
+              <widget type="vbox">
+                <property name="adjust">auto</property>
+                <property name="hightlight">false</property>
+                <property name="margin">1</property>
+                <property name="scroll">false</property>
+                <property name="shadow">true</property>
+                <property name="scroll_height">auto</property>
+                <property name="scroll_amargin">5</property>
+                <property name="scroll_steps">3</property>
+                <widget type="scintilla">
+                  <property name="name"/>
+                  <property name="id_alias">33</property>
+                  <property name="width">50</property>
+                  <property name="height">50</property>
+                  <property name="autoCompleteDocument">false</property>
+                  <property name="adjust">auto</property>
+                  <property name="flat">false</property>
+                  <property name="line_number">true</property>
+                  <property name="readonly">false</property>
+                  <property name="wrap">false</property>
+                  <property name="gray">false</property>
+                  <property name="visible">true</property>
+                  <property name="onChange"/>
+                  <property name="onCusorChange"/>
+                  <property name="onSelectionChange"/>
+                  <property name="hightlight">false</property>
+                  <property name="stylesheet"/>
+                </widget>
+              </widget>
+            </widget>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">horizontal</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name">warnings_right_btn</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_右.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">25</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnWarningModelShow()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name">warnings_down_btn</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_下.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">26</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnWarningModelHide()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Solver Warnings</property>
+                <property name="tip"/>
+                <property name="id_alias">27</property>
+                <property name="width">19</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">true</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="stack">
+              <property name="name">warnings_stk</property>
+              <property name="adjust">fixed</property>
+              <property name="margin">3</property>
+              <property name="border">flat</property>
+              <property name="label">Group Box</property>
+              <property name="index1_bind"/>
+              <property name="hightlight">false</property>
+            </widget>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">horizontal</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name">monitor_right_btn</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_右.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">29</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnMonitorModelShow()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name">monitor_down_btn</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_下.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">30</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnMonitorModelHide()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Solver Monitor</property>
+                <property name="tip"/>
+                <property name="id_alias">31</property>
+                <property name="width">19</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">true</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="stack">
+              <property name="name">monitor_stk</property>
+              <property name="adjust">fixed</property>
+              <property name="margin">3</property>
+              <property name="border">flat</property>
+              <property name="label">Group Box</property>
+              <property name="index1_bind"/>
+              <property name="hightlight">false</property>
+            </widget>
+          </widget>
+        </widget>
+        <widget type="vbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_height">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+        </widget>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

+ 901 - 0
42409006-杨永泉/AF/kul/simulation_output.kul

@@ -0,0 +1,901 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="simulation_output" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x116c8f54-0x85fe-0x430d-0x88-0xd6-0x1d-0x25-0x1f-0x3b-0x58-0x83</property>
+  <widget type="form" name="simulation_output_pane">
+    <property name="id">0x28e99307-0x3303-0x4f66-0x94-0x29-0x3d-0xc1-0xda-0x9f-0xfd-0x50</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">simulation_output_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="vbox">
+      <property name="adjust">auto</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_height">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="vbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_height">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="space">
+            <property name="size">15</property>
+          </widget>
+          <widget type="label">
+            <property name="name"/>
+            <property name="text">Output</property>
+            <property name="tip"/>
+            <property name="id_alias">19</property>
+            <property name="width">30</property>
+            <property name="height">8</property>
+            <property name="adjust">fixed</property>
+            <property name="auto_width">false</property>
+            <property name="align">left</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="handle_bind"/>
+            <property name="simple_bind"/>
+            <property name="visible_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+        <widget type="vbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_height">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text">Nominal</property>
+              <property name="tip"/>
+              <property name="id_alias">51</property>
+              <property name="width">50</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">right</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">End of Last OP</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">52</property>
+              <property name="width">60</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">54</property>
+              <property name="width">50</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">End of Each OP</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">55</property>
+              <property name="width">50</property>
+              <property name="height">10</property>
+              <property name="auto">true</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">57</property>
+              <property name="width">50</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">End of Each OP Step</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">58</property>
+              <property name="width">50</property>
+              <property name="height">10</property>
+              <property name="auto">true</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">60</property>
+              <property name="width">50</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">End Time Step</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">61</property>
+              <property name="width">50</property>
+              <property name="height">10</property>
+              <property name="auto">true</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">63</property>
+              <property name="width">50</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">Custom Time Steps</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">64</property>
+              <property name="width">50</property>
+              <property name="height">10</property>
+              <property name="auto">true</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="pushbutton">
+              <property name="name"/>
+              <property name="label"/>
+              <property name="tip"/>
+              <property name="bitmap">帮助.png</property>
+              <property name="bitmap_align">left</property>
+              <property name="width">15</property>
+              <property name="height">12</property>
+              <property name="adjust">fixed</property>
+              <property name="can_check">false</property>
+              <property name="default">false</property>
+              <property name="flat">true</property>
+              <property name="flat_radio">false</property>
+              <property name="gray">false</property>
+              <property name="toolbutton">false</property>
+              <property name="id_alias">65</property>
+              <property name="visible">true</property>
+              <property name="onClick"/>
+              <property name="onCheck"/>
+              <property name="onContentMenu"/>
+              <property name="shadow">false</property>
+              <property name="shadow_type">soft</property>
+              <property name="enable_bind"/>
+              <property name="simple_bind"/>
+              <property name="valid_bind"/>
+              <property name="visible_bind"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text">Sigma</property>
+              <property name="tip"/>
+              <property name="id_alias">67</property>
+              <property name="width">50</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">right</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">End of Last OP</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">68</property>
+              <property name="width">60</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="label">
+              <property name="name"/>
+              <property name="text"/>
+              <property name="tip"/>
+              <property name="id_alias">70</property>
+              <property name="width">50</property>
+              <property name="height">8</property>
+              <property name="adjust">fixed</property>
+              <property name="auto_width">false</property>
+              <property name="align">left</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="handle_bind"/>
+              <property name="simple_bind"/>
+              <property name="visible_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="radiobutton">
+              <property name="name"/>
+              <property name="label">End of Each OP</property>
+              <property name="group_id">1</property>
+              <property name="default_group_item">false</property>
+              <property name="id_alias">71</property>
+              <property name="width">60</property>
+              <property name="height">10</property>
+              <property name="auto">false</property>
+              <property name="adjust">fixed</property>
+              <property name="flat">false</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="index1_bind"/>
+              <property name="enable_bind"/>
+              <property name="visible_bind"/>
+              <property name="onSwitch"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+          </widget>
+        </widget>
+      </widget>
+      <widget type="separator">
+        <property name="id_alias">4</property>
+        <property name="margin">0</property>
+        <property name="gray">false</property>
+        <property name="visible">true</property>
+      </widget>
+      <widget type="vbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_height">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="space">
+            <property name="size">15</property>
+          </widget>
+          <widget type="label">
+            <property name="name"/>
+            <property name="text">Output for Assembly</property>
+            <property name="tip"/>
+            <property name="id_alias">29</property>
+            <property name="width">70</property>
+            <property name="height">8</property>
+            <property name="adjust">fixed</property>
+            <property name="auto_width">false</property>
+            <property name="align">left</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="handle_bind"/>
+            <property name="simple_bind"/>
+            <property name="visible_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="space">
+            <property name="size">165</property>
+          </widget>
+          <widget type="checkbutton">
+            <property name="name"/>
+            <property name="label">Write asm-File</property>
+            <property name="tip"/>
+            <property name="id_alias">32</property>
+            <property name="width">39</property>
+            <property name="height">10</property>
+            <property name="auto">true</property>
+            <property name="adjust">fixed</property>
+            <property name="flat">false</property>
+            <property name="check">false</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="simple_bind"/>
+            <property name="valid_bind"/>
+            <property name="enable_bind"/>
+            <property name="visible_bind"/>
+            <property name="onClick"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="pushbutton">
+            <property name="name"/>
+            <property name="label"/>
+            <property name="tip"/>
+            <property name="bitmap">帮助.png</property>
+            <property name="bitmap_align">left</property>
+            <property name="width">15</property>
+            <property name="height">12</property>
+            <property name="adjust">fixed</property>
+            <property name="can_check">false</property>
+            <property name="default">false</property>
+            <property name="flat">true</property>
+            <property name="flat_radio">false</property>
+            <property name="gray">false</property>
+            <property name="toolbutton">false</property>
+            <property name="id_alias">33</property>
+            <property name="visible">true</property>
+            <property name="onClick"/>
+            <property name="onCheck"/>
+            <property name="onContentMenu"/>
+            <property name="shadow">false</property>
+            <property name="shadow_type">soft</property>
+            <property name="enable_bind"/>
+            <property name="simple_bind"/>
+            <property name="valid_bind"/>
+            <property name="visible_bind"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+      </widget>
+      <widget type="separator">
+        <property name="id_alias">6</property>
+        <property name="margin">0</property>
+        <property name="gray">false</property>
+        <property name="visible">true</property>
+      </widget>
+      <widget type="vbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_height">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="space">
+            <property name="size">15</property>
+          </widget>
+          <widget type="label">
+            <property name="name"/>
+            <property name="text">Restart Options</property>
+            <property name="tip"/>
+            <property name="id_alias">36</property>
+            <property name="width">50</property>
+            <property name="height">8</property>
+            <property name="adjust">fixed</property>
+            <property name="auto_width">false</property>
+            <property name="align">left</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="handle_bind"/>
+            <property name="simple_bind"/>
+            <property name="visible_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="pushbutton">
+            <property name="name"/>
+            <property name="label"/>
+            <property name="tip"/>
+            <property name="bitmap">帮助.png</property>
+            <property name="bitmap_align">left</property>
+            <property name="width">15</property>
+            <property name="height">12</property>
+            <property name="adjust">fixed</property>
+            <property name="can_check">false</property>
+            <property name="default">false</property>
+            <property name="flat">true</property>
+            <property name="flat_radio">false</property>
+            <property name="gray">false</property>
+            <property name="toolbutton">false</property>
+            <property name="id_alias">37</property>
+            <property name="visible">true</property>
+            <property name="onClick"/>
+            <property name="onCheck"/>
+            <property name="onContentMenu"/>
+            <property name="shadow">false</property>
+            <property name="shadow_type">soft</property>
+            <property name="enable_bind"/>
+            <property name="simple_bind"/>
+            <property name="valid_bind"/>
+            <property name="visible_bind"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="label">
+            <property name="name"/>
+            <property name="text">Restart</property>
+            <property name="tip"/>
+            <property name="id_alias">39</property>
+            <property name="width">50</property>
+            <property name="height">8</property>
+            <property name="adjust">fixed</property>
+            <property name="auto_width">false</property>
+            <property name="align">right</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="handle_bind"/>
+            <property name="simple_bind"/>
+            <property name="visible_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="radiobutton">
+            <property name="name"/>
+            <property name="label">No Restart</property>
+            <property name="group_id">1</property>
+            <property name="default_group_item">false</property>
+            <property name="id_alias">40</property>
+            <property name="width">60</property>
+            <property name="height">10</property>
+            <property name="auto">false</property>
+            <property name="adjust">fixed</property>
+            <property name="flat">false</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="index1_bind"/>
+            <property name="enable_bind"/>
+            <property name="visible_bind"/>
+            <property name="onSwitch"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="label">
+            <property name="name"/>
+            <property name="text"/>
+            <property name="tip"/>
+            <property name="id_alias">42</property>
+            <property name="width">50</property>
+            <property name="height">8</property>
+            <property name="adjust">fixed</property>
+            <property name="auto_width">false</property>
+            <property name="align">left</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="handle_bind"/>
+            <property name="simple_bind"/>
+            <property name="visible_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="radiobutton">
+            <property name="name"/>
+            <property name="label">End of Last OP</property>
+            <property name="group_id">1</property>
+            <property name="default_group_item">false</property>
+            <property name="id_alias">43</property>
+            <property name="width">60</property>
+            <property name="height">10</property>
+            <property name="auto">false</property>
+            <property name="adjust">fixed</property>
+            <property name="flat">false</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="index1_bind"/>
+            <property name="enable_bind"/>
+            <property name="visible_bind"/>
+            <property name="onSwitch"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="label">
+            <property name="name"/>
+            <property name="text"/>
+            <property name="tip"/>
+            <property name="id_alias">45</property>
+            <property name="width">50</property>
+            <property name="height">8</property>
+            <property name="adjust">fixed</property>
+            <property name="auto_width">false</property>
+            <property name="align">left</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="handle_bind"/>
+            <property name="simple_bind"/>
+            <property name="visible_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="radiobutton">
+            <property name="name"/>
+            <property name="label">End of Each OP</property>
+            <property name="group_id">1</property>
+            <property name="default_group_item">false</property>
+            <property name="id_alias">46</property>
+            <property name="width">60</property>
+            <property name="height">10</property>
+            <property name="auto">false</property>
+            <property name="adjust">fixed</property>
+            <property name="flat">false</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="index1_bind"/>
+            <property name="enable_bind"/>
+            <property name="visible_bind"/>
+            <property name="onSwitch"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+        <widget type="hbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="label">
+            <property name="name"/>
+            <property name="text"/>
+            <property name="tip"/>
+            <property name="id_alias">48</property>
+            <property name="width">50</property>
+            <property name="height">8</property>
+            <property name="adjust">fixed</property>
+            <property name="auto_width">false</property>
+            <property name="align">left</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="handle_bind"/>
+            <property name="simple_bind"/>
+            <property name="visible_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="radiobutton">
+            <property name="name"/>
+            <property name="label">End of Each OP Step</property>
+            <property name="group_id">1</property>
+            <property name="default_group_item">false</property>
+            <property name="id_alias">49</property>
+            <property name="width">70</property>
+            <property name="height">10</property>
+            <property name="auto">false</property>
+            <property name="adjust">fixed</property>
+            <property name="flat">false</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="index1_bind"/>
+            <property name="enable_bind"/>
+            <property name="visible_bind"/>
+            <property name="onSwitch"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2030 - 0
42409006-杨永泉/AF/kul/simulation_results.kul


+ 988 - 0
42409006-杨永泉/AF/kul/simulation_start.kul

@@ -0,0 +1,988 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="simulation_start" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0xcc7af402-0x90b7-0x460c-0x96-0xac-0x2a-0x1f-0x40-0x4d-0xa3-0xb2</property>
+  <widget type="form" name="simulation_start_pane">
+    <property name="id">0x6ad31c6d-0xfde4-0x493b-0x9f-0x79-0x8e-0xd0-0x79-0xf0-0x2d-0x3e</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">simulation_start_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="vbox">
+      <property name="adjust">auto</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_height">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="separator">
+        <property name="id_alias">3</property>
+        <property name="margin">0</property>
+        <property name="gray">false</property>
+        <property name="visible">true</property>
+      </widget>
+      <widget type="hbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_width">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="label">
+          <property name="name"/>
+          <property name="text">Run On</property>
+          <property name="tip"/>
+          <property name="id_alias">9</property>
+          <property name="width">25</property>
+          <property name="height">8</property>
+          <property name="adjust">fixed</property>
+          <property name="auto_width">false</property>
+          <property name="align">right</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="handle_bind"/>
+          <property name="simple_bind"/>
+          <property name="visible_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+        <widget type="space">
+          <property name="size">10</property>
+        </widget>
+        <widget type="radiobutton">
+          <property name="name"/>
+          <property name="label">Hosts</property>
+          <property name="group_id">1</property>
+          <property name="default_group_item">false</property>
+          <property name="id_alias">11</property>
+          <property name="width">50</property>
+          <property name="height">10</property>
+          <property name="auto">true</property>
+          <property name="adjust">fixed</property>
+          <property name="flat">false</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="index1_bind"/>
+          <property name="enable_bind"/>
+          <property name="visible_bind"/>
+          <property name="onSwitch"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+        <widget type="space">
+          <property name="size">10</property>
+        </widget>
+        <widget type="radiobutton">
+          <property name="name"/>
+          <property name="label">Job Scheduler</property>
+          <property name="group_id">1</property>
+          <property name="default_group_item">false</property>
+          <property name="id_alias">13</property>
+          <property name="width">50</property>
+          <property name="height">10</property>
+          <property name="auto">true</property>
+          <property name="adjust">fixed</property>
+          <property name="flat">false</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+          <property name="index1_bind"/>
+          <property name="enable_bind"/>
+          <property name="visible_bind"/>
+          <property name="onSwitch"/>
+          <property name="handle_bind"/>
+          <property name="hightlight">false</property>
+          <property name="stylesheet"/>
+        </widget>
+        <widget type="space">
+          <property name="size">auto</property>
+        </widget>
+      </widget>
+      <widget type="separator">
+        <property name="id_alias">5</property>
+        <property name="margin">0</property>
+        <property name="gray">false</property>
+        <property name="visible">true</property>
+      </widget>
+      <widget type="stack">
+        <property name="name"/>
+        <property name="adjust">fixed</property>
+        <property name="margin">3</property>
+        <property name="border">flat</property>
+        <property name="label">Group Box</property>
+        <property name="index1_bind"/>
+        <property name="hightlight">false</property>
+        <widget type="vbox">
+          <property name="adjust">auto</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_height">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="vbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_height">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text"/>
+                <property name="tip"/>
+                <property name="id_alias">48</property>
+                <property name="width">19</property>
+                <property name="height">14</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">false</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="hbox">
+                <property name="adjust">auto</property>
+                <property name="hightlight">false</property>
+                <property name="margin">1</property>
+                <property name="scroll">false</property>
+                <property name="shadow">true</property>
+                <property name="scroll_width">auto</property>
+                <property name="scroll_amargin">5</property>
+                <property name="scroll_steps">3</property>
+                <widget type="radiobutton">
+                  <property name="name"/>
+                  <property name="label"/>
+                  <property name="group_id">1</property>
+                  <property name="default_group_item">false</property>
+                  <property name="id_alias">69</property>
+                  <property name="width">10</property>
+                  <property name="height">12</property>
+                  <property name="auto">false</property>
+                  <property name="adjust">fixed</property>
+                  <property name="flat">false</property>
+                  <property name="gray">false</property>
+                  <property name="visible">true</property>
+                  <property name="index1_bind"/>
+                  <property name="enable_bind"/>
+                  <property name="visible_bind"/>
+                  <property name="onSwitch"/>
+                  <property name="handle_bind"/>
+                  <property name="hightlight">false</property>
+                  <property name="stylesheet"/>
+                </widget>
+              </widget>
+              <widget type="hbox">
+                <property name="adjust">auto</property>
+                <property name="hightlight">false</property>
+                <property name="margin">1</property>
+                <property name="scroll">false</property>
+                <property name="shadow">true</property>
+                <property name="scroll_width">auto</property>
+                <property name="scroll_amargin">5</property>
+                <property name="scroll_steps">3</property>
+                <widget type="radiobutton">
+                  <property name="name"/>
+                  <property name="label"/>
+                  <property name="group_id">1</property>
+                  <property name="default_group_item">false</property>
+                  <property name="id_alias">70</property>
+                  <property name="width">10</property>
+                  <property name="height">12</property>
+                  <property name="auto">false</property>
+                  <property name="adjust">fixed</property>
+                  <property name="flat">false</property>
+                  <property name="gray">false</property>
+                  <property name="visible">true</property>
+                  <property name="index1_bind"/>
+                  <property name="enable_bind"/>
+                  <property name="visible_bind"/>
+                  <property name="onSwitch"/>
+                  <property name="handle_bind"/>
+                  <property name="hightlight">false</property>
+                  <property name="stylesheet"/>
+                </widget>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="list">
+              <property name="name">list_one</property>
+              <property name="id_alias">30</property>
+              <property name="width">130</property>
+              <property name="height">100</property>
+              <property name="adjust">horizontal</property>
+              <property name="rows">auto</property>
+              <property name="grid">false</property>
+              <property name="behavior">cell</property>
+              <property name="mode">single</property>
+              <property name="sort">none</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+              <property name="onClick"/>
+              <property name="onRightClick"/>
+              <property name="onDoubleClick"/>
+              <property name="onHeaderClick"/>
+              <property name="onChange"/>
+              <property name="onContentMenu"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+          </widget>
+          <widget type="separator">
+            <property name="id_alias">20</property>
+            <property name="margin">0</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+          </widget>
+          <widget type="hbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_width">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="pushbutton">
+              <property name="name"/>
+              <property name="label">All</property>
+              <property name="tip"/>
+              <property name="bitmap">nil</property>
+              <property name="bitmap_align">left</property>
+              <property name="width">15</property>
+              <property name="height">12</property>
+              <property name="adjust">fixed</property>
+              <property name="can_check">false</property>
+              <property name="default">false</property>
+              <property name="flat">true</property>
+              <property name="flat_radio">false</property>
+              <property name="gray">false</property>
+              <property name="toolbutton">false</property>
+              <property name="id_alias">31</property>
+              <property name="visible">true</property>
+              <property name="onClick"/>
+              <property name="onCheck"/>
+              <property name="onContentMenu"/>
+              <property name="shadow">false</property>
+              <property name="shadow_type">soft</property>
+              <property name="enable_bind"/>
+              <property name="simple_bind"/>
+              <property name="valid_bind"/>
+              <property name="visible_bind"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="separator">
+              <property name="id_alias">32</property>
+              <property name="margin">0</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+            </widget>
+            <widget type="pushbutton">
+              <property name="name"/>
+              <property name="label">None</property>
+              <property name="tip"/>
+              <property name="bitmap">nil</property>
+              <property name="bitmap_align">left</property>
+              <property name="width">20</property>
+              <property name="height">12</property>
+              <property name="adjust">fixed</property>
+              <property name="can_check">false</property>
+              <property name="default">false</property>
+              <property name="flat">true</property>
+              <property name="flat_radio">false</property>
+              <property name="gray">false</property>
+              <property name="toolbutton">false</property>
+              <property name="id_alias">33</property>
+              <property name="visible">true</property>
+              <property name="onClick"/>
+              <property name="onCheck"/>
+              <property name="onContentMenu"/>
+              <property name="shadow">false</property>
+              <property name="shadow_type">soft</property>
+              <property name="enable_bind"/>
+              <property name="simple_bind"/>
+              <property name="valid_bind"/>
+              <property name="visible_bind"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="separator">
+              <property name="id_alias">34</property>
+              <property name="margin">0</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+            </widget>
+            <widget type="space">
+              <property name="size">auto</property>
+            </widget>
+            <widget type="separator">
+              <property name="id_alias">36</property>
+              <property name="margin">0</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+            </widget>
+            <widget type="pushbutton">
+              <property name="name"/>
+              <property name="label">Reset</property>
+              <property name="tip"/>
+              <property name="bitmap">nil</property>
+              <property name="bitmap_align">left</property>
+              <property name="width">20</property>
+              <property name="height">12</property>
+              <property name="adjust">fixed</property>
+              <property name="can_check">false</property>
+              <property name="default">false</property>
+              <property name="flat">true</property>
+              <property name="flat_radio">false</property>
+              <property name="gray">false</property>
+              <property name="toolbutton">false</property>
+              <property name="id_alias">37</property>
+              <property name="visible">true</property>
+              <property name="onClick"/>
+              <property name="onCheck"/>
+              <property name="onContentMenu"/>
+              <property name="shadow">false</property>
+              <property name="shadow_type">soft</property>
+              <property name="enable_bind"/>
+              <property name="simple_bind"/>
+              <property name="valid_bind"/>
+              <property name="visible_bind"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+            <widget type="separator">
+              <property name="id_alias">38</property>
+              <property name="margin">0</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+            </widget>
+            <widget type="pushbutton">
+              <property name="name"/>
+              <property name="label">Configure...</property>
+              <property name="tip"/>
+              <property name="bitmap">nil</property>
+              <property name="bitmap_align">left</property>
+              <property name="width">35</property>
+              <property name="height">12</property>
+              <property name="adjust">fixed</property>
+              <property name="can_check">false</property>
+              <property name="default">false</property>
+              <property name="flat">true</property>
+              <property name="flat_radio">false</property>
+              <property name="gray">false</property>
+              <property name="toolbutton">false</property>
+              <property name="id_alias">39</property>
+              <property name="visible">true</property>
+              <property name="onClick"/>
+              <property name="onCheck"/>
+              <property name="onContentMenu"/>
+              <property name="shadow">false</property>
+              <property name="shadow_type">soft</property>
+              <property name="enable_bind"/>
+              <property name="simple_bind"/>
+              <property name="valid_bind"/>
+              <property name="visible_bind"/>
+              <property name="handle_bind"/>
+              <property name="hightlight">false</property>
+              <property name="stylesheet"/>
+            </widget>
+          </widget>
+          <widget type="separator">
+            <property name="id_alias">22</property>
+            <property name="margin">0</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+          </widget>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">horizontal</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="pushbutton">
+                <property name="name">Noqueue_right_btn</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_右.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">52</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnNoqueueModelShow()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name">Noqueue_down_btn</property>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">三角符号_下.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">10</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">53</property>
+                <property name="visible">true</property>
+                <property name="onClick">OnNoqueueModelHide()</property>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">(No Queue Selected)</property>
+                <property name="tip"/>
+                <property name="id_alias">54</property>
+                <property name="width">19</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">true</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="separator">
+              <property name="id_alias">41</property>
+              <property name="margin">0</property>
+              <property name="gray">false</property>
+              <property name="visible">true</property>
+            </widget>
+            <widget type="stack">
+              <property name="name">Noqueue_stk</property>
+              <property name="adjust">fixed</property>
+              <property name="margin">3</property>
+              <property name="border">flat</property>
+              <property name="label">Group Box</property>
+              <property name="index1_bind"/>
+              <property name="hightlight">false</property>
+              <widget type="vbox">
+                <property name="adjust">auto</property>
+                <property name="hightlight">false</property>
+                <property name="margin">1</property>
+                <property name="scroll">false</property>
+                <property name="shadow">true</property>
+                <property name="scroll_height">auto</property>
+                <property name="scroll_amargin">5</property>
+                <property name="scroll_steps">3</property>
+                <widget type="list">
+                  <property name="name">list_two</property>
+                  <property name="id_alias">71</property>
+                  <property name="width">130</property>
+                  <property name="height">100</property>
+                  <property name="adjust">horizontal</property>
+                  <property name="rows">auto</property>
+                  <property name="grid">true</property>
+                  <property name="behavior">cell</property>
+                  <property name="mode">single</property>
+                  <property name="sort">none</property>
+                  <property name="gray">false</property>
+                  <property name="visible">true</property>
+                  <property name="onClick"/>
+                  <property name="onRightClick"/>
+                  <property name="onDoubleClick"/>
+                  <property name="onHeaderClick"/>
+                  <property name="onChange"/>
+                  <property name="onContentMenu"/>
+                  <property name="hightlight">false</property>
+                  <property name="stylesheet"/>
+                </widget>
+              </widget>
+            </widget>
+          </widget>
+        </widget>
+      </widget>
+      <widget type="separator">
+        <property name="id_alias">7</property>
+        <property name="margin">0</property>
+        <property name="gray">false</property>
+        <property name="visible">true</property>
+      </widget>
+      <widget type="vbox">
+        <property name="adjust">auto</property>
+        <property name="hightlight">false</property>
+        <property name="margin">1</property>
+        <property name="scroll">false</property>
+        <property name="shadow">true</property>
+        <property name="scroll_height">auto</property>
+        <property name="scroll_amargin">5</property>
+        <property name="scroll_steps">3</property>
+        <widget type="hbox">
+          <property name="adjust">horizontal</property>
+          <property name="hightlight">false</property>
+          <property name="margin">1</property>
+          <property name="scroll">false</property>
+          <property name="shadow">true</property>
+          <property name="scroll_width">auto</property>
+          <property name="scroll_amargin">5</property>
+          <property name="scroll_steps">3</property>
+          <widget type="pushbutton">
+            <property name="name">back_right_btn</property>
+            <property name="label"/>
+            <property name="tip"/>
+            <property name="bitmap">三角符号_右.png</property>
+            <property name="bitmap_align">left</property>
+            <property name="width">10</property>
+            <property name="height">10</property>
+            <property name="adjust">fixed</property>
+            <property name="can_check">false</property>
+            <property name="default">false</property>
+            <property name="flat">true</property>
+            <property name="flat_radio">false</property>
+            <property name="gray">false</property>
+            <property name="toolbutton">false</property>
+            <property name="id_alias">24</property>
+            <property name="visible">true</property>
+            <property name="onClick">OnBackModelShow()</property>
+            <property name="onCheck"/>
+            <property name="onContentMenu"/>
+            <property name="shadow">false</property>
+            <property name="shadow_type">soft</property>
+            <property name="enable_bind"/>
+            <property name="simple_bind"/>
+            <property name="valid_bind"/>
+            <property name="visible_bind"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="pushbutton">
+            <property name="name">back_down_btn</property>
+            <property name="label"/>
+            <property name="tip"/>
+            <property name="bitmap">三角符号_下.png</property>
+            <property name="bitmap_align">left</property>
+            <property name="width">10</property>
+            <property name="height">10</property>
+            <property name="adjust">fixed</property>
+            <property name="can_check">false</property>
+            <property name="default">false</property>
+            <property name="flat">true</property>
+            <property name="flat_radio">false</property>
+            <property name="gray">false</property>
+            <property name="toolbutton">false</property>
+            <property name="id_alias">25</property>
+            <property name="visible">true</property>
+            <property name="onClick">OnBackModelHide()</property>
+            <property name="onCheck"/>
+            <property name="onContentMenu"/>
+            <property name="shadow">false</property>
+            <property name="shadow_type">soft</property>
+            <property name="enable_bind"/>
+            <property name="simple_bind"/>
+            <property name="valid_bind"/>
+            <property name="visible_bind"/>
+            <property name="handle_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="label">
+            <property name="name"/>
+            <property name="text">Back-end License Configuration</property>
+            <property name="tip"/>
+            <property name="id_alias">26</property>
+            <property name="width">19</property>
+            <property name="height">8</property>
+            <property name="adjust">fixed</property>
+            <property name="auto_width">true</property>
+            <property name="align">left</property>
+            <property name="gray">false</property>
+            <property name="visible">true</property>
+            <property name="handle_bind"/>
+            <property name="simple_bind"/>
+            <property name="visible_bind"/>
+            <property name="hightlight">false</property>
+            <property name="stylesheet"/>
+          </widget>
+          <widget type="space">
+            <property name="size">auto</property>
+          </widget>
+        </widget>
+        <widget type="stack">
+          <property name="name">back_stk</property>
+          <property name="adjust">fixed</property>
+          <property name="margin">3</property>
+          <property name="border">flat</property>
+          <property name="label">Group Box</property>
+          <property name="index1_bind"/>
+          <property name="hightlight">false</property>
+          <widget type="vbox">
+            <property name="adjust">auto</property>
+            <property name="hightlight">false</property>
+            <property name="margin">1</property>
+            <property name="scroll">false</property>
+            <property name="shadow">true</property>
+            <property name="scroll_height">auto</property>
+            <property name="scroll_amargin">5</property>
+            <property name="scroll_steps">3</property>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Parallel Execution</property>
+                <property name="tip"/>
+                <property name="id_alias">57</property>
+                <property name="width">80</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">false</property>
+                <property name="align">right</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="combobox">
+                <property name="name"/>
+                <property name="data">Parallel 4</property>
+                <property name="tip"/>
+                <property name="id_alias">58</property>
+                <property name="width">64</property>
+                <property name="height">10</property>
+                <property name="adjust">fixed</property>
+                <property name="flat">false</property>
+                <property name="type">down</property>
+                <property name="sort">false</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="simple_bind"/>
+                <property name="list_bind"/>
+                <property name="index1_bind"/>
+                <property name="enable_bind"/>
+                <property name="visible_bind"/>
+                <property name="onChange"/>
+                <property name="onIndexChange"/>
+                <property name="onAccept"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="pushbutton">
+                <property name="name"/>
+                <property name="label"/>
+                <property name="tip"/>
+                <property name="bitmap">帮助.png</property>
+                <property name="bitmap_align">left</property>
+                <property name="width">15</property>
+                <property name="height">12</property>
+                <property name="adjust">fixed</property>
+                <property name="can_check">false</property>
+                <property name="default">false</property>
+                <property name="flat">true</property>
+                <property name="flat_radio">false</property>
+                <property name="gray">false</property>
+                <property name="toolbutton">false</property>
+                <property name="id_alias">59</property>
+                <property name="visible">true</property>
+                <property name="onClick"/>
+                <property name="onCheck"/>
+                <property name="onContentMenu"/>
+                <property name="shadow">false</property>
+                <property name="shadow_type">soft</property>
+                <property name="enable_bind"/>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="visible_bind"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">ThermoSolver Licenses</property>
+                <property name="tip"/>
+                <property name="id_alias">61</property>
+                <property name="width">80</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">false</property>
+                <property name="align">right</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="checkbutton">
+                <property name="name"/>
+                <property name="label">Use if Necessary</property>
+                <property name="tip"/>
+                <property name="id_alias">62</property>
+                <property name="width">39</property>
+                <property name="height">10</property>
+                <property name="auto">true</property>
+                <property name="adjust">fixed</property>
+                <property name="flat">false</property>
+                <property name="check">false</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="simple_bind"/>
+                <property name="valid_bind"/>
+                <property name="enable_bind"/>
+                <property name="visible_bind"/>
+                <property name="onClick"/>
+                <property name="handle_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">Used License Server:</property>
+                <property name="tip"/>
+                <property name="id_alias">64</property>
+                <property name="width">80</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">false</property>
+                <property name="align">right</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="label">
+                <property name="name"/>
+                <property name="text">2375@DESKTOP-5E3M8G8</property>
+                <property name="tip"/>
+                <property name="id_alias">65</property>
+                <property name="width">19</property>
+                <property name="height">8</property>
+                <property name="adjust">fixed</property>
+                <property name="auto_width">true</property>
+                <property name="align">left</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="handle_bind"/>
+                <property name="simple_bind"/>
+                <property name="visible_bind"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+              <widget type="space">
+                <property name="size">auto</property>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="bitmap">
+                <property name="name"/>
+                <property name="picture">AutoForm_Solver.png</property>
+                <property name="autoPlay">false</property>
+                <property name="id_alias">67</property>
+                <property name="width">160</property>
+                <property name="height">40</property>
+                <property name="adjust">fixed</property>
+                <property name="fit_origin_size">false</property>
+                <property name="transparent_background">false</property>
+                <property name="mouse_trace">false</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="simple_bind"/>
+                <property name="handle_bind"/>
+                <property name="onLButtonDown"/>
+                <property name="onLButtonUp"/>
+                <property name="onMButtonDown"/>
+                <property name="onMButtonUp"/>
+                <property name="onRButtonDown"/>
+                <property name="onRButtonUp"/>
+                <property name="onMouseMove"/>
+                <property name="onResize"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+            </widget>
+            <widget type="hbox">
+              <property name="adjust">auto</property>
+              <property name="hightlight">false</property>
+              <property name="margin">1</property>
+              <property name="scroll">false</property>
+              <property name="shadow">true</property>
+              <property name="scroll_width">auto</property>
+              <property name="scroll_amargin">5</property>
+              <property name="scroll_steps">3</property>
+              <widget type="bitmap">
+                <property name="name"/>
+                <property name="picture">AutoForm-ThermoSolver.png</property>
+                <property name="autoPlay">false</property>
+                <property name="id_alias">68</property>
+                <property name="width">160</property>
+                <property name="height">40</property>
+                <property name="adjust">fixed</property>
+                <property name="fit_origin_size">false</property>
+                <property name="transparent_background">false</property>
+                <property name="mouse_trace">false</property>
+                <property name="gray">false</property>
+                <property name="visible">true</property>
+                <property name="simple_bind"/>
+                <property name="handle_bind"/>
+                <property name="onLButtonDown"/>
+                <property name="onLButtonUp"/>
+                <property name="onMButtonDown"/>
+                <property name="onMButtonUp"/>
+                <property name="onRButtonDown"/>
+                <property name="onRButtonUp"/>
+                <property name="onMouseMove"/>
+                <property name="onResize"/>
+                <property name="hightlight">false</property>
+                <property name="stylesheet"/>
+              </widget>
+            </widget>
+          </widget>
+        </widget>
+        <widget type="separator">
+          <property name="id_alias">18</property>
+          <property name="margin">1</property>
+          <property name="gray">false</property>
+          <property name="visible">true</property>
+        </widget>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

+ 176 - 0
42409006-杨永泉/AF/kul/simulation_topmenu.kul

@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<kul_pkg type="ui" name="simulation_topmenu" xmlns="http://www.kingmesh.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kingmesh.com kul.xsd">
+  <property name="id">0x13b7b10d-0x6398-0x4268-0x83-0xe6-0x43-0xb5-0x4b-0xc3-0x36-0x07</property>
+  <widget type="form" name="simulation_topmenu_pane">
+    <property name="id">0x7934368c-0x679e-0x44b9-0xb8-0x7d-0xb6-0x61-0x7c-0x31-0xbf-0x9a</property>
+    <property name="style">composite</property>
+    <property name="title">Form</property>
+    <property name="titlebar">true</property>
+    <property name="icon">nil</property>
+    <property name="bkcolor">gray</property>
+    <property name="width">auto</property>
+    <property name="height">auto</property>
+    <property name="center">center</property>
+    <property name="auto_center">false</property>
+    <property name="transparent">false</property>
+    <property name="resize">true</property>
+    <property name="show">normal</property>
+    <property name="maximum_box">true</property>
+    <property name="minimum_box">true</property>
+    <property name="close_box">true</property>
+    <property name="toolwindow">false</property>
+    <property name="app_window">true</property>
+    <property name="topmost">true</property>
+    <property name="is_service">false</property>
+    <property name="attachment">none</property>
+    <property name="attachment_size">5</property>
+    <property name="attach_dev">none</property>
+    <property name="attach_dev_size">5</property>
+    <property name="javascript">simulation_topmenu_pane.js</property>
+    <property name="onGeometryChange"/>
+    <property name="onHotKey"/>
+    <property name="onDockChange"/>
+    <widget type="hbox">
+      <property name="adjust">horizontal</property>
+      <property name="hightlight">false</property>
+      <property name="margin">1</property>
+      <property name="scroll">false</property>
+      <property name="shadow">true</property>
+      <property name="scroll_width">auto</property>
+      <property name="scroll_amargin">5</property>
+      <property name="scroll_steps">3</property>
+      <widget type="pushbutton">
+        <property name="name">control_btn</property>
+        <property name="label">Control</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">25</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">3</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Control')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">setup_btn</property>
+        <property name="label">Setup</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">20</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">5</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Setup')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">start_btn</property>
+        <property name="label">Start</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">20</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">7</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Start')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">3</property>
+      </widget>
+      <widget type="pushbutton">
+        <property name="name">log_btn</property>
+        <property name="label">Log</property>
+        <property name="tip"/>
+        <property name="bitmap">nil</property>
+        <property name="bitmap_align">left</property>
+        <property name="width">15</property>
+        <property name="height">12</property>
+        <property name="adjust">fixed</property>
+        <property name="can_check">true</property>
+        <property name="default">false</property>
+        <property name="flat">false</property>
+        <property name="flat_radio">false</property>
+        <property name="gray">false</property>
+        <property name="toolbutton">false</property>
+        <property name="id_alias">9</property>
+        <property name="visible">true</property>
+        <property name="onClick">OnChangeStep('Log')</property>
+        <property name="onCheck"/>
+        <property name="onContentMenu"/>
+        <property name="shadow">false</property>
+        <property name="shadow_type">soft</property>
+        <property name="enable_bind"/>
+        <property name="simple_bind"/>
+        <property name="valid_bind"/>
+        <property name="visible_bind"/>
+        <property name="handle_bind"/>
+        <property name="hightlight">false</property>
+        <property name="stylesheet">part_btn</property>
+      </widget>
+      <widget type="space">
+        <property name="size">auto</property>
+      </widget>
+    </widget>
+  </widget>
+</kul_pkg>

+ 41 - 0
42409006-杨永泉/AF/localhost/app.js

@@ -0,0 +1,41 @@
+var createError = require('http-errors');
+var express = require('express');
+var path = require('path');
+var cookieParser = require('cookie-parser');
+var logger = require('morgan');
+
+var indexRouter = require('./routes/index');
+var usersRouter = require('./routes/users');
+
+var app = express();
+
+// view engine setup
+app.set('views', path.join(__dirname, 'views'));
+app.set('view engine', 'ejs');
+
+app.use(logger('dev'));
+app.use(express.json());
+app.use(express.urlencoded({ extended: false }));
+app.use(cookieParser());
+app.use(express.static(path.join(__dirname, 'public')));
+
+app.use('/', indexRouter);
+app.use('/users', usersRouter);
+
+// catch 404 and forward to error handler
+app.use(function(req, res, next) {
+  next(createError(404));
+});
+
+// error handler
+app.use(function(err, req, res, next) {
+  // set locals, only providing error in development
+  res.locals.message = err.message;
+  res.locals.error = req.app.get('env') === 'development' ? err : {};
+
+  // render the error page
+  res.status(err.status || 500);
+  res.render('error');
+});
+
+module.exports = app;

+ 103 - 0
42409006-杨永泉/AF/localhost/bin/www

@@ -0,0 +1,103 @@
+#!/usr/bin/env node
+
+/**
+ * Module dependencies.
+ */
+
+var app = require('../app');
+var debug = require('debug')('localhost:server');
+var http = require('http');
+
+/**
+ * Get port from environment and store in Express.
+ */
+
+var port = normalizePort(process.env.PORT || '4000');
+app.set('port', port);
+
+/**
+ * Create HTTP server.
+ */
+
+var server = http.createServer(app);
+var io     = require('socket.io')(server);
+/**
+ * Listen on provided port, on all network interfaces.
+ */
+
+server.listen(port);
+server.on('error', onError);
+server.on('listening', onListening);
+
+/**
+ * Normalize a port into a number, string, or false.
+ */
+
+function normalizePort(val) {
+  var port = parseInt(val, 10);
+
+  if (isNaN(port)) {
+    // named pipe
+    return val;
+  }
+
+  if (port >= 0) {
+    // port number
+    return port;
+  }
+
+  return false;
+}
+
+/**
+ * Event listener for HTTP server "error" event.
+ */
+
+function onError(error) {
+  if (error.syscall !== 'listen') {
+    throw error;
+  }
+
+  var bind = typeof port === 'string'
+    ? 'Pipe ' + port
+    : 'Port ' + port;
+
+  // handle specific listen errors with friendly messages
+  switch (error.code) {
+    case 'EACCES':
+      console.error(bind + ' requires elevated privileges');
+      process.exit(1);
+      break;
+    case 'EADDRINUSE':
+      console.error(bind + ' is already in use');
+      process.exit(1);
+      break;
+    default:
+      throw error;
+  }
+}
+
+/**
+ * Event listener for HTTP server "listening" event.
+ */
+
+function onListening() {
+  var addr = server.address();
+  var bind = typeof addr === 'string'
+    ? 'pipe ' + addr
+    : 'port ' + addr.port;
+  debug('Listening on ' + bind);
+}
+
+g_dataLineChart = false;
+
+io.on('connection', client=>{
+    client.on('updateLineChart', dataLineChart=>{
+        g_dataLineChart = dataLineChart;
+        io.emit('onUpdateLineChart', dataLineChart);
+    });
+
+    client.on('reloadLineChart', ()=>{
+        io.emit('OnReloadLineChar', g_dataLineChart);
+    });
+});

+ 96 - 0
42409006-杨永泉/AF/localhost/bin/www~

@@ -0,0 +1,96 @@
+#!/usr/bin/env node
+
+/**
+ * Module dependencies.
+ */
+
+var app = require('../app');
+var debug = require('debug')('localhost:server');
+var http = require('http');
+
+/**
+ * Get port from environment and store in Express.
+ */
+
+var port = normalizePort(process.env.PORT || '4000');
+app.set('port', port);
+
+/**
+ * Create HTTP server.
+ */
+
+var server = http.createServer(app);
+var io     = require('socket.io')(server);
+/**
+ * Listen on provided port, on all network interfaces.
+ */
+
+server.listen(port);
+server.on('error', onError);
+server.on('listening', onListening);
+
+/**
+ * Normalize a port into a number, string, or false.
+ */
+
+function normalizePort(val) {
+  var port = parseInt(val, 10);
+
+  if (isNaN(port)) {
+    // named pipe
+    return val;
+  }
+
+  if (port >= 0) {
+    // port number
+    return port;
+  }
+
+  return false;
+}
+
+/**
+ * Event listener for HTTP server "error" event.
+ */
+
+function onError(error) {
+  if (error.syscall !== 'listen') {
+    throw error;
+  }
+
+  var bind = typeof port === 'string'
+    ? 'Pipe ' + port
+    : 'Port ' + port;
+
+  // handle specific listen errors with friendly messages
+  switch (error.code) {
+    case 'EACCES':
+      console.error(bind + ' requires elevated privileges');
+      process.exit(1);
+      break;
+    case 'EADDRINUSE':
+      console.error(bind + ' is already in use');
+      process.exit(1);
+      break;
+    default:
+      throw error;
+  }
+}
+
+/**
+ * Event listener for HTTP server "listening" event.
+ */
+
+function onListening() {
+  var addr = server.address();
+  var bind = typeof addr === 'string'
+    ? 'pipe ' + addr
+    : 'port ' + addr.port;
+  debug('Listening on ' + bind);
+}
+
+io.on('connection', client=>{
+    client.on('updateLineChart', dataLineChart=>{
+        io.emit('onUpdateLineChart', dataLineChart);
+    });
+});

+ 12 - 0
42409006-杨永泉/AF/localhost/node_modules/.bin/mime

@@ -0,0 +1,12 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  exec "$basedir/node"  "$basedir/../mime/cli.js" "$@"
+else 
+  exec node  "$basedir/../mime/cli.js" "$@"
+fi

+ 17 - 0
42409006-杨永泉/AF/localhost/node_modules/.bin/mime.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\..\mime\cli.js" %*

+ 28 - 0
42409006-杨永泉/AF/localhost/node_modules/.bin/mime.ps1

@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "$basedir/node$exe"  "$basedir/../mime/cli.js" $args
+  } else {
+    & "$basedir/node$exe"  "$basedir/../mime/cli.js" $args
+  }
+  $ret=$LASTEXITCODE
+} else {
+  # Support pipeline input
+  if ($MyInvocation.ExpectingInput) {
+    $input | & "node$exe"  "$basedir/../mime/cli.js" $args
+  } else {
+    & "node$exe"  "$basedir/../mime/cli.js" $args
+  }
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 754 - 0
42409006-杨永泉/AF/localhost/node_modules/.package-lock.json

@@ -0,0 +1,754 @@
+{
+  "name": "localhost",
+  "version": "0.0.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "node_modules/@socket.io/component-emitter": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
+      "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="
+    },
+    "node_modules/@types/cookie": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmmirror.com/@types/cookie/-/cookie-0.4.1.tgz",
+      "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
+    },
+    "node_modules/@types/cors": {
+      "version": "2.8.17",
+      "resolved": "https://registry.npmmirror.com/@types/cors/-/cors-2.8.17.tgz",
+      "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/node": {
+      "version": "22.5.5",
+      "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.5.5.tgz",
+      "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==",
+      "dependencies": {
+        "undici-types": "~6.19.2"
+      }
+    },
+    "node_modules/accepts": {
+      "version": "1.3.8",
+      "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
+      "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+      "dependencies": {
+        "mime-types": "~2.1.34",
+        "negotiator": "0.6.3"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/array-flatten": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
+      "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+    },
+    "node_modules/base64id": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/base64id/-/base64id-2.0.0.tgz",
+      "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
+      "engines": {
+        "node": "^4.5.0 || >= 5.9"
+      }
+    },
+    "node_modules/basic-auth": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/basic-auth/-/basic-auth-2.0.1.tgz",
+      "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+      "dependencies": {
+        "safe-buffer": "5.1.2"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/body-parser": {
+      "version": "1.18.3",
+      "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.18.3.tgz",
+      "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==",
+      "dependencies": {
+        "bytes": "3.0.0",
+        "content-type": "~1.0.4",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "http-errors": "~1.6.3",
+        "iconv-lite": "0.4.23",
+        "on-finished": "~2.3.0",
+        "qs": "6.5.2",
+        "raw-body": "2.3.3",
+        "type-is": "~1.6.16"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/bytes": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz",
+      "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/content-disposition": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.2.tgz",
+      "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/content-type": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
+      "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/cookie": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.4.1.tgz",
+      "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/cookie-parser": {
+      "version": "1.4.6",
+      "resolved": "https://registry.npmmirror.com/cookie-parser/-/cookie-parser-1.4.6.tgz",
+      "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
+      "dependencies": {
+        "cookie": "0.4.1",
+        "cookie-signature": "1.0.6"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/cookie-signature": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
+      "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+    },
+    "node_modules/cors": {
+      "version": "2.8.5",
+      "resolved": "https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz",
+      "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+      "dependencies": {
+        "object-assign": "^4",
+        "vary": "^1"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/depd": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz",
+      "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/destroy": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.0.4.tgz",
+      "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg=="
+    },
+    "node_modules/ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
+      "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+    },
+    "node_modules/ejs": {
+      "version": "2.6.2",
+      "resolved": "https://registry.npmmirror.com/ejs/-/ejs-2.6.2.tgz",
+      "integrity": "sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/encodeurl": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
+      "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/engine.io": {
+      "version": "6.5.5",
+      "resolved": "https://registry.npmmirror.com/engine.io/-/engine.io-6.5.5.tgz",
+      "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==",
+      "dependencies": {
+        "@types/cookie": "^0.4.1",
+        "@types/cors": "^2.8.12",
+        "@types/node": ">=10.0.0",
+        "accepts": "~1.3.4",
+        "base64id": "2.0.0",
+        "cookie": "~0.4.1",
+        "cors": "~2.8.5",
+        "debug": "~4.3.1",
+        "engine.io-parser": "~5.2.1",
+        "ws": "~8.17.1"
+      },
+      "engines": {
+        "node": ">=10.2.0"
+      }
+    },
+    "node_modules/engine.io-parser": {
+      "version": "5.2.3",
+      "resolved": "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
+      "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
+    "node_modules/engine.io/node_modules/debug": {
+      "version": "4.3.7",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.7.tgz",
+      "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/engine.io/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+    },
+    "node_modules/escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+    },
+    "node_modules/etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
+      "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/express": {
+      "version": "4.16.4",
+      "resolved": "https://registry.npmmirror.com/express/-/express-4.16.4.tgz",
+      "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
+      "dependencies": {
+        "accepts": "~1.3.5",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.18.3",
+        "content-disposition": "0.5.2",
+        "content-type": "~1.0.4",
+        "cookie": "0.3.1",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "1.1.1",
+        "fresh": "0.5.2",
+        "merge-descriptors": "1.0.1",
+        "methods": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.2",
+        "path-to-regexp": "0.1.7",
+        "proxy-addr": "~2.0.4",
+        "qs": "6.5.2",
+        "range-parser": "~1.2.0",
+        "safe-buffer": "5.1.2",
+        "send": "0.16.2",
+        "serve-static": "1.13.2",
+        "setprototypeof": "1.1.0",
+        "statuses": "~1.4.0",
+        "type-is": "~1.6.16",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.10.0"
+      }
+    },
+    "node_modules/express/node_modules/cookie": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.3.1.tgz",
+      "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/finalhandler": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.1.tgz",
+      "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
+      "dependencies": {
+        "debug": "2.6.9",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.2",
+        "statuses": "~1.4.0",
+        "unpipe": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/forwarded": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
+      "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/fresh": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
+      "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/http-errors": {
+      "version": "1.6.3",
+      "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz",
+      "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+      "dependencies": {
+        "depd": "~1.1.2",
+        "inherits": "2.0.3",
+        "setprototypeof": "1.1.0",
+        "statuses": ">= 1.4.0 < 2"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/iconv-lite": {
+      "version": "0.4.23",
+      "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.23.tgz",
+      "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz",
+      "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+    },
+    "node_modules/ipaddr.js": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/media-typer": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
+      "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/merge-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+      "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+    },
+    "node_modules/methods": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
+      "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mime": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/mime/-/mime-1.4.1.tgz",
+      "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
+      "bin": {
+        "mime": "cli.js"
+      }
+    },
+    "node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/morgan": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmmirror.com/morgan/-/morgan-1.9.1.tgz",
+      "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
+      "dependencies": {
+        "basic-auth": "~2.0.0",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "on-headers": "~1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+    },
+    "node_modules/negotiator": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
+      "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/on-finished": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz",
+      "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+      "dependencies": {
+        "ee-first": "1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/on-headers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz",
+      "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/parseurl": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/path-to-regexp": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+      "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+    },
+    "node_modules/proxy-addr": {
+      "version": "2.0.7",
+      "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
+      "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+      "dependencies": {
+        "forwarded": "0.2.0",
+        "ipaddr.js": "1.9.1"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/qs": {
+      "version": "6.5.2",
+      "resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.2.tgz",
+      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+      "engines": {
+        "node": ">=0.6"
+      }
+    },
+    "node_modules/range-parser": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
+      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/raw-body": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.3.3.tgz",
+      "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
+      "dependencies": {
+        "bytes": "3.0.0",
+        "http-errors": "1.6.3",
+        "iconv-lite": "0.4.23",
+        "unpipe": "1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+    },
+    "node_modules/safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+    },
+    "node_modules/send": {
+      "version": "0.16.2",
+      "resolved": "https://registry.npmmirror.com/send/-/send-0.16.2.tgz",
+      "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
+      "dependencies": {
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "destroy": "~1.0.4",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "~1.6.2",
+        "mime": "1.4.1",
+        "ms": "2.0.0",
+        "on-finished": "~2.3.0",
+        "range-parser": "~1.2.0",
+        "statuses": "~1.4.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/serve-static": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.13.2.tgz",
+      "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
+      "dependencies": {
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.2",
+        "send": "0.16.2"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/setprototypeof": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz",
+      "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+    },
+    "node_modules/socket.io": {
+      "version": "4.7.5",
+      "resolved": "https://registry.npmmirror.com/socket.io/-/socket.io-4.7.5.tgz",
+      "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==",
+      "dependencies": {
+        "accepts": "~1.3.4",
+        "base64id": "~2.0.0",
+        "cors": "~2.8.5",
+        "debug": "~4.3.2",
+        "engine.io": "~6.5.2",
+        "socket.io-adapter": "~2.5.2",
+        "socket.io-parser": "~4.2.4"
+      },
+      "engines": {
+        "node": ">=10.2.0"
+      }
+    },
+    "node_modules/socket.io-adapter": {
+      "version": "2.5.5",
+      "resolved": "https://registry.npmmirror.com/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz",
+      "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==",
+      "dependencies": {
+        "debug": "~4.3.4",
+        "ws": "~8.17.1"
+      }
+    },
+    "node_modules/socket.io-adapter/node_modules/debug": {
+      "version": "4.3.7",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.7.tgz",
+      "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/socket.io-adapter/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+    },
+    "node_modules/socket.io-parser": {
+      "version": "4.2.4",
+      "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+      "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
+      "dependencies": {
+        "@socket.io/component-emitter": "~3.1.0",
+        "debug": "~4.3.1"
+      },
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
+    "node_modules/socket.io-parser/node_modules/debug": {
+      "version": "4.3.7",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.7.tgz",
+      "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/socket.io-parser/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+    },
+    "node_modules/socket.io/node_modules/debug": {
+      "version": "4.3.7",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.7.tgz",
+      "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+      "dependencies": {
+        "ms": "^2.1.3"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/socket.io/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+    },
+    "node_modules/statuses": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.4.0.tgz",
+      "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/type-is": {
+      "version": "1.6.18",
+      "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
+      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+      "dependencies": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.24"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/undici-types": {
+      "version": "6.19.8",
+      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz",
+      "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
+    },
+    "node_modules/unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
+      "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/utils-merge": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
+      "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+      "engines": {
+        "node": ">= 0.4.0"
+      }
+    },
+    "node_modules/vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
+      "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/ws": {
+      "version": "8.17.1",
+      "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.1.tgz",
+      "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+      "engines": {
+        "node": ">=10.0.0"
+      },
+      "peerDependencies": {
+        "bufferutil": "^4.0.1",
+        "utf-8-validate": ">=5.0.2"
+      },
+      "peerDependenciesMeta": {
+        "bufferutil": {
+          "optional": true
+        },
+        "utf-8-validate": {
+          "optional": true
+        }
+      }
+    }
+  }
+}

+ 24 - 0
42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/LICENSE

@@ -0,0 +1,24 @@
+(The MIT License)
+
+Copyright (c) 2014 Component contributors <dev@component.io>
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.

+ 79 - 0
42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/Readme.md

@@ -0,0 +1,79 @@
+# `@socket.io/component-emitter`
+
+  Event emitter component.
+
+This project is a fork of the [`component-emitter`](https://github.com/sindresorhus/component-emitter) project, with [Socket.IO](https://socket.io/)-specific TypeScript typings.
+
+## Installation
+
+```
+$ npm i @socket.io/component-emitter
+```
+
+## API
+
+### Emitter(obj)
+
+  The `Emitter` may also be used as a mixin. For example
+  a "plain" object may become an emitter, or you may
+  extend an existing prototype.
+
+  As an `Emitter` instance:
+
+```js
+import { Emitter } from '@socket.io/component-emitter';
+
+var emitter = new Emitter;
+emitter.emit('something');
+```
+
+  As a mixin:
+
+```js
+import { Emitter } from '@socket.io/component-emitter';
+
+var user = { name: 'tobi' };
+Emitter(user);
+
+user.emit('im a user');
+```
+
+  As a prototype mixin:
+
+```js
+import { Emitter } from '@socket.io/component-emitter';
+
+Emitter(User.prototype);
+```
+
+### Emitter#on(event, fn)
+
+  Register an `event` handler `fn`.
+
+### Emitter#once(event, fn)
+
+  Register a single-shot `event` handler `fn`,
+  removed immediately after it is invoked the
+  first time.
+
+### Emitter#off(event, fn)
+
+  * Pass `event` and `fn` to remove a listener.
+  * Pass `event` to remove all listeners on that event.
+  * Pass nothing to remove all listeners on all events.
+
+### Emitter#emit(event, ...)
+
+  Emit an `event` with variable option args.
+
+### Emitter#listeners(event)
+
+  Return an array of callbacks, or an empty array.
+
+### Emitter#hasListeners(event)
+
+  Check if this emitter has `event` handlers.
+
+## License
+
+MIT

+ 179 - 0
42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/cjs/index.d.ts

@@ -0,0 +1,179 @@
+/**
+ * An events map is an interface that maps event names to their value, which
+ * represents the type of the `on` listener.
+ */
+export interface EventsMap {
+    [event: string]: any;
+}
+
+/**
+ * The default events map, used if no EventsMap is given. Using this EventsMap
+ * is equivalent to accepting all event names, and any data.
+ */
+export interface DefaultEventsMap {
+    [event: string]: (...args: any[]) => void;
+}
+
+/**
+ * Returns a union type containing all the keys of an event map.
+ */
+export type EventNames<Map extends EventsMap> = keyof Map & (string | symbol);
+
+/** The tuple type representing the parameters of an event listener */
+export type EventParams<
+    Map extends EventsMap,
+    Ev extends EventNames<Map>
+    > = Parameters<Map[Ev]>;
+
+/**
+ * The event names that are either in ReservedEvents or in UserEvents
+ */
+export type ReservedOrUserEventNames<
+    ReservedEventsMap extends EventsMap,
+    UserEvents extends EventsMap
+    > = EventNames<ReservedEventsMap> | EventNames<UserEvents>;
+
+/**
+ * Type of a listener of a user event or a reserved event. If `Ev` is in
+ * `ReservedEvents`, the reserved event listener is returned.
+ */
+export type ReservedOrUserListener<
+    ReservedEvents extends EventsMap,
+    UserEvents extends EventsMap,
+    Ev extends ReservedOrUserEventNames<ReservedEvents, UserEvents>
+    > = FallbackToUntypedListener<
+    Ev extends EventNames<ReservedEvents>
+        ? ReservedEvents[Ev]
+        : Ev extends EventNames<UserEvents>
+        ? UserEvents[Ev]
+        : never
+    >;
+
+/**
+ * Returns an untyped listener type if `T` is `never`; otherwise, returns `T`.
+ *
+ * This is a hack to mitigate https://github.com/socketio/socket.io/issues/3833.
+ * Needed because of https://github.com/microsoft/TypeScript/issues/41778
+ */
+type FallbackToUntypedListener<T> = [T] extends [never]
+    ? (...args: any[]) => void | Promise<void>
+    : T;
+
+/**
+ * Strictly typed version of an `EventEmitter`. A `TypedEventEmitter` takes type
+ * parameters for mappings of event names to event data types, and strictly
+ * types method calls to the `EventEmitter` according to these event maps.
+ *
+ * @typeParam ListenEvents - `EventsMap` of user-defined events that can be
+ * listened to with `on` or `once`
+ * @typeParam EmitEvents - `EventsMap` of user-defined events that can be
+ * emitted with `emit`
+ * @typeParam ReservedEvents - `EventsMap` of reserved events, that can be
+ * emitted by socket.io with `emitReserved`, and can be listened to with
+ * `listen`.
+ */
+export class Emitter<
+    ListenEvents extends EventsMap,
+    EmitEvents extends EventsMap,
+    ReservedEvents extends EventsMap = {}
+    > {
+    /**
+     * Adds the `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     * @param listener Callback function
+     */
+    on<Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>>(
+        ev: Ev,
+        listener: ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>
+    ): this;
+
+    /**
+     * Adds a one-time `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     * @param listener Callback function
+     */
+    once<Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>>(
+        ev: Ev,
+        listener: ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>
+    ): this;
+
+    /**
+     * Removes the `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     * @param listener Callback function
+     */
+    off<Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>>(
+        ev?: Ev,
+        listener?: ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>
+    ): this;
+
+    /**
+     * Emits an event.
+     *
+     * @param ev Name of the event
+     * @param args Values to send to listeners of this event
+     */
+    emit<Ev extends EventNames<EmitEvents>>(
+        ev: Ev,
+        ...args: EventParams<EmitEvents, Ev>
+    ): this;
+
+    /**
+     * Emits a reserved event.
+     *
+     * This method is `protected`, so that only a class extending
+     * `StrictEventEmitter` can emit its own reserved events.
+     *
+     * @param ev Reserved event name
+     * @param args Arguments to emit along with the event
+     */
+    protected emitReserved<Ev extends EventNames<ReservedEvents>>(
+        ev: Ev,
+        ...args: EventParams<ReservedEvents, Ev>
+    ): this;
+
+    /**
+     * Returns the listeners listening to an event.
+     *
+     * @param event Event name
+     * @returns Array of listeners subscribed to `event`
+     */
+    listeners<Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>>(
+        event: Ev
+    ): ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>[];
+
+    /**
+     * Returns true if there is a listener for this event.
+     *
+     * @param event Event name
+     * @returns boolean
+     */
+    hasListeners<
+        Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>
+        >(event: Ev): boolean;
+
+    /**
+     * Removes the `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     * @param listener Callback function
+     */
+    removeListener<
+        Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>
+        >(
+        ev?: Ev,
+        listener?: ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>
+    ): this;
+
+    /**
+     * Removes all `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     */
+    removeAllListeners<
+        Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>
+        >(ev?: Ev): this;
+}

+ 176 - 0
42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/cjs/index.js

@@ -0,0 +1,176 @@
+
+/**
+ * Expose `Emitter`.
+ */
+
+exports.Emitter = Emitter;
+
+/**
+ * Initialize a new `Emitter`.
+ *
+ * @api public
+ */
+
+function Emitter(obj) {
+  if (obj) return mixin(obj);
+}
+
+/**
+ * Mixin the emitter properties.
+ *
+ * @param {Object} obj
+ * @return {Object}
+ * @api private
+ */
+
+function mixin(obj) {
+  for (var key in Emitter.prototype) {
+    obj[key] = Emitter.prototype[key];
+  }
+  return obj;
+}
+
+/**
+ * Listen on the given `event` with `fn`.
+ *
+ * @param {String} event
+ * @param {Function} fn
+ * @return {Emitter}
+ * @api public
+ */
+
+Emitter.prototype.on =
+Emitter.prototype.addEventListener = function(event, fn){
+  this._callbacks = this._callbacks || {};
+  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])
+    .push(fn);
+  return this;
+};
+
+/**
+ * Adds an `event` listener that will be invoked a single
+ * time then automatically removed.
+ *
+ * @param {String} event
+ * @param {Function} fn
+ * @return {Emitter}
+ * @api public
+ */
+
+Emitter.prototype.once = function(event, fn){
+  function on() {
+    this.off(event, on);
+    fn.apply(this, arguments);
+  }
+
+  on.fn = fn;
+  this.on(event, on);
+  return this;
+};
+
+/**
+ * Remove the given callback for `event` or all
+ * registered callbacks.
+ *
+ * @param {String} event
+ * @param {Function} fn
+ * @return {Emitter}
+ * @api public
+ */
+
+Emitter.prototype.off =
+Emitter.prototype.removeListener =
+Emitter.prototype.removeAllListeners =
+Emitter.prototype.removeEventListener = function(event, fn){
+  this._callbacks = this._callbacks || {};
+
+  // all
+  if (0 == arguments.length) {
+    this._callbacks = {};
+    return this;
+  }
+
+  // specific event
+  var callbacks = this._callbacks['$' + event];
+  if (!callbacks) return this;
+
+  // remove all handlers
+  if (1 == arguments.length) {
+    delete this._callbacks['$' + event];
+    return this;
+  }
+
+  // remove specific handler
+  var cb;
+  for (var i = 0; i < callbacks.length; i++) {
+    cb = callbacks[i];
+    if (cb === fn || cb.fn === fn) {
+      callbacks.splice(i, 1);
+      break;
+    }
+  }
+
+  // Remove event specific arrays for event types that no
+  // one is subscribed for to avoid memory leak.
+  if (callbacks.length === 0) {
+    delete this._callbacks['$' + event];
+  }
+
+  return this;
+};
+
+/**
+ * Emit `event` with the given args.
+ *
+ * @param {String} event
+ * @param {Mixed} ...
+ * @return {Emitter}
+ */
+
+Emitter.prototype.emit = function(event){
+  this._callbacks = this._callbacks || {};
+
+  var args = new Array(arguments.length - 1)
+    , callbacks = this._callbacks['$' + event];
+
+  for (var i = 1; i < arguments.length; i++) {
+    args[i - 1] = arguments[i];
+  }
+
+  if (callbacks) {
+    callbacks = callbacks.slice(0);
+    for (var i = 0, len = callbacks.length; i < len; ++i) {
+      callbacks[i].apply(this, args);
+    }
+  }
+
+  return this;
+};
+
+// alias used for reserved events (protected method)
+Emitter.prototype.emitReserved = Emitter.prototype.emit;
+
+/**
+ * Return array of callbacks for `event`.
+ *
+ * @param {String} event
+ * @return {Array}
+ * @api public
+ */
+
+Emitter.prototype.listeners = function(event){
+  this._callbacks = this._callbacks || {};
+  return this._callbacks['$' + event] || [];
+};
+
+/**
+ * Check if this emitter has `event` handlers.
+ *
+ * @param {String} event
+ * @return {Boolean}
+ * @api public
+ */
+
+Emitter.prototype.hasListeners = function(event){
+  return !! this.listeners(event).length;
+};

+ 4 - 0
42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/cjs/package.json

@@ -0,0 +1,4 @@
+{
+  "name": "@socket.io/component-emitter",
+  "type": "commonjs"
+}

+ 179 - 0
42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/esm/index.d.ts

@@ -0,0 +1,179 @@
+/**
+ * An events map is an interface that maps event names to their value, which
+ * represents the type of the `on` listener.
+ */
+export interface EventsMap {
+    [event: string]: any;
+}
+
+/**
+ * The default events map, used if no EventsMap is given. Using this EventsMap
+ * is equivalent to accepting all event names, and any data.
+ */
+export interface DefaultEventsMap {
+    [event: string]: (...args: any[]) => void;
+}
+
+/**
+ * Returns a union type containing all the keys of an event map.
+ */
+export type EventNames<Map extends EventsMap> = keyof Map & (string | symbol);
+
+/** The tuple type representing the parameters of an event listener */
+export type EventParams<
+    Map extends EventsMap,
+    Ev extends EventNames<Map>
+    > = Parameters<Map[Ev]>;
+
+/**
+ * The event names that are either in ReservedEvents or in UserEvents
+ */
+export type ReservedOrUserEventNames<
+    ReservedEventsMap extends EventsMap,
+    UserEvents extends EventsMap
+    > = EventNames<ReservedEventsMap> | EventNames<UserEvents>;
+
+/**
+ * Type of a listener of a user event or a reserved event. If `Ev` is in
+ * `ReservedEvents`, the reserved event listener is returned.
+ */
+export type ReservedOrUserListener<
+    ReservedEvents extends EventsMap,
+    UserEvents extends EventsMap,
+    Ev extends ReservedOrUserEventNames<ReservedEvents, UserEvents>
+    > = FallbackToUntypedListener<
+    Ev extends EventNames<ReservedEvents>
+        ? ReservedEvents[Ev]
+        : Ev extends EventNames<UserEvents>
+        ? UserEvents[Ev]
+        : never
+    >;
+
+/**
+ * Returns an untyped listener type if `T` is `never`; otherwise, returns `T`.
+ *
+ * This is a hack to mitigate https://github.com/socketio/socket.io/issues/3833.
+ * Needed because of https://github.com/microsoft/TypeScript/issues/41778
+ */
+type FallbackToUntypedListener<T> = [T] extends [never]
+    ? (...args: any[]) => void | Promise<void>
+    : T;
+
+/**
+ * Strictly typed version of an `EventEmitter`. A `TypedEventEmitter` takes type
+ * parameters for mappings of event names to event data types, and strictly
+ * types method calls to the `EventEmitter` according to these event maps.
+ *
+ * @typeParam ListenEvents - `EventsMap` of user-defined events that can be
+ * listened to with `on` or `once`
+ * @typeParam EmitEvents - `EventsMap` of user-defined events that can be
+ * emitted with `emit`
+ * @typeParam ReservedEvents - `EventsMap` of reserved events, that can be
+ * emitted by socket.io with `emitReserved`, and can be listened to with
+ * `listen`.
+ */
+export class Emitter<
+    ListenEvents extends EventsMap,
+    EmitEvents extends EventsMap,
+    ReservedEvents extends EventsMap = {}
+    > {
+    /**
+     * Adds the `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     * @param listener Callback function
+     */
+    on<Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>>(
+        ev: Ev,
+        listener: ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>
+    ): this;
+
+    /**
+     * Adds a one-time `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     * @param listener Callback function
+     */
+    once<Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>>(
+        ev: Ev,
+        listener: ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>
+    ): this;
+
+    /**
+     * Removes the `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     * @param listener Callback function
+     */
+    off<Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>>(
+        ev?: Ev,
+        listener?: ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>
+    ): this;
+
+    /**
+     * Emits an event.
+     *
+     * @param ev Name of the event
+     * @param args Values to send to listeners of this event
+     */
+    emit<Ev extends EventNames<EmitEvents>>(
+        ev: Ev,
+        ...args: EventParams<EmitEvents, Ev>
+    ): this;
+
+    /**
+     * Emits a reserved event.
+     *
+     * This method is `protected`, so that only a class extending
+     * `StrictEventEmitter` can emit its own reserved events.
+     *
+     * @param ev Reserved event name
+     * @param args Arguments to emit along with the event
+     */
+    protected emitReserved<Ev extends EventNames<ReservedEvents>>(
+        ev: Ev,
+        ...args: EventParams<ReservedEvents, Ev>
+    ): this;
+
+    /**
+     * Returns the listeners listening to an event.
+     *
+     * @param event Event name
+     * @returns Array of listeners subscribed to `event`
+     */
+    listeners<Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>>(
+        event: Ev
+    ): ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>[];
+
+    /**
+     * Returns true if there is a listener for this event.
+     *
+     * @param event Event name
+     * @returns boolean
+     */
+    hasListeners<
+        Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>
+        >(event: Ev): boolean;
+
+    /**
+     * Removes the `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     * @param listener Callback function
+     */
+    removeListener<
+        Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>
+        >(
+        ev?: Ev,
+        listener?: ReservedOrUserListener<ReservedEvents, ListenEvents, Ev>
+    ): this;
+
+    /**
+     * Removes all `listener` function as an event listener for `ev`.
+     *
+     * @param ev Name of the event
+     */
+    removeAllListeners<
+        Ev extends ReservedOrUserEventNames<ReservedEvents, ListenEvents>
+        >(ev?: Ev): this;
+}

+ 169 - 0
42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/esm/index.js

@@ -0,0 +1,169 @@
+/**
+ * Initialize a new `Emitter`.
+ *
+ * @api public
+ */
+
+export function Emitter(obj) {
+  if (obj) return mixin(obj);
+}
+
+/**
+ * Mixin the emitter properties.
+ *
+ * @param {Object} obj
+ * @return {Object}
+ * @api private
+ */
+
+function mixin(obj) {
+  for (var key in Emitter.prototype) {
+    obj[key] = Emitter.prototype[key];
+  }
+  return obj;
+}
+
+/**
+ * Listen on the given `event` with `fn`.
+ *
+ * @param {String} event
+ * @param {Function} fn
+ * @return {Emitter}
+ * @api public
+ */
+
+Emitter.prototype.on =
+Emitter.prototype.addEventListener = function(event, fn){
+  this._callbacks = this._callbacks || {};
+  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])
+    .push(fn);
+  return this;
+};
+
+/**
+ * Adds an `event` listener that will be invoked a single
+ * time then automatically removed.
+ *
+ * @param {String} event
+ * @param {Function} fn
+ * @return {Emitter}
+ * @api public
+ */
+
+Emitter.prototype.once = function(event, fn){
+  function on() {
+    this.off(event, on);
+    fn.apply(this, arguments);
+  }
+
+  on.fn = fn;
+  this.on(event, on);
+  return this;
+};
+
+/**
+ * Remove the given callback for `event` or all
+ * registered callbacks.
+ *
+ * @param {String} event
+ * @param {Function} fn
+ * @return {Emitter}
+ * @api public
+ */
+
+Emitter.prototype.off =
+Emitter.prototype.removeListener =
+Emitter.prototype.removeAllListeners =
+Emitter.prototype.removeEventListener = function(event, fn){
+  this._callbacks = this._callbacks || {};
+
+  // all
+  if (0 == arguments.length) {
+    this._callbacks = {};
+    return this;
+  }
+
+  // specific event
+  var callbacks = this._callbacks['$' + event];
+  if (!callbacks) return this;
+
+  // remove all handlers
+  if (1 == arguments.length) {
+    delete this._callbacks['$' + event];
+    return this;
+  }
+
+  // remove specific handler
+  var cb;
+  for (var i = 0; i < callbacks.length; i++) {
+    cb = callbacks[i];
+    if (cb === fn || cb.fn === fn) {
+      callbacks.splice(i, 1);
+      break;
+    }
+  }
+
+  // Remove event specific arrays for event types that no
+  // one is subscribed for to avoid memory leak.
+  if (callbacks.length === 0) {
+    delete this._callbacks['$' + event];
+  }
+
+  return this;
+};
+
+/**
+ * Emit `event` with the given args.
+ *
+ * @param {String} event
+ * @param {Mixed} ...
+ * @return {Emitter}
+ */
+
+Emitter.prototype.emit = function(event){
+  this._callbacks = this._callbacks || {};
+
+  var args = new Array(arguments.length - 1)
+    , callbacks = this._callbacks['$' + event];
+
+  for (var i = 1; i < arguments.length; i++) {
+    args[i - 1] = arguments[i];
+  }
+
+  if (callbacks) {
+    callbacks = callbacks.slice(0);
+    for (var i = 0, len = callbacks.length; i < len; ++i) {
+      callbacks[i].apply(this, args);
+    }
+  }
+
+  return this;
+};
+
+// alias used for reserved events (protected method)
+Emitter.prototype.emitReserved = Emitter.prototype.emit;
+
+/**
+ * Return array of callbacks for `event`.
+ *
+ * @param {String} event
+ * @return {Array}
+ * @api public
+ */
+
+Emitter.prototype.listeners = function(event){
+  this._callbacks = this._callbacks || {};
+  return this._callbacks['$' + event] || [];
+};
+
+/**
+ * Check if this emitter has `event` handlers.
+ *
+ * @param {String} event
+ * @return {Boolean}
+ * @api public
+ */
+
+Emitter.prototype.hasListeners = function(event){
+  return !! this.listeners(event).length;
+};

+ 4 - 0
42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/lib/esm/package.json

@@ -0,0 +1,4 @@
+{
+  "name": "@socket.io/component-emitter",
+  "type": "module"
+}

+ 28 - 0
42409006-杨永泉/AF/localhost/node_modules/@socket.io/component-emitter/package.json

@@ -0,0 +1,28 @@
+{
+  "name": "@socket.io/component-emitter",
+  "description": "Event emitter",
+  "version": "3.1.2",
+  "license": "MIT",
+  "devDependencies": {
+    "mocha": "*",
+    "should": "*"
+  },
+  "component": {
+    "scripts": {
+      "emitter/index.js": "index.js"
+    }
+  },
+  "main": "./lib/cjs/index.js",
+  "module": "./lib/esm/index.js",
+  "types": "./lib/cjs/index.d.ts",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/socketio/emitter.git"
+  },
+  "scripts": {
+    "test": "make test"
+  },
+  "files": [
+    "lib/"
+  ]
+}

+ 21 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/cookie/LICENSE

@@ -0,0 +1,21 @@
+    MIT License
+
+    Copyright (c) Microsoft Corporation.
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in all
+    copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+    SOFTWARE

+ 16 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/cookie/README.md

@@ -0,0 +1,16 @@
+# Installation
+> `npm install --save @types/cookie`
+
+# Summary
+This package contains type definitions for cookie (https://github.com/jshttp/cookie).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cookie.
+
+### Additional Details
+ * Last updated: Tue, 06 Jul 2021 20:32:30 GMT
+ * Dependencies: none
+ * Global values: none
+
+# Credits
+These definitions were written by [Pine Mizune](https://github.com/pine), and [Piotr Błażejewicz](https://github.com/peterblazejewicz).

+ 135 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/cookie/index.d.ts

@@ -0,0 +1,135 @@
+// Type definitions for cookie 0.4
+// Project: https://github.com/jshttp/cookie
+// Definitions by: Pine Mizune <https://github.com/pine>
+//                 Piotr Błażejewicz <https://github.com/peterblazejewicz>
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+/**
+ * Basic HTTP cookie parser and serializer for HTTP servers.
+ */
+
+/**
+ * Additional serialization options
+ */
+export interface CookieSerializeOptions {
+    /**
+     * Specifies the value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.3|Domain Set-Cookie attribute}. By default, no
+     * domain is set, and most clients will consider the cookie to apply to only
+     * the current domain.
+     */
+    domain?: string | undefined;
+
+    /**
+     * Specifies a function that will be used to encode a cookie's value. Since
+     * value of a cookie has a limited character set (and must be a simple
+     * string), this function can be used to encode a value into a string suited
+     * for a cookie's value.
+     *
+     * The default function is the global `encodeURIComponent`, which will
+     * encode a JavaScript string into UTF-8 byte sequences and then URL-encode
+     * any that fall outside of the cookie range.
+     */
+    encode?(value: string): string;
+
+    /**
+     * Specifies the `Date` object to be the value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.1|`Expires` `Set-Cookie` attribute}. By default,
+     * no expiration is set, and most clients will consider this a "non-persistent cookie" and will delete
+     * it on a condition like exiting a web browser application.
+     *
+     * *Note* the {@link https://tools.ietf.org/html/rfc6265#section-5.3|cookie storage model specification}
+     * states that if both `expires` and `maxAge` are set, then `maxAge` takes precedence, but it is
+     * possible not all clients by obey this, so if both are set, they should
+     * point to the same date and time.
+     */
+    expires?: Date | undefined;
+    /**
+     * Specifies the boolean value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.6|`HttpOnly` `Set-Cookie` attribute}.
+     * When truthy, the `HttpOnly` attribute is set, otherwise it is not. By
+     * default, the `HttpOnly` attribute is not set.
+     *
+     * *Note* be careful when setting this to true, as compliant clients will
+     * not allow client-side JavaScript to see the cookie in `document.cookie`.
+     */
+    httpOnly?: boolean | undefined;
+    /**
+     * Specifies the number (in seconds) to be the value for the `Max-Age`
+     * `Set-Cookie` attribute. The given number will be converted to an integer
+     * by rounding down. By default, no maximum age is set.
+     *
+     * *Note* the {@link https://tools.ietf.org/html/rfc6265#section-5.3|cookie storage model specification}
+     * states that if both `expires` and `maxAge` are set, then `maxAge` takes precedence, but it is
+     * possible not all clients by obey this, so if both are set, they should
+     * point to the same date and time.
+     */
+    maxAge?: number | undefined;
+    /**
+     * Specifies the value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.4|`Path` `Set-Cookie` attribute}.
+     * By default, the path is considered the "default path".
+     */
+    path?: string | undefined;
+    /**
+     * Specifies the boolean or string to be the value for the {@link https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7|`SameSite` `Set-Cookie` attribute}.
+     *
+     * - `true` will set the `SameSite` attribute to `Strict` for strict same
+     * site enforcement.
+     * - `false` will not set the `SameSite` attribute.
+     * - `'lax'` will set the `SameSite` attribute to Lax for lax same site
+     * enforcement.
+     * - `'strict'` will set the `SameSite` attribute to Strict for strict same
+     * site enforcement.
+     *  - `'none'` will set the SameSite attribute to None for an explicit
+     *  cross-site cookie.
+     *
+     * More information about the different enforcement levels can be found in {@link https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7|the specification}.
+     *
+     * *note* This is an attribute that has not yet been fully standardized, and may change in the future. This also means many clients may ignore this attribute until they understand it.
+     */
+    sameSite?: true | false | 'lax' | 'strict' | 'none' | undefined;
+    /**
+     * Specifies the boolean value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.5|`Secure` `Set-Cookie` attribute}. When truthy, the
+     * `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set.
+     *
+     * *Note* be careful when setting this to `true`, as compliant clients will
+     * not send the cookie back to the server in the future if the browser does
+     * not have an HTTPS connection.
+     */
+    secure?: boolean | undefined;
+}
+
+/**
+ * Additional parsing options
+ */
+export interface CookieParseOptions {
+    /**
+     * Specifies a function that will be used to decode a cookie's value. Since
+     * the value of a cookie has a limited character set (and must be a simple
+     * string), this function can be used to decode a previously-encoded cookie
+     * value into a JavaScript string or other object.
+     *
+     * The default function is the global `decodeURIComponent`, which will decode
+     * any URL-encoded sequences into their byte representations.
+     *
+     * *Note* if an error is thrown from this function, the original, non-decoded
+     * cookie value will be returned as the cookie's value.
+     */
+    decode?(value: string): string;
+}
+
+/**
+ * Parse an HTTP Cookie header string and returning an object of all cookie
+ * name-value pairs.
+ *
+ * @param str the string representing a `Cookie` header value
+ * @param [options] object containing parsing options
+ */
+export function parse(str: string, options?: CookieParseOptions): { [key: string]: string };
+
+/**
+ * Serialize a cookie name-value pair into a `Set-Cookie` header string.
+ *
+ * @param name the name for the cookie
+ * @param value value to set the cookie to
+ * @param [options] object containing serialization options
+ * @throws {TypeError} when `maxAge` options is invalid
+ */
+export function serialize(name: string, value: string, options?: CookieSerializeOptions): string;

+ 30 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/cookie/package.json

@@ -0,0 +1,30 @@
+{
+    "name": "@types/cookie",
+    "version": "0.4.1",
+    "description": "TypeScript definitions for cookie",
+    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cookie",
+    "license": "MIT",
+    "contributors": [
+        {
+            "name": "Pine Mizune",
+            "url": "https://github.com/pine",
+            "githubUsername": "pine"
+        },
+        {
+            "name": "Piotr Błażejewicz",
+            "url": "https://github.com/peterblazejewicz",
+            "githubUsername": "peterblazejewicz"
+        }
+    ],
+    "main": "",
+    "types": "index.d.ts",
+    "repository": {
+        "type": "git",
+        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
+        "directory": "types/cookie"
+    },
+    "scripts": {},
+    "dependencies": {},
+    "typesPublisherContentHash": "7d4a6dd505c896319459ae131b5fa8fc0a2ed25552db53dac87946119bb21559",
+    "typeScriptVersion": "3.6"
+}

+ 21 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/cors/LICENSE

@@ -0,0 +1,21 @@
+    MIT License
+
+    Copyright (c) Microsoft Corporation.
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in all
+    copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+    SOFTWARE

+ 75 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/cors/README.md

@@ -0,0 +1,75 @@
+# Installation
+> `npm install --save @types/cors`
+
+# Summary
+This package contains type definitions for cors (https://github.com/expressjs/cors/).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cors.
+## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cors/index.d.ts)
+````ts
+/// <reference types="node" />
+
+import { IncomingHttpHeaders } from "http";
+
+type StaticOrigin = boolean | string | RegExp | Array<boolean | string | RegExp>;
+
+type CustomOrigin = (
+    requestOrigin: string | undefined,
+    callback: (err: Error | null, origin?: StaticOrigin) => void,
+) => void;
+
+declare namespace e {
+    interface CorsRequest {
+        method?: string | undefined;
+        headers: IncomingHttpHeaders;
+    }
+    interface CorsOptions {
+        /**
+         * @default '*''
+         */
+        origin?: StaticOrigin | CustomOrigin | undefined;
+        /**
+         * @default 'GET,HEAD,PUT,PATCH,POST,DELETE'
+         */
+        methods?: string | string[] | undefined;
+        allowedHeaders?: string | string[] | undefined;
+        exposedHeaders?: string | string[] | undefined;
+        credentials?: boolean | undefined;
+        maxAge?: number | undefined;
+        /**
+         * @default false
+         */
+        preflightContinue?: boolean | undefined;
+        /**
+         * @default 204
+         */
+        optionsSuccessStatus?: number | undefined;
+    }
+    type CorsOptionsDelegate<T extends CorsRequest = CorsRequest> = (
+        req: T,
+        callback: (err: Error | null, options?: CorsOptions) => void,
+    ) => void;
+}
+
+declare function e<T extends e.CorsRequest = e.CorsRequest>(
+    options?: e.CorsOptions | e.CorsOptionsDelegate<T>,
+): (
+    req: T,
+    res: {
+        statusCode?: number | undefined;
+        setHeader(key: string, value: string): any;
+        end(): any;
+    },
+    next: (err?: any) => any,
+) => void;
+export = e;
+
+````
+
+### Additional Details
+ * Last updated: Mon, 20 Nov 2023 23:36:24 GMT
+ * Dependencies: [@types/node](https://npmjs.com/package/@types/node)
+
+# Credits
+These definitions were written by [Alan Plum](https://github.com/pluma), and [Gaurav Sharma](https://github.com/gtpan77).

+ 56 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/cors/index.d.ts

@@ -0,0 +1,56 @@
+/// <reference types="node" />
+
+import { IncomingHttpHeaders } from "http";
+
+type StaticOrigin = boolean | string | RegExp | Array<boolean | string | RegExp>;
+
+type CustomOrigin = (
+    requestOrigin: string | undefined,
+    callback: (err: Error | null, origin?: StaticOrigin) => void,
+) => void;
+
+declare namespace e {
+    interface CorsRequest {
+        method?: string | undefined;
+        headers: IncomingHttpHeaders;
+    }
+    interface CorsOptions {
+        /**
+         * @default '*''
+         */
+        origin?: StaticOrigin | CustomOrigin | undefined;
+        /**
+         * @default 'GET,HEAD,PUT,PATCH,POST,DELETE'
+         */
+        methods?: string | string[] | undefined;
+        allowedHeaders?: string | string[] | undefined;
+        exposedHeaders?: string | string[] | undefined;
+        credentials?: boolean | undefined;
+        maxAge?: number | undefined;
+        /**
+         * @default false
+         */
+        preflightContinue?: boolean | undefined;
+        /**
+         * @default 204
+         */
+        optionsSuccessStatus?: number | undefined;
+    }
+    type CorsOptionsDelegate<T extends CorsRequest = CorsRequest> = (
+        req: T,
+        callback: (err: Error | null, options?: CorsOptions) => void,
+    ) => void;
+}
+
+declare function e<T extends e.CorsRequest = e.CorsRequest>(
+    options?: e.CorsOptions | e.CorsOptionsDelegate<T>,
+): (
+    req: T,
+    res: {
+        statusCode?: number | undefined;
+        setHeader(key: string, value: string): any;
+        end(): any;
+    },
+    next: (err?: any) => any,
+) => void;
+export = e;

+ 32 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/cors/package.json

@@ -0,0 +1,32 @@
+{
+    "name": "@types/cors",
+    "version": "2.8.17",
+    "description": "TypeScript definitions for cors",
+    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cors",
+    "license": "MIT",
+    "contributors": [
+        {
+            "name": "Alan Plum",
+            "githubUsername": "pluma",
+            "url": "https://github.com/pluma"
+        },
+        {
+            "name": "Gaurav Sharma",
+            "githubUsername": "gtpan77",
+            "url": "https://github.com/gtpan77"
+        }
+    ],
+    "main": "",
+    "types": "index.d.ts",
+    "repository": {
+        "type": "git",
+        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
+        "directory": "types/cors"
+    },
+    "scripts": {},
+    "dependencies": {
+        "@types/node": "*"
+    },
+    "typesPublisherContentHash": "04d506dbb23d9e7a142bfb227d59c61102abec00fb40694bb64a8d9fe1f1a3a1",
+    "typeScriptVersion": "4.5"
+}

+ 21 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/node/LICENSE

@@ -0,0 +1,21 @@
+    MIT License
+
+    Copyright (c) Microsoft Corporation.
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in all
+    copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+    SOFTWARE

+ 0 - 0
42409006-杨永泉/AF/localhost/node_modules/@types/node/README.md


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů