NX Lab

Viết chương trình NX Open đầu tiên bằng C#: khung Main, GetUnloadOption và build ra DLL

#C##NX Open1 lượt xem

  1. Quản trị viênQuản trị· 0 điểm

    Câu hỏi ·

    Python tiện để thử nghiệm, nhưng C# cho tốc độ, kiểm tra kiểu lúc dịch và khả năng đóng gói thành add-in. Bài này dựng chương trình C# nhỏ nhất, dịch ra DLL và chạy trong NX.

    Viết chương trình NX Open đầu tiên bằng C# Viết chương trình NX Open đầu tiên bằng C#

    Chuẩn bị

    • Visual Studio (hoặc .NET Framework SDK có csc.exe).
    • Đường dẫn NXOpen.dll: thư mục NXBIN\managed trong thư mục cài đặt NX.

    Các bước thực hiện

    1. Tạo project Class Library. .NET Framework (bản NX yêu cầu, thường 4.x).
    2. Thêm tham chiếu. NXOpen.dll, NXOpen.UF.dll, NXOpenUI.dll, NXOpen.Utilities.dll (Copy Local = False).
    3. Viết lớp có Main. public static void Main(string[] args).
    4. Viết GetUnloadOption. Cho NX biết khi nào gỡ DLL.
    5. Dịch và chạy. File > Execute > NX Open, chọn DLL.

    Code tham khảo (C#)

    using System;
    using NXOpen;
    
    public class NXLabTool
    {
        public static void Main(string[] args)
        {
            Session session = Session.GetSession();
            ListingWindow lw = session.ListingWindow;
            lw.Open();
    
            Part work = session.Parts.Work;
            if (work == null)
            {
                lw.WriteLine("Chưa có Work Part");
                return;
            }
    
            lw.WriteLine("Chi tiết: " + work.Leaf);
            lw.WriteLine("Số body: " + work.Bodies.ToArray().Length);
            lw.WriteLine("Số feature: " + work.Features.GetFeatures().Length);
        }
    
        // NX gọi hàm này để biết khi nào gỡ DLL ra khỏi bộ nhớ
        public static int GetUnloadOption(string dummy)
        {
            return (int)Session.LibraryUnloadOption.Immediately;
        }
    }
    

    Dịch bằng dòng lệnh (không cần Visual Studio)

    csc /target:library /out:NXLabTool.dll /reference:"C:\Program Files\Siemens\NX 12.0\NXBIN\managed\NXOpen.dll" NXLabTool.cs
    

    Giải thích code

    • Main(string[] args) là điểm vào khi chạy DLL bằng File > Execute > NX Open.
    • GetUnloadOption trả Immediately để NX gỡ DLL ngay sau khi chạy, nên bạn dịch lại được mà không phải khởi động lại NX.
    • Đường dẫn NXOpen.dll trong lệnh dịch thay theo thư mục cài đặt NX thật trên máy bạn.

    Lỗi thường gặp

    • Chọn sai phiên bản .NET Framework so với yêu cầu của NX sẽ gây lỗi khi nạp DLL.
    • Đặt Copy Local = True cho NXOpen.dll làm DLL bản sao xung đột với bản trong NX.

    Code mang tính tham khảo, viết cho NX 12 trở lên (Python journal). Tên menu và một số lớp có thể khác theo phiên bản NX; hãy chạy thử trên bản sao của chi tiết trước khi dùng cho dữ liệu thật.

    Điểm: 0

Trả lời

Đăng nhập để tham gia thảo luận.