Autodesk Inventor: Rule Cập Nhật Lại Tên Occurrence Trong Assembly

Khi lắp ráp trong file Assembly, khi ta thêm, xóa, các bộ phận giống nhau. Mặc định tên Occurrence sẽ được đánh số tăng thêm từ số lớn nhất của bộ phận đã từng thêm vào. Ví dụ ta thêm 12 con bulong, ta xóa 2 con bulong thứ 10 & 11, và bây giờ ta thêm lại 3 con. Thì số được đánh tới lúc này là “Tên Occurrence:15” (Nhưng thực tế hiện tại chỉ có 13 con bulong). Cho nên khi hoàn thành lắp ráp, ta nên sửa lại tên Occurrence và đánh số lần xuất hiện trên chi tiết trong Assembly. Một Rule cập nhật tên Occurrence là cần thiết. Dưới đây là một ví dụ minh họa.

Tên Occurrence ban đầu:

Đoạn code Rule RenameOccurrenceName:

' Khai báo một từ điển để lưu trữ số lần xuất hiện của mỗi tên file
Dim fileCount As New Dictionary(Of String, Integer)

' Lặp qua tất cả các xuất hiện trong Assembly
For i = 1 To ThisDoc.Document.ComponentDefinition.Occurrences.Count
    ' Lấy đường dẫn đầy đủ của file xuất hiện
    Dim fileName As String = ThisDoc.Document.ComponentDefinition.Occurrences.Item(i).Definition.Document.FullFileName
    ' Tách tên file từ đường dẫn
    Dim fileNameParts() As String = Split(fileName, "\")
    Dim fileOnly As String = fileNameParts(UBound(fileNameParts))
    ' Tách phần mở rộng của tên file
    Dim fileNameWithoutExtension As String = Left(fileOnly, InStrRev(fileOnly, ".") - 1)
    
    ' Kiểm tra xem tên file đã được sử dụng bao nhiêu lần
    Dim count As Integer = 0
    If fileCount.ContainsKey(fileNameWithoutExtension) Then
        count = fileCount(fileNameWithoutExtension)
    End If
    
    ' Tạo tên mới bằng cách kết hợp tên file và số thứ tự xuất hiện
    Dim newOccurrenceName As String = fileNameWithoutExtension & ":" & (count + 1)
    
    ' Gán tên mới cho tên xuất hiện
    ThisDoc.Document.ComponentDefinition.Occurrences.Item(i).Name = newOccurrenceName
    
    ' Cập nhật số lần xuất hiện của tên file trong từ điển
    If fileCount.ContainsKey(fileNameWithoutExtension) Then
        fileCount(fileNameWithoutExtension) += 1
    Else
        fileCount.Add(fileNameWithoutExtension, 1)
    End If
Next

Tên Occurrence sau khi chạy Rule:

Bình luận

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *