Tự động hóa các tác vụ thiết kế bằng scripting
Viết script là một phương pháp mạnh mẽ giúp mở rộng khả năng và nâng cao năng suất làm việc với Altium Designer. Một script chứa một tập hợp các chỉ thị (lệnh tự động) sẽ được diễn giải khi script đó được thực thi trong Altium Designer. Script có thể được viết bằng nhiều ngôn ngữ khác nhau, có thể đi kèm các hộp thoại phức tạp và được gỡ lỗi ngay trong Altium Designer. Bạn có thể sử dụng script để đạt được mục tiêu thiết kế với mức độ thao tác từ người dùng tối thiểu, đồng thời giảm số lần nhấn phím và nhấp chuột.
Với script, bạn có thể tự động hóa các tác vụ lặp đi lặp lại và thực hiện những chỉnh sửa không có sẵn bằng các lệnh hiện có trong Altium Designer. Ví dụ, bạn có thể dùng script để tìm kiếm và cập nhật các dấu fiducial trên tài liệu PCB, hoặc xuất một netlist được tùy biến.
Script có thể được lưu trong một dự án script hoặc trong một dự án thiết kế. Có nhiều ngôn ngữ script khác nhau có thể dùng để viết script trong Altium Designer.
Tổng quan và thiết lập hệ thống scripting
Hệ thống scripting của Altium Designer cung cấp đầy đủ các công cụ và tính năng cần thiết để tạo script tự động hóa các tác vụ trong phần mềm.
Script có thể được viết để tự động hóa các tác vụ lặp lại hoặc tăng cường một tính năng trong Altium Designer. Hệ thống scripting gồm hai phần chính: trình soạn thảo và trình gỡ lỗi. Trình soạn thảo script, trình gỡ lỗi và các bảng scripting phối hợp với nhau để giúp bạn viết và gỡ lỗi script một cách dễ dàng. Một script có thể được chạy trực tiếp từ trình soạn thảo script hoặc được gán vào menu, thanh công cụ hoặc phím nóng để có thể áp dụng cho tài liệu hiện tại – chẳng hạn như PCB – vào bất kỳ lúc nào.
► Đọc thêm về Hệ thống Scripting trong Altium Designer
Tạo và lưu trữ script
Script trong Altium Designer thường được tạo và lưu trong một dự án Script (*.PrjScr), nhưng cũng có thể được thêm vào hoặc lưu trong bất kỳ loại dự án nào.
Để bắt đầu viết script, trước tiên hãy tạo một dự án script mới và thêm các tệp script vào dự án đó.
Một dự án Script giúp bạn quản lý các script của mình, và có thể được tạo bằng cách chọn File » New » Project » Script Project từ menu chính. Một dự án mới sẽ được liệt kê trong bảng Projects. Để thêm một script mới vào dự án, nhấp chuột phải vào tên dự án và chọn Add New to Project từ menu ngữ cảnh.
Khi tạo script mới, có hai loại script để lựa chọn tùy theo yêu cầu dự án – script unit và script form. Script unit cho phép bạn viết các procedure và function độc lập. Script form cho phép bạn xây dựng các hộp thoại với các điều khiển và bộ xử lý sự kiện, cũng như các procedure và function.
► Đọc thêm về Tạo & Lưu trữ Script trong Altium Designer
Viết script
Có một số khái niệm và thuật ngữ cơ bản áp dụng khi viết script:
-
Process là các chuỗi lệnh mà bạn có thể dùng để thực thi lệnh trong script.
-
Component là các đối tượng điều khiển trực quan trên bảng Tool Palette mà bạn có thể kéo và thả lên một script form để thao tác với thiết kế.
-
Một component được đặt trên script form sẽ có method, property và event.
-
Object Interface là các giao diện đối tượng đặc biệt mà bạn có thể sử dụng để trích xuất và chỉnh sửa dữ liệu trên các tài liệu thiết kế từ script của mình.
Ngôn ngữ scripting mặc định được đặt là DelphiScript (*.pas). Bản thân engine scripting được viết bằng Embarcadero Delphi, và bảng Tool Palette được xây dựng dựa trên VCL (Visual Component Library) của Delphi.
► Đọc thêm về Viết Script trong Altium Designer
Công cụ chỉnh sửa và gỡ lỗi script
Hệ thống Scripting của Altium Designer gồm hai phần chính – trình soạn thảo và trình gỡ lỗi. Trình soạn thảo cung cấp nhiều tính năng hỗ trợ mã script và kiểm tra mã, còn trình gỡ lỗi cho phép truy cập các component script và các tính năng debug. Các công cụ Scripting Editor là tài nguyên quan trọng khi gỡ lỗi script.
Có nhiều công cụ trong hệ thống scripting hỗ trợ gỡ lỗi script. Bao gồm khả năng đặt nhiều breakpoint trong script, sử dụng bảng Watch List để theo dõi giá trị của biến, dùng bookmark để di chuyển hiệu quả hơn, và dùng các chức năng step into và step over để lần theo quá trình thực thi script.
► Đọc thêm về Công cụ chỉnh sửa Script trong Altium Designer
► Đọc thêm về Gỡ lỗi Script trong Altium Designer
Chạy script
Mặc dù hệ thống Scripting của Altium Designer cung cấp phương tiện để tạo các tác vụ tự động hóa tinh vi cho Altium Designer, các script tạo ra cũng cần phải dễ truy cập trong quá trình thiết kế. Ví dụ, một script được tạo để thực hiện một tập hợp thao tác phức tạp khi chỉnh sửa PCB nên sẵn sàng ngay trong chính PCB editor, nơi nó có thể được thực thi chỉ với một hoặc hai cú nhấp chuột.
Altium Designer hỗ trợ điều này bằng cách cho phép gán script vào một process launcher, từ đó trở thành một lệnh có thể gán cho menu, thanh công cụ và phím tắt.
Một script có thể được thực thi bằng lệnh Run của trình soạn thảo khi script đang mở trong script editor. Cách này yêu cầu dự án script phải đang mở trong Altium Designer, điều này không thuận tiện để truy cập một script cần dùng trong quá trình thiết kế PCB, chẳng hạn vậy. Ngoài ra, hộp thoại Select Item To Run (File » Run Script) cho phép bạn duyệt đến một script trên ổ cứng cục bộ hoặc một Workspace được kết nối rồi chạy process mong muốn. Script sẽ vẫn được nạp trong phiên làm việc hiện tại.
Một phương thức phù hợp hơn để truy cập một script dùng thường xuyên là cài đặt dự án đó thành Global Project từ trang Scripting System – Global Projects của hộp thoại Preferences. Trong trường hợp này, dự án sẽ tự động được nạp khi Altium Designer khởi động và có thể được thực thi bất kỳ lúc nào thông qua lệnh File » Run Script.
► Đọc thêm về Chạy Script trong Altium Designer
Component đồ họa cho scripting
Các component biểu mẫu trực quan có thể dùng trong script của Altium Designer phần lớn được kế thừa từ Visual Component Library (VCL) của Embarcadero, đây là một tập hợp các component trực quan được định nghĩa để phát triển ứng dụng Windows bằng ngôn ngữ Delphi và C++.
Được phát triển như một thư viện lớp trực quan, các lớp VCL kế thừa từ đối tượng TComponent (bản thân nó cũng kế thừa từ đối tượng gốc TObject) theo một hệ phân cấp đối tượng tuyến tính. Vì vậy, một component script thông dụng, chẳng hạn đối tượng TButton, sẽ kế thừa các property, method và event từ các đối tượng cấp trên của nó. Trong trường hợp này, hệ phân cấp lớp là: TObject → TPersistent → TComponent → TControl → TWinControl → TButtonControl → TButton.
Lưu ý rằng các component kế thừa từ đối tượng TControl nhìn chung là các component trực quan (control), còn các component phổ biến kế thừa từ TWinControl chủ yếu là các lớp bao quanh Windows API.
Khi tạo form trong Script editor của Altium Designer, các component được truy cập từ bảng Tool Palette. Script form có một tệp *.DFM đi kèm, bao gồm chi tiết về cấu hình form, vị trí component và các thuộc tính khác; tệp này nằm trong thư mục chứa của dự án script. Altium Designer cho phép sử dụng các component này với cả DelphiScript hoặc VBScript khi thiết kế Script form.
► Đọc thêm về Component đồ họa cho Scripting trong Altium Designer
Ví dụ về script
Để cung cấp cái nhìn sâu hơn về các khía cạnh tổng quát của hệ thống scripting, cũng như việc sử dụng Delphi và X2 Object Models trong script, hai dự án ví dụ được phân tích dưới góc độ chức năng – một script sao chép đường bao bo mạch và một script tạo netlist. Các script Board Outline Copier và Netlister được phát triển bằng X2 Object Models để minh họa khả năng của hệ thống scripting trong Altium Designer.
Đây là các script có sẵn trong bộ sưu tập script mẫu. Thư mục Scripts bên trong tệp ZIP chứa các thư mục con được sắp xếp theo ngôn ngữ scripting.
Lưu ý rằng có thể tìm thấy rất nhiều script hữu ích trong bộ sưu tập GitHub của Altium Designer.
► Đọc thêm về Phân tích ví dụ Script trong Altium Designer
► Đọc thêm về Tham khảo ví dụ Scripting cho Altium Designer
Hỗ trợ ngôn ngữ scripting
Script có thể được viết cho Altium Designer bằng nhiều ngôn ngữ scripting. Lưu ý rằng ngôn ngữ chính và cũng là ngôn ngữ được nhắc đến nhiều nhất trong tài liệu về scripting là DelphiScript, vốn có liên hệ chặt chẽ với Embarcadero Delphi™.
► Đọc thêm về Hỗ trợ ngôn ngữ Scripting trong Altium Designer