2018/10/27

iLogic 應用:檔名轉 iProperties 屬性資料

不管是新建檔案或者是開啟網路上下載的 3D 模型
通常一定會在存檔時給名稱,
通常我會建議存檔時可以指定一串有意義的文字,
主要原因就是容易識別。

另外一個原因是如果可以自動將檔名轉換成屬性資料那就太棒了!
讓屬性資料與模型檔名有一定的關聯性。

所以我試著利用 Inventor iLogic 功能建立了一個整體屬性資料輸入表單:
執行前相關屬性資料未存檔為空白
存檔後,Inventor 會將檔案名稱自動填入iProperties的"專案"頁簽中的"零件號碼"欄

點選執行規則後,自動將檔名拆解並填入 iProperties 欄位
灰色部分表是缺少的參數或 iProperties 自定性質,
可以參考另外兩篇:自動檢查與建立參數自動檢查與建立 iProperties 自定性質的文章
搭配在外部規則中建立了一個自動轉換市購件檔名到 iProperties 屬性資料的規則供表單呼叫使用:

VendorNameLength = 0
SpecNameLength = 0
FileName = ThisDoc.FileName(False)
FileNameLength = Len( FileName )
i = 0
Mark = FileNameLength
While i < Mark
 i = i + 1
 If Right(Left(FileName, i), 1) = "_" Then
  VendorNameLength = i - 1
  i = Mark
 End If
End While

J = VendorNameLength + 1
Mark = FileNameLength
While j < Mark
 j = j + 1
 If Right(Left(FileName,j),1)= "_" Then
  SpecNameLength = j - VendorNameLength - 2
  j = Mark
 End If
End While

iProperties.Value("Project", "Vendor") = Left(FileName, VendorNameLength)
iProperties.Value("Project", "Part Number") = Mid(FileName,VendorNameLength+2,SpecNameLength)
iProperties.Value("Project", "Description") = Right(FileName, FileNameLength-VendorNameLength-SpecNameLength-2)

修正以上程式,拿掉:
Parameter ("FileName") = FilName

原因是我的範本擋案中有 "FileName" 這一個自定 "文字" 參數,但是網友的不見得有,在執行時會發生找不到參數的錯誤訊息,拿掉該段程式應該就可以了。

以上的程式範例是以檔案名稱使用兩個“_”符號將檔名分隔成三段,
例如檔案名稱 “ABC123_1234_固定板”,
執行 iLogic 規則後,
ABC123會填入到"Vendor",
1234填入到"Part Number",
固定板填入到"Description"欄位;
類似的規則可以改寫成處理元件檔名。

如果能妥善利用 iLogic 功能,
可以協助降低設計師部分重複性作業所花費的時間與可能產生的錯誤。

其他相關參考:

自動檢查並建立不存在的 "iProperties 自訂性質",可參考:iLogic應用 檢查並建立iProperty自訂(Custom)性質

自動檢查並建立不存在的"使用者參數",可參考:iLogic應用 檢查並建立使用者參數


6 則留言:

  1. Kevin大大您好~
    請問這段規則有哪些是需要先預設的"使用者參數"?
    使用者參數的單位又應該設為什麼呢?

    回覆刪除
  2. 這一段沒有用到使用者參數,都是用iProperties的既有欄位:Vendor、Description、Part Number。
    若需要檢查並建立iPorperties可以參考:https://bloggerkevinyu.blogspot.com/2018/08/ilogiccreatecustomiproperties.html
    若需要檢查並建立使用者參數可以參考:
    https://bloggerkevinyu.blogspot.com/2018/07/ilogiccreateparameters.html

    回覆刪除
  3. Kevin大大 您好
    如果只是區分為二段該如何更改,例如檔名為"A12345B1234_零件"
    請教 該如何修改ilogic
    謝謝

    回覆刪除
  4. 分幾段都沒關關係,但是要有固定長度或特定字元作識別來將字串分段

    回覆刪除
  5. 好的 謝謝
    我再來試一下

    回覆刪除