Click or drag to resize

TaskManagerRunTask Method

간섭검사 실행

Namespace:  VIZCLASH.NET
Assembly:  VIZCLASH.NET (in VIZCLASH.NET.dll) Version: 1.4.22.1118 (1.4.22.1118)
Syntax
C#
public bool RunTask(
	int taskId
)

Parameters

taskId
Type: SystemInt32
간섭검사 Task Id

Return Value

Type: Boolean
수행 결과
Examples
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Examples
{
    public class VIZCLASHExample
    {
        public void Example()
        {
            // Initialize VIZCLASH.NET
            VIZCLASH.NET.ModuleInitializer.Run();

            // Construction
            VIZCLASH.NET.TaskManager manager = new VIZCLASH.NET.TaskManager();

            manager.OnProgressChangedEvent += VIZCLASH_OnProgressChangedEvent;

            // License
            VIZCLASH.NET.LicenseManager.LicenseResults lResult = manager.License.LicenseFile("C:\\License\\VIZCLASH.lic");

            Console.WriteLine(lResult.ToString());

            // Option : Multithread
            manager.MultiThreadOption = true;

            // Add New Task
            int taskId = manager.AddTask();

            if (taskId < 0) return;

            string taskName = "CLASH TASK";
            string machineName = Environment.MachineName.ToUpper();
            string userName = Environment.UserName.ToUpper();

            manager.SetTaskName(taskId, taskName);          // Set Task Name
            manager.SetMachineName(taskId, machineName);    // Set Machine Name
            manager.SetUserName(taskId, userName);          // Set User Name

            Console.WriteLine(string.Format("TASK NAME : {0}", manager.GetTaskName(taskId)));
            Console.WriteLine(string.Format("MACHINE NAME : {0}", manager.GetMachineName(taskId)));
            Console.WriteLine(string.Format("USER NAME : {0}", manager.GetUserName(taskId)));

            // Set Option
            manager.SetTestOptions(
                taskId
                , VIZCLASH.NET.TestKind.GROUP_VS_GROUP  /* 그룹검사 */
                , false                                 /* 근접허용범위 */
                , 2.0f                                  /* 근접허용범위 */
                , false                                 /* 여유허용범위 */
                , 3.0f                                  /* 여유허용범위 */
                , true                                  /* 접촉허용오차 */
                , 1.0f                                  /* 접촉허용오차 */
                , false                                 /* 보이는모델만 검사 */
                , 2                                     /* 간섭제외 끝레벨 */
                );

            // Add Models
            List<string> models = new List<string>();
            models.Add("C:\\MODELS\\CLASH_HULL.viz");
            models.Add("C:\\MODELS\\CLASH_PIPE.viz");
            models.Add("C:\\MODELS\\CLASH_EQUI.viz");
            models.Add("C:\\MODELS\\CLASH_STRU.viz");
            models.Add("C:\\MODELS\\CLASH_ELEC.viz");

            bool result_model = manager.SetModels(taskId, models);

            Console.WriteLine(string.Format("MODELS : {0}", result_model == true ? "OK" : "NG"));

            if (result_model == false) return;

            // Set Group
            manager.SetGroup(taskId, VIZCLASH.NET.GroupKind.GroupA, "CLASH_HULL");
            manager.SetGroup(taskId, VIZCLASH.NET.GroupKind.GroupB, "CLASH_STRU");

            // Run Task
            bool result_run = manager.RunTask(taskId);

            Console.WriteLine(string.Format("RUN : {0}", result_run == true ? "OK" : "NG"));

            // Get Result Item Count
            int result_count = manager.GetResultCount(taskId);

            Console.WriteLine(string.Format("Result Count : {0:#,0}", result_count));

            // Get Result Data
            List<VIZCLASH.NET.ClashResult> items = manager.GetResults(taskId);

            foreach (VIZCLASH.NET.ClashResult item in items)
            {
                string result = string.Format(
                    "{0} {1} {2} {3} {4} {5} {6}"
                    , item.NodeNameA
                    , item.NodeNameB
                    , item.ResultKind
                    , item.GetResultKindString()
                    , item.HotPoint.ToString()
                    , item.Distance
                    , item.Path.ToString()
                    );

                System.Diagnostics.Debug.WriteLine(result);
            }

            // Export Clash Result Image
            manager.ExportImages(taskId, "C:\\Temp\\CLASH", true, true, true, true);

            // Clear
            manager.Close();
        }

        private void VIZCLASH_OnProgressChangedEvent(object sender, VIZCLASH.NET.ProgressEventArgs e)
        {
           System.Diagnostics.Debug.WriteLine(
               string.Format(
                   "Task Id : {0} / Progress : {1:D3} % / Found : {2:#,0} EA"
                   , e.TaskId
                   , e.Progress
                   , e.Count
                   )
               );
        }
    }
}
See Also