티스토리 뷰

프로그래밍/SolidEdge

SolidEdge C# 템플릿

.가끔은 2018. 4. 20. 10:23
반응형

제가 만들어 사용중인 템플릿입니다.

 

 

SolidEdge C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
// Import
using SolidEdgeFramework;
using SolidEdgeFrameworkSupport;
using SolidEdgeCommunity;
using SolidEdgeConstants;
// Documents
using SolidEdgeAssembly;
using SolidEdgePart;
using SolidEdgeDraft;
// etc
using System.Diagnostics;       // 프로그램 실행중인지 체크
using System.Threading;         // Time for wait
using System.IO;

namespace Edge_Template
{
    class Program
    {
        // Edge 실행 체크
        static bool IsEdgeStart()
        {
            Process[] processList = Process.GetProcessesByName("Edge");
            if (processList.Length > 0)
                return true;
            return false;
        }

        [STAThread]
        static void Main(string[] args)
        {

            #region 변수선언
            SolidEdgeFramework.Application EdApp = null;
            SolidEdgePart.PartDocument EdPart = null;
            SolidEdgeAssembly.AssemblyDocument EdAssy = null;
            SolidEdgeDraft.DraftDocument EdDft = null;
           
            #endregion

            try
            {
                OleMessageFilter.Register();

                #region Edge 연결
                if (IsEdgeStart())
                {
                    EdApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true);
                    // EdApp.DisplayFullScreen = true;
                }
                else
                {
                    throw new Exception("SolidEdge 프로그램이 실행되어있지 않습니다.");                    
                }
                #endregion

                EdApp.DoIdle();
                EdApp.ScreenUpdating = false;

                #region Edge 파일 형식 확인                                  
                switch (EdApp.ActiveEnvironment)
                {
                    case "Part":
                        EdPart = (PartDocument)EdApp.ActiveDocument;
                        break;
                    case "Assembly":
                        EdAssy = (AssemblyDocument)EdApp.ActiveDocument;
                        break;
                    case "Detail":
                        EdDft = (DraftDocument)EdApp.ActiveDocument;
                        break;
                    case "DMPart":
                        EdPart = (PartDocument)EdApp.ActiveDocument;
                        break;
                    default:
                        throw new Exception("지원되지 않는 문서입니다.");
                }
                #endregion

                // 코드작성부

                

            }
            catch (Exception e)
            {                
                MessageBox.Show(e.Message, "프로그램 종료");
            }
            finally
            {
                OleMessageFilter.Unregister();

                #region 해제
                if (EdApp != null)
                {
                    EdApp.ScreenUpdating = true;
                    EdApp.DoIdle();
                }
                

                EdPart = null;
                EdDft = null;
                EdAssy = null;
                EdApp = null;
                #endregion
            }

        }
    }
}
반응형

'프로그래밍 > SolidEdge' 카테고리의 다른 글

SolidEdge API 오류  (0) 2018.03.20
좌표계 생성 매크로  (2) 2018.02.26
Edge VBA 시작  (0) 2018.02.07
Solid Edge 매크로  (0) 2018.02.06
댓글