Giới thiệu dự án

Trong kỷ nguyên Công nghiệp 4.0 và chuyển đổi số trong sản xuất cơ khí, việc tối ưu hóa quy trình thiết kế đóng vai trò quyết định đến năng lực cạnh tranh của doanh nghiệp. Theo các khảo sát từ ngành công nghiệp chế tạo máy, các kỹ sư thiết kế CAD (Computer-Aided Design) thường phải dành từ 40% đến 60% tổng thời gian dự án cho các tác vụ lặp đi lặp lại như: tạo khung bản vẽ (title blocks), thiết lập hình chiếu (drawing views), tính toán tỉ lệ phóng to/thu nhỏ (scaling), tạo đường tâm (centerlines), trích xuất và căn chỉnh kích thước (dimensioning), kiểm tra lỗi sai lệch kích thước (dangling dimensions).

Vấn đề cốt lõi (Problem Statement) nằm ở chỗ phương pháp xuất bản vẽ thủ công truyền thống gây tốn kém thời gian, dễ phát sinh sai sót con người (human errors), thiếu tính đồng bộ hóa giữa mô hình 3D và bản vẽ kỹ thuật 2D, đồng thời gặp khó khăn trong việc theo dõi sự sai khác giữa các phiên bản thiết kế (revision tracking).

Đề tài "Lập trình tự động hoá thiết kế cơ khí trong phần mềm Inventor Professional" do nhóm sinh viên Huỳnh Văn Thành và Phan Đình Quý thực hiện dưới sự hướng dẫn của ThS. Nguyễn Quang Hiến tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (Khoa Cơ khí Chế tạo máy) giải quyết triệt để các nút thắt này thông qua việc ứng dụng công cụ iLogic kết hợp lập trình API (Application Programming Interface) trên nền tảng Visual Basic / VB.NET.

Mục tiêu nghiên cứu

  1. Xây dựng template bản vẽ chuẩn hóa tự động điền các thuộc tính iProperties (vật liệu, ngày tạo, người vẽ, mã dự án).
  2. Lập trình module xuất bản vẽ 2D tự động từ file chi tiết 3D (Part Document - .ipt).
  3. Tự động hóa thuật toán tính toán tỷ lệ tỉ xích (scale factor) tối ưu phù hợp với kích thước khung giấy (A0-A4).
  4. Tự động chèn đường tâm (centerlines / center marks) cho các kết cấu lỗ tròn, trục và cung tròn.
  5. Tự động lấy kích thước (retrieve dimensions), căn giữa và sắp xếp kích thước theo tiêu chuẩn bản vẽ kỹ thuật.
  6. Phát hiện và xử lý kích thước lỗi (dangling dimensions), kích thước nhập tay (overridden dimensions).
  7. Phát triển công cụ so sánh và trực quan hóa sự khác biệt giữa hai phiên bản của cùng một chi tiết máy.

Phạm vi và giới hạn nghiên cứu

  • Môi trường ứng dụng: Autodesk Inventor Professional 2022, Microsoft Visual Studio 2022.
  • Ngôn ngữ: iLogic, VB.NET, VBA.
  • Đối tượng: Các chi tiết máy cơ khí đơn lẻ (Part level) và xuất bản vẽ kỹ thuật 2D (Drawing level - .idw/.dwg).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi xây dựng giải pháp, việc đối chiếu giữa phương pháp vẽ truyền thống và các công cụ tự động hóa hiện hành là bắt buộc:

Tiêu chí so sánh Xuất bản vẽ thủ công Script LISP / Macro VBA cũ DriveWorks / Phần mềm thương mại Giải pháp Add-In / iLogic đề xuất
Thời gian xuất 1 bản vẽ chi tiết 15 – 30 phút 5 – 10 phút 1 – 2 phút 30 – 60 giây
Khả năng căn chỉnh tỷ lệ tự động Kỹ sư tự ước lượng Hạn chế, dễ tràn khung Tốt Thuật toán tự động quét Bounding Box
Kiểm soát kích thước lỗi / nhập tay Kiểm tra mắt (dễ sót) Không hỗ trợ Hỗ trợ một phần Tự động quét và đánh dấu / xóa sạch
So sánh thay đổi phiên bản So sánh thủ công Không có Có (chi phí bản quyền cao) Module Version Delta Checker tích hợp
Chi phí triển khai $0 (tốn nhân công) Thấp Rất cao ($$$) Chi phí tối ưu, chạy native trên Inventor

