本人以前用solidworks,是在操作系統的資源管理器里手工管理零件模型裝配體工程圖這些資源。辦法很土,文件名字以“零件代號#零件名稱”的方式命名。所以寫了個vba宏,自動從文件名拆出來零件代號和零件名稱,填入零件的屬性中。
: R2 O O H3 R9 Y$ \/ z# B# }# ]3 @! U
最近學習inventor 2017,想用ilogic也做類似的事。發現ilogic的“標準字符串函數參考”文檔里,竟然沒有 instr 函數。
2 W4 [2 `% s# j. j: H8 Y
4 F3 L; x5 _' N0 E正發愁呢,無意中往代碼區寫了 instr,發現文字顏色變了!一試,能正確運行!
% C. W: S( b4 z2 b4 s
1 y( G \7 T9 Y1 f k- @/ m: S5 V1 Q2 R
- modelFullFileName = ThisDoc.ModelDocument.FullFileName
* _6 b* F5 f6 S- d: |, J - modelDirectoryName = IO.Path.GetDirectoryName(modelFullFileName)6 M. }( K3 U) s- ]: a$ {! F. J
- modelFileName = IO.Path.GetFileName(modelFullFileName)! s, r, ?7 E$ w
- modelFileNamewithoutextentionsion = IO.Path.GetFileNameWithoutExtension(modelFullFileName)
! S- X; t* h) q - 'MsgBox( modelFullFileName )
2 v# H* w k; H9 i; H8 P- l - 'MsgBox( modelDirectoryName )* l$ ?7 ?# q7 W) J: Z# ~, `
- 'MsgBox( modelFileName )1 ^: T3 J% d) g$ H8 B6 V3 v1 N; X
- MsgBox( modelFileNamewithoutextentionsion )* R9 M" z4 i& ^& h+ p) I
- position=InStr(modelFileNamewithoutextentionsion,"#"); J1 ?, ]' w6 C' t
- MsgBox(position)
復制代碼 ! u) g, \+ |2 O: i. c
估計ilogic里還隱藏了不少這種vba的標準函數吧。文檔里不寫,實際卻能調用。! W; h1 R8 o; a( k$ W" `! Z3 Y- z8 ]
2 M0 X6 o( H1 i2 k$ R! K! N7 h0 R# _6 { ^$ @- _
! j1 ? z# J8 @ p8 `昨晚看《Inventor-iLogic程序設計解析與實戰》,第124頁,作者也遇到了這個功能需求,只能輾轉遍歷字符串逐一對比,相當于自己寫了一個類似instr簡單函數。當時是inventor 2013,不知道是否也有這個隱藏的函數。1 t& _* F4 G( r1 {7 o: O* I
; ~2 E. c$ V$ c/ s% @ u7 `7 m7 D5 p
) Y( G! _; B3 E) k/ k# N3 B |