Altium Designer SDK 빠른 시작 가이드

Altium Designer SDK를 사용하면 Altium Designer에 직접 통합되는 사용자 지정 확장을 구축할 수 있습니다. 즉, 명령을 추가하고, 워크플로를 자동화하며, 관리형 .NET API를 통해 설계 데이터에 접근할 수 있습니다.

이 가이드에서는 개발 도구 설치, 확장 프로젝트 생성, 명령 추가, 그리고 이를 Altium Designer 내에서 실행하는 방법을 단계별로 안내합니다.

사전 준비

1단계: Altium Developer Extension 설치

Altium Developer 확장은 프로젝트 템플릿과 SDK 도구를 Altium Designer에 직접 추가합니다.

  1. Altium Designer에서 Extensions and Updates → Available(으)로 이동합니다.

  2. Software Extensions 섹션에서 Altium Developer을(를) 검색합니다.

  3. 확장을 설치한 다음, 안내가 표시되면 Altium Designer를 다시 시작합니다.

2단계: 새 확장 프로젝트 만들기

  1. Altium Designer에서 File → New → Other → Extension(으)로 이동합니다.

    • Extension ID: ShowNetsExtension

    • Extension Kind: Altium Designer Server

    • Development Language: C#

    • IDE Version: latest

    • SDK Versionlatest

  2. 확장이 생성되면 Altium Designer가 해당 세부 정보를 표시합니다. Source Location 를 확인한 후, 그 경로에 있는 .csproj 파일을 IDE에서 엽니다.

3단계: 첫 번째 명령 추가

Source Code\Commands.cs을(를) 열고 다음 메서드를 Commands 클래스에 추가합니다.

    /// <summary>
    /// Altium Designer에서 "Show Nets" 명령의 활성화/표시 상태를 결정합니다.
    /// </summary>
    /// <param name="argContext">현재 서버 문서 뷰 컨텍스트입니다.</param>
    /// <param name="argParameters">명령 매개변수(사용되지 않음).</param>
    /// <param name="argEnabled">명령을 활성화해야 하면 true로 설정합니다.</param>
    /// <param name="argChecked">명령이 체크된 상태로 표시되어야 하면 true로 설정합니다(사용되지 않음).</param>
    /// <param name="argVisible">명령을 표시해야 하면 true로 설정합니다(사용되지 않음).</param>
    /// <param name="argCaption">명령 캡션(사용되지 않음).</param>
    /// <param name="argImageFile">명령 이미지 파일(사용되지 않음).</param>
    public static void GetState_ShowNets(IServerDocumentView argContext, ref string argParameters, ref bool argEnabled,
        ref bool argChecked, ref bool argVisible, ref string argCaption, ref string argImageFile)
    {
        // Altium Designer 작업공간에서 현재 포커스된 프로젝트를 가져옵니다.
        var project = DXP.GlobalVars.DXPWorkSpace.DM_FocusedProject() as IProject;

        // 프로젝트를 컴파일해야 하는 경우(예: 넷리스트가 최신이 아닌 경우) 컴파일합니다.
        if (project?.DM_NeedsCompile() == true)
            project.DM_Compile();

        // 유효한 프로젝트에 포커스가 있고, 해당 프로젝트가 "Free Documents" 프로젝트가 아닐 때만 명령을 활성화합니다.
        argEnabled = project != null && !IsFreeDocumentsProject(project);
    }

    /// <summary>
    /// 현재 회로도 문서 또는 프로젝트의 모든 넷 이름을 표시하는 명령 핸들러입니다.
    /// </summary>
    /// <param name="view">현재 서버 문서 뷰입니다.</param>
    /// <param name="parameters">명령 매개변수(사용되지 않음).</param>
    public static void Command_ShowNets(IServerDocumentView view, ref string parameters)
    {
        // Altium Designer에서 현재 포커스된 프로젝트를 가져옵니다.
        var project = DXP.GlobalVars.DXPWorkSpace.DM_FocusedProject() as IProject;
        if (project == null || IsFreeDocumentsProject(project))
            return;

        string documentName;
        // 현재 포커스된 문서(예: 회로도 시트)를 가져옵니다.
        var document = DXP.GlobalVars.DXPWorkSpace.DM_FocusedDocument() as IDocument;
        if (document == null)
        {
            // 포커스된 문서가 없으면 프로젝트가 컴파일되었는지 확인하고, 플래튼된 프로젝트 문서를 사용합니다.
            if (project.DM_NeedsCompile()) project.DM_Compile();
            document = project.DM_DocumentFlattened();
            documentName = "프로젝트";
        }
        else
        {
            // 포커스된 문서가 회로도(DocKindSch)인 경우에만 계속 진행합니다.
            if (document.DM_DocumentKind() != EDPConstant.DocKindSch) return;
            documentName = document.DM_FileName();
        }

        // 문서의 모든 넷을 열거하고, 전체 이름을 가져온 뒤 알파벳순으로 정렬합니다.
        var netNames = Enumerable.Range(0, document.DM_NetCount())
            .Select(document.DM_Nets)
            .Select(net => net.DM_FullNetName())
            .OrderBy(name => name);

        // Altium Designer 내 정보 대화상자에 넷 이름 목록을 표시합니다.
        DXP.Utils.ShowInfo(string.Join(Environment.NewLine, netNames), $"Nets [{documentName}]");
    }

    /// <summary>
    /// 지정된 프로젝트가 Altium Designer의 특수 "Free Documents" 프로젝트인지 확인합니다.
    /// </summary>
    /// <param name="project">확인할 프로젝트입니다.</param>
    /// <returns>프로젝트가 Free Documents 프로젝트이면 true, 그렇지 않으면 false를 반환합니다.</returns>
    private static bool IsFreeDocumentsProject(IProject project)
    {
        return project == DXP.GlobalVars.DXPWorkSpace.DM_FreeDocumentsProject();
    }

Source Code\Main.cs 을(를) 열고 PluginServerModule 클래스에 명령을 등록합니다:

protected override void InitializeCommands()
{
    ((CommandLauncher)CommandLauncher).RegisterCommand("ShowNets", Commands.Command_ShowNets, Commands.GetState_ShowNets);
}

프로젝트를 빌드하여 확장을 설치합니다.

4단계: Altium Designer에서 명령 실행

  1. Altium Designer를 시작합니다.

  2. 아무 도구 모음이나 마우스 오른쪽 버튼으로 클릭한 다음 Customize…

  3. 을(를) 선택합니다.Commands 아래에서 New… 을(를) 클릭하고 다음과 같이 구성합니다.

    • Process: ShowNetsExtension:ShowNets

    • Caption: ShowNets

  4. 새 명령을 도구 모음으로 드래그합니다.

  5. 명령을 클릭하면 넷 목록이 표시된 대화상자가 나타나야 합니다.

다음 단계

  • 회로도, PCB 레이아웃, 컴포넌트 등을 다루는 인터페이스에 대해서는 Altium Designer SDK 문서를 살펴보세요.

  • AltiumDeveloper GitHub 조직에서 예제 확장과 데모를 살펴보세요.

AI-LocalizedAI로 번역됨
만약 문제가 있으시다면, 텍스트/이미지를 선택하신 상태에서 Ctrl + Enter를 누르셔서 저희에게 피드백을 보내주세요.
콘텐츠