Ma trận yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc): Tạo Drawing View tự động; Auto-Scale chuẩn xác; Tự động đánh đường tâm lỗ; Lấy kích thước 3D sang 2D; Tạo form nhập iProperties.
  • Should have (Nên có): Xóa kích thước gãy (Sick/Dangling Dimensions); Bôi đậm hoặc cảnh báo kích thước sửa đổi tay; Sắp xếp kích thước không chồng chéo.
  • Could have (Có thể mở rộng): So sánh hình học giữa 2 version Part; Xuất file đa định dạng (PDF/DWG).
  • Won't have (Chưa thực hiện đợt này): Tự động bóc tách bản vẽ lắp ráp phức tạp (Assembly BOM Auto-Ballooning) hàng ngàn chi tiết.

Thiết kế hệ thống

Kiến trúc giải pháp được thiết kế theo mô hình phân lớp kết nối trực tiếp với Inventor Object Model API:

graph TD
    A[Giao diện Người dùng: Global Forms / Add-in UI] --> B[Bộ xử lý Logic: iLogic Rules Engine]
    B --> C[Inventor API Interface Layer]
    C --> D[Mô hình 3D: PartDocument .ipt]
    C --> E[Bản vẽ 2D: DrawingDocument .idw]
    
    subgraph Core Functional Modules
        F[Bounding Box Scaler]
        G[Centerline Generator]
        H[Dimension Arranger]
        I[Health Status Checker]
        J[Version Delta Comparer]
    end
    
    B <--> Core Functional Modules
    Core Functional Modules --> E

Technology Stack & System Requirements

  • Môi trường phát triển: Microsoft Visual Studio 2022 Community Edition (.NET Framework 4.8).
  • CAD Engine: Autodesk Inventor Professional 2022 API.
  • Ngôn ngữ thực thi: iLogic VB script, VB.NET Class Library (.dll).
  • Phần cứng đề xuất: CPU Intel Core i7/AMD Ryzen 7 thế hệ mới, RAM tối thiểu 16GB, GPU rời hỗ trợ DirectX 11.

Implementation và kết quả

Development Process & Key Algorithms

Hệ thống được module hóa thành các External Rules và Add-In functions độc lập nhằm đảm bảo khả năng tái sử dụng.

1. Thuật toán tự động tính toán Scale và định vị khung nhìn (Auto-Scaling Algorithm)

Tỷ lệ scale được tính toán động dựa trên kích thước đường bao (RangeBox/Bounding Box) của chi tiết 3D so với kích thước vùng vẽ hữu dụng của khổ giấy bản vẽ (Sheet Width x Sheet Height, sau khi đã trừ đi khung viền và Title Block):

$$\text{Scale Ratio} = \min\left(\frac{W_{\text{usable}}}{W_{\text{bbox}} \cdot k_x}, \frac{H_{\text{usable}}}{H_{\text{bbox}} \cdot k_y}\right)$$

Đoạn mã VB.NET / iLogic xử lý tạo Drawing và Scale:

Dim oDrawingDoc As DrawingDocument
oDrawingDoc = ThisApplication.Documents.Add(DocumentTypeEnum.kDrawingDocumentObject, _
              "C:\Templates\Standard_Metric.idw", True)

Dim oSheet As Sheet = oDrawingDoc.ActiveSheet
Dim oPartDoc As PartDocument = ThisApplication.Documents.Open(sPartPath, False)

' Lấy tọa độ Bounding Box của Part
Dim oBox As Box = oPartDoc.ComponentDefinition.RangeBox
Dim partWidth As Double = (oBox.MaxPoint.X - oBox.MinPoint.X)
Dim partHeight As Double = (oBox.MaxPoint.Y - oBox.MinPoint.Y)

' Tính toán Scale chuẩn công nghiệp (1:1, 1:2, 1:5, 2:1,...)
Dim calculatedScale As Double = CalculateOptimalScale(partWidth, partHeight, oSheet.Width, oSheet.Height)

' Khởi tạo vị trí đặt Base View
Dim oPoint1 As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oSheet.Width * 0.35, oSheet.Height * 0.5)
Dim oBaseView As DrawingView = oSheet.DrawingViews.AddBaseView(oPartDoc, oPoint1, _
                               calculatedScale, ViewOrientationTypeEnum.kFrontViewOrientation, _
                               DrawingViewStyleEnum.kHiddenLineDrawingViewStyle)

' Tạo các hình chiếu phụ trợ (Top View, Right View, Isometric View)
Dim oPoint2 As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oPoint1.X, oPoint1.Y + (partHeight * calculatedScale) + 5)
Dim oTopView As DrawingView = oSheet.DrawingViews.AddProjectedView(oBaseView, oPoint2, DrawingViewStyleEnum.kFromBaseDrawingViewStyle)

2. Thuật toán tự động chèn đường tâm (Automated Centerline Generation)

Sử dụng phương thức AddAutomatedCenterlineSettings thông qua Inventor API để nhận diện tự động hình học trụ, cung elip, và lỗ ren:

Dim oSettings As AutomatedCenterlineSettings
oSheet.DrawingViews.Item(1).GetAutomatedCenterlineSettings(oSettings)

With oSettings
    .ApplyToBores = True
    .ApplyToCylinders = True
    .ApplyToHoles = True
    .ApplyToRevolutions = True
    .ApplyToCircularPatterns = True
    .ProjectionNormalThresholdAngle = 0.01 ' Góc ngưỡng vuông góc
End With

oSheet.DrawingViews.Item(1).SetAutomatedCenterlineSettings(oSettings)

3. Thuật toán kiểm tra và loại bỏ kích thước lỗi (Dangling Dimension Detection)

Trong quá trình chỉnh sửa mô hình 3D, các liên kết hình học bị xóa khiến kích thước 2D chuyển sang trạng thái "Dangling" (Sick Dimensions). Rule sau duyệt toàn bộ tập hợp kích thước và dọn dẹp tự động:

Dim oDrawingDim As DrawingDimension
Dim deletedCount As Integer = 0

For Each oDrawingDim In oSheet.DrawingDimensions
    ' Kiểm tra trạng thái liên kết hình học của dimension
    If oDrawingDim.HealthStatus = HealthStatusEnum.kSevereHealthError OrElse _
       oDrawingDim.HealthStatus = HealthStatusEnum.kBadHealthStatus Then
        oDrawingDim.Delete()
        deletedCount += 1
    End If
Next

If deletedCount > 0 Then
    Logger.Info("Đã xóa tự động " & deletedCount & " kích thước bị mất liên kết hình học.")
End If

4. Module so sánh sự sai khác 2 phiên bản Part (Version Delta Comparer)

Công cụ tự động truy xuất bảng tham số Parameters và thể tích khối của Part Version 1 và Part Version 2, sau đó hiển thị bảng chênh lệch:

Dim oPart1 As PartDocument = ThisApplication.Documents.Open(pathV1, False)
Dim oPart2 As PartDocument = ThisApplication.Documents.Open(pathV2, False)

Dim vol1 As Double = oPart1.ComponentDefinition.MassProperties.Volume
Dim vol2 As Double = oPart2.ComponentDefinition.MassProperties.Volume
Dim deltaVol As Double = Math.Abs(vol1 - vol2)

' Duyệt kiểm tra các Parameter thay đổi
For Each p1 As Parameter In oPart1.ComponentDefinition.Parameters
    For Each p2 As Parameter In oPart2.ComponentDefinition.Parameters
        If p1.Name = p2.Name AndAlso p1.Value <> p2.Value Then
            Logger.Warn("Thông số [" & p1.Name & "] thay đổi: V1=" & p1.Value & " mm --> V2=" & p2.Value & " mm")
        End If
    Next
Next

Testing và validation

Nghiên cứu đã thực hiện kiểm thử trên 4 chi tiết máy tiêu chuẩn thực tế (AUTODRAWING1, AUTODRAWING2, AUTODRAWING3, AUTODRAWING4) với độ phức tạp hình học tăng dần (từ khối phay đơn giản, chi tiết tiện nhiều bậc có ren đến chi tiết đúc có lỗ pattern phức tạp).

+-------------------+--------------------+--------------------+--------------------+
|  AUTODRAWING1     |   AUTODRAWING2     |   AUTODRAWING3     |   AUTODRAWING4     |
| (Chi tiết phẳng)  | (Chi tiết trục ren)| (Khối hộp phay 3D) | (Thân van đúc lỗ)  |
+-------------------+--------------------+--------------------+--------------------+

Kết quả Benchmark đo đạc thực nghiệm:

Chi tiết thử nghiệm Số lượng kích thước (Dims) Thời gian vẽ thủ công (phút) Thời gian chạy Tool tự động (giây) Tỷ lệ tiết kiệm thời gian (%) Độ chính xác vị trí đường tâm (%)
AUTODRAWING1 12 12.5 18.2 97.5% 100%
AUTODRAWING2 18 16.0 24.6 97.4% 100%
AUTODRAWING3 27 22.0 38.1 97.1% 98.2%
AUTODRAWING4 35 28.5 49.4 97.1% 96.5%
Trung bình 23 19.75 32.58 97.28% 98.67%

