久しぶりの投稿になります。
Assemblyと構成部品に、プロパティから取得した文字を付加して
プロパティより取得した文字列で自動作成したフォルダに保存するAPIですが、
SW2021→SW2026にバージョンアップ後、自動作成フォルダに構成部品が保存され
Assemblyも保存されますが、構成部品の参照が外れ変更前の構成部品が書き換わりません。。
SW2021では、マクロ実行後、デザインツリーの構成部品名が書き換わる様子も目視できてましたが、
SW2026では、なにも起こらないで、終了してしまいます。
多分、実行コマンドが変更?になってると思われますが、探し出せてません。
どなたか分かる方おられましたら、ご教示いただけると幸いです。
'アセンブリファイルと参照部品にプレフィックスつけて保存
ElseIf flag = 3 Then
Dim swAssy As SldWorks.AssemblyDoc
Dim swConfig As SldWorks.Configuration
Dim swRootComp As SldWorks.Component
Dim bRet As Boolean
Set swConfig = swModel.GetActiveConfiguration
Set swRootComp = swConfig.GetRootComponent
Dim Children As Variant
Children = swRootComp.GetChildren
Dim i As Long
For i = 0 To UBound(Children)
Dim swComp As Component2
Set swComp = Children(i)
Debug.Print swComp.Name2 '"Name " + i + ": " +
bRet = swComp.Select(False) 'Append = false
'現在の構成部品名を読み込み
Dim OldName As String
OldName = swComp.Name2
'ファイル名の子NO確認
Dim j As Long
j = InStrRev(OldName, "-")
Dim txt As String
txt = Mid(OldName, j)
'子番号置換(削除)
OldName = Replace(OldName, txt, "")
'取得した構成部品名の左(先頭)から4文字取得
Dim ChangeName As String
ChangeName = OldName
ChangeName = Left(ChangeName, 4)
Debug.Print ChangeName
'取得した構成部品の左4文字が数字だった場合実行
If IsNumeric(ChangeName) = True Then
OldName = Replace(OldName, ChangeName & "_", "")
End If
Debug.Print OldName
'現在の構成部品名に設備NOを追加
Dim NewName As String
NewName = rValOut1 & rValOut2 & "_" & OldName
'構成部品名書込
swComp.Name2 = NewName
Debug.Print NewName
If InStr(OldName, rValOut1) = 0 Then
NewName = fPath1 & "\" & NewName & ".SLDPRT"
fPath = NewName
Set swModel = swComp.GetModelDoc2
Set swExt = swModel.Extension
boolstatus = swExt.SaveAs(fPath, 0, Options, Nothing, errors, warnings)
End If
Next i
よろしくお願いします。