Skrócony przewodnik rozpoczęcia pracy z SDK Altium Designer

SDK programu Altium Designer umożliwia tworzenie własnych rozszerzeń, które integrują się bezpośrednio z Altium Designer — dodając polecenia, automatyzując przepływy pracy i zapewniając dostęp do danych projektowych za pośrednictwem zarządzanego interfejsu API .NET.

Ten przewodnik przeprowadzi Cię przez instalację narzędzi programistycznych, utworzenie projektu rozszerzenia, dodanie polecenia i uruchomienie go w środku Altium Designer.

Wymagania wstępne

Krok 1: Zainstaluj rozszerzenie Altium Developer

Rozszerzenie Altium Developer dodaje szablony projektów i narzędzia SDK bezpośrednio do Altium Designer.

  1. W Altium Designer przejdź do Extensions and Updates → Available.

  2. W sekcji Software Extensions wyszukaj Altium Developer.

  3. Zainstaluj rozszerzenie, a następnie po wyświetleniu monitu uruchom ponownie Altium Designer.

Krok 2: Utwórz nowy projekt rozszerzenia

  1. W Altium Designer przejdź do File → New → Other → Extension.

    • Extension ID: ShowNetsExtension

    • Extension Kind: Altium Designer Server

    • Development Language: C#

    • IDE Version: latest

    • SDK Versionlatest

  2. Po utworzeniu rozszerzenia Altium Designer wyświetli jego szczegóły. Zwróć uwagę na Source Location — otwórz plik .csproj z tej ścieżki w swoim IDE.

Krok 3: Dodaj swoje pierwsze polecenie

Otwórz Source Code\Commands.cs i dodaj następujące metody do klasy Commands :

    /// <summary>
    /// Określa stan włączenia/widoczności polecenia „Show Nets” w Altium Designer.
    /// </summary>
    /// <param name="argContext">Bieżący kontekst widoku dokumentu serwera.</param>
    /// <param name="argParameters">Parametry polecenia (nieużywane).</param>
    /// <param name="argEnabled">Ustaw na true, jeśli polecenie ma być włączone.</param>
    /// <param name="argChecked">Ustaw na true, jeśli polecenie ma być wyświetlane jako zaznaczone (nieużywane).</param>
    /// <param name="argVisible">Ustaw na true, jeśli polecenie ma być widoczne (nieużywane).</param>
    /// <param name="argCaption">Podpis polecenia (nieużywany).</param>
    /// <param name="argImageFile">Plik obrazu polecenia (nieużywany).</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)
    {
        // Pobierz aktualnie aktywny projekt z obszaru roboczego Altium Designer.
        var project = DXP.GlobalVars.DXPWorkSpace.DM_FocusedProject() as IProject;

        // Jeśli projekt wymaga kompilacji (np. netlista jest nieaktualna), skompiluj go.
        if (project?.DM_NeedsCompile() == true)
            project.DM_Compile();

        // Włącz polecenie tylko wtedy, gdy aktywny jest prawidłowy projekt i nie jest to projekt „Free Documents”.
        argEnabled = project != null && !IsFreeDocumentsProject(project);
    }

    /// <summary>
    /// Procedura obsługi polecenia wyświetlającego wszystkie nazwy sieci w bieżącym dokumencie schematu lub projekcie.
    /// </summary>
    /// <param name="view">Bieżący widok dokumentu serwera.</param>
    /// <param name="parameters">Parametry polecenia (nieużywane).</param>
    public static void Command_ShowNets(IServerDocumentView view, ref string parameters)
    {
        // Pobierz aktualnie aktywny projekt z Altium Designer.
        var project = DXP.GlobalVars.DXPWorkSpace.DM_FocusedProject() as IProject;
        if (project == null || IsFreeDocumentsProject(project))
            return;

        string documentName;
        // Pobierz aktualnie aktywny dokument (np. arkusz schematu).
        var document = DXP.GlobalVars.DXPWorkSpace.DM_FocusedDocument() as IDocument;
        if (document == null)
        {
            // Jeśli żaden dokument nie jest aktywny, upewnij się, że projekt jest skompilowany, i użyj dokumentu projektu po spłaszczeniu.
            if (project.DM_NeedsCompile()) project.DM_Compile();
            document = project.DM_DocumentFlattened();
            documentName = "Projekt";
        }
        else
        {
            // Kontynuuj tylko wtedy, gdy aktywny dokument jest schematem (DocKindSch).
            if (document.DM_DocumentKind() != EDPConstant.DocKindSch) return;
            documentName = document.DM_FileName();
        }

        // Wylicz wszystkie sieci w dokumencie, pobierz ich pełne nazwy i posortuj je alfabetycznie.
        var netNames = Enumerable.Range(0, document.DM_NetCount())
            .Select(document.DM_Nets)
            .Select(net => net.DM_FullNetName())
            .OrderBy(name => name);

        // Wyświetl listę nazw sieci w oknie dialogowym z informacją w Altium Designer.
        DXP.Utils.ShowInfo(string.Join(Environment.NewLine, netNames), $"Nets [{documentName}]");
    }

    /// <summary>
    /// Sprawdza, czy dany projekt jest specjalnym projektem „Free Documents” w Altium Designer.
    /// </summary>
    /// <param name="project">Projekt do sprawdzenia.</param>
    /// <returns>True, jeśli projekt jest projektem Free Documents; w przeciwnym razie false.</returns>
    private static bool IsFreeDocumentsProject(IProject project)
    {
        return project == DXP.GlobalVars.DXPWorkSpace.DM_FreeDocumentsProject();
    }

Otwórz Source Code\Main.cs i zarejestruj polecenie w klasie PluginServerModule:

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

Zbuduj projekt, aby zainstalować rozszerzenie.

Krok 4: Uruchom swoje polecenie w Altium Designer

  1. Uruchom Altium Designer.

  2. Kliknij prawym przyciskiem myszy dowolny pasek narzędzi i wybierz Customize…

  3. W obszarze Commandskliknij New… i skonfiguruj następujące elementy:

    • Process: ShowNetsExtension:ShowNets

    • Caption: ShowNets

  4. Przeciągnij nowe polecenie na pasek narzędzi.

  5. Kliknij polecenie — powinno pojawić się okno dialogowe z listą sieci. 

Kolejne kroki

  • Przejrzyj dokumentację Altium Designer SDK, aby poznać interfejsy dotyczące schematów, układu PCB, komponentów i nie tylko.

  • Poznaj przykładowe rozszerzenia i dema w organizacji GitHub AltiumDeveloper.

AI-LocalizedTłumaczenie SI
Jeśli znajdziesz błąd, zaznacz tekst/obraz i naciśnij Ctrl + Enter aby wysłać nam wiadomość.
Content