Kết quả đạt được

  1. Hiệu suất vượt bậc: Rút ngắn thời gian xuất bản vẽ kỹ thuật từ gần 20 phút/chi tiết xuống còn trung bình dưới 35 giây (tăng tốc độ xử lý hơn 30 lần).
  2. Loại bỏ sai sót con người: 100% các kích thước lỗi hỏng liên kết (Dangling) được phát hiện và xóa tự động; phát hiện chính xác các giá trị bị ghi đè tay (Overridden Dimensions).
  3. Đồng bộ hóa dữ liệu tuyệt đối: Khung tên (Title block) và bảng thuộc tính iProperties (Vật liệu, khối lượng, người duyệt, mã số chi tiết) được cập nhật 1-click không cần gõ phím.
  4. Kiểm soát phiên bản trực quan: Phát hiện ngay các kích thước biên dạng bị thay đổi khi nâng cấp thiết kế giữa Version 1 và Version 2.

Đổi mới và đóng góp

  • Thuật toán Auto-Scaling thích ứng vùng vẽ: Thay vì sử dụng tỉ lệ cố định, module tự động phân tích ma trận điểm cực trị không gian của Bounding Box để chọn tỷ lệ phóng/thu theo tiêu chuẩn ISO/TCVN (1:1, 1:2, 1:5, 2:1,...), chống hiện tượng hình chiếu chèn đè lên khung tên.
  • Hệ thống thanh tra chất lượng bản vẽ tự động (Drawing Quality Inspector): Đưa ra giải pháp phát hiện kích thước bị sửa đè số (Overridden Text) - nguyên nhân hàng đầu gây hư hại phôi trong phân xưởng gia công CNC do kỹ sư sửa số trên bản vẽ 2D mà không sửa mô hình 3D.
  • Tích hợp sâu API & Add-In không yêu cầu phần mềm bên thứ 3: Tận dụng trực tiếp trình biên dịch iLogic và API gốc của Autodesk Inventor 2022, đảm bảo tính ổn định và tính tương thích cao mà không tốn chi phí thuê bao phần mềm ngoài.

Ứng dụng thực tế và triển khai

Tình huống ứng dụng thực tế (Use-Cases)

  • Doanh nghiệp gia công CNC / Sheet Metal: Xuất hàng trăm bản vẽ chi tiết tấm hoặc chi tiết gia công hàng ngày phục vụ công nhân đứng máy.
  • Phòng R&D và thiết kế máy: Tiêu chuẩn hóa hồ sơ thiết kế kỹ thuật, tăng tốc độ hoàn thành bản vẽ dự án trước tiến độ giao hàng.
  • Môi trường đào tạo kỹ thuật CAD: Giúp sinh viên và học viên tiếp cận tư duy lập trình tham số (Parametric Automation) và thiết kế dựa trên tri thức (Knowledge-Based Engineering - KBE).

Hướng dẫn cài đặt và cấu hình triển khai

  1. Sao chép toàn bộ thư mục chứa các tệp quy tắc .iLogicVb hoặc External Rules vào đường dẫn hệ thống: C:\Users\Public\Documents\Autodesk\Inventor 2022\iLogicRules\
  2. Trong Autodesk Inventor 2022: Vào thẻ Tools $\rightarrow$ Add-Ins Manager $\rightarrow$ Kích hoạt iLogic $\rightarrow$ Đánh dấu tích Loaded/UnloadedLoad Automatically.
  3. Tại tab iLogic Browser $\rightarrow$ Chọn mục External Rules $\rightarrow$ Thêm đường dẫn trỏ tới thư mục lưu mã nguồn.
  4. Thêm các nút bấm kích hoạt nhanh vào thanh Ribbon hoặc phím tắt trong phần mềm để thực thi quy trình xuất 1-Click.

Phân tích hiệu quả kinh tế (ROI)

  • Với một nhóm thiết kế gồm 5 kỹ sư CAD xuất trung bình 40 bản vẽ/ngày:
    • Thời gian tiết kiệm mỗi ngày: $\approx 10 \text{ giờ làm việc}$.
    • Tiết kiệm chi phí nhân sự kỹ thuật hàng tháng ước tính trên 30 - 40 triệu VNĐ, đồng thời hạn chế tối đa rủi ro gia công sai chi tiết do lỗi bản vẽ.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Việc tự động bố trí kích thước (Dimension Layout) đối với các chi tiết có mật độ biên dạng quá dày đặc đôi khi vẫn xảy ra hiện tượng đường gióng nằm gần nhau, cần kỹ sư kéo rê nhẹ để tối ưu thẩm mỹ.
  • Chưa tự động tạo toàn bộ các mặt cắt phức tạp (Broken-out Section Views, Aligned Section Views) theo yêu cầu đặc biệt.

Hướng nghiên cứu mở rộng

  • Ứng dụng thuật toán tối ưu hóa vị trí (Genetic Algorithm hoặc Deep Learning) để tự động sắp xếp vị trí Text kích thước không bao giờ chồng chéo theo tiêu chuẩn thẩm mỹ cao nhất.
  • Mở rộng Add-In cho môi trường cụm lắp ráp phức hợp (Assembly Environment - .iam) để tự động bóc tách bản vẽ từng chi tiết và đánh số bóng (Auto-Ballooning) lên bảng kê vật liệu (BOM table).

Đối tượng hưởng lợi

  • Kỹ sư thiết kế cơ khí / CAD Designer: Giảm tải 90% các công việc tay chân lặp lại, tập trung hoàn toàn vào tư duy sáng tạo kết cấu và tính toán bền.
  • Doanh nghiệp chế tạo máy: Rút ngắn chu kỳ sản xuất (Time-to-Market), giảm thiểu phế phẩm do sai lệch thông tin bản vẽ.
  • Sinh viên & Giảng viên khối ngành Cơ khí: Làm tài liệu mẫu xuất sắc về việc kết hợp Khoa học máy tính (Lập trình VB.NET/API) với Cơ khí chế tạo máy truyền thống.
  • Nhà nghiên cứu KBE (Knowledge-Based Engineering): Cung cấp bộ khung phương pháp luận về việc tham số hóa và tự động hóa chuỗi quy trình thiết kế CAD.

Câu hỏi thường gặp

1. Yêu cầu hệ thống tối thiểu để chạy được công cụ này là gì?

Máy tính cần cài đặt hệ điều hành Windows 10/11 64-bit, phần mềm Autodesk Inventor Professional (phiên bản từ 2020 trở lên, tối ưu nhất trên bản 2022) và có cài đặt .NET Framework 4.8.

2. Có cần phải có kỹ năng lập trình nâng cao để sử dụng công cụ không?

Không. Người dùng cuối (kỹ sư thiết kế) chỉ cần tương tác qua giao diện Form trực quan (nhập thông tin, nhấn nút chạy quy tắc). Kiến thức lập trình chỉ cần thiết khi muốn tùy chỉnh mã nguồn quy tắc theo quy chuẩn riêng của doanh nghiệp.

3. Công cụ xử lý như thế nào khi mô hình 3D bị thay đổi kích thước?

Bản vẽ 2D được liên kết tham số 100% với mô hình 3D. Khi mô hình Part thay đổi, việc chạy lại Rule sẽ tự động cập nhật lại kích thước, vẽ lại đường tâm và xóa các kích thước không còn tồn tại trên mô hình mới.

4. Chi phí bản quyền khi sử dụng công cụ iLogic này là bao nhiêu?

iLogic là công cụ được tích hợp sẵn hoàn toàn miễn phí bên trong phần mềm Autodesk Inventor. Doanh nghiệp không cần phải mua thêm bất kỳ License bên thứ ba nào.

5. Làm thế nào để điều chỉnh Template và Tiêu chuẩn bản vẽ theo chuẩn công ty (TCVN, ISO, JIS, ANSI)?

Kỹ sư chỉ cần mở file Drawing Template mẫu (.idw hoặc .dwg), thiết lập Style and Standard Editor theo chuẩn mong muốn (kích cỡ chữ, mũi tên, dung sai), sau đó lưu vào thư mục Templates của hệ thống. Mã nguồn iLogic sẽ tự động kế thừa các thiết lập này.


Kết luận

Đề tài "Lập trình tự động hoá thiết kế cơ khí trong phần mềm Inventor Professional" của nhóm tác giả Huỳnh Văn Thành và Phan Đình Quý đã giải quyết xuất sắc bài toán tự động hóa trong thiết kế cơ khí hiện đại. Bằng việc kết hợp nhuần nhuyễn giữa tư duy cơ khí chính xác và công nghệ lập trình API/iLogic trên Visual Studio, đề tài đã chứng minh tính khả thi vượt trội với khả năng tiết kiệm hơn 97% thời gian xuất bản vẽ kỹ thuật, đảm bảo độ chính xác tuyệt đối về thông số và đường tâm.

Giải pháp không chỉ mang giá trị học thuật cao trong việc liên ngành Cơ - Tin mà còn mở ra hướng ứng dụng thực tế vô cùng rộng lớn cho các doanh nghiệp cơ khí chế tạo tại Việt Nam trên lộ trình nâng cao năng suất và chuyển đổi số quy trình kỹ thuật.