Inventorの部屋

iLogicによる設計の自動化などで作業効率化を図ります。

iLogic - 図面シート名一括変更

図面シート名一括変更

図面シート名を一括で変更します。

  • 1.複数の設計ファイルで同じ自動化ルールを実行できるように外部ルールで作成します。
    iLogicブラウザの外部ルールで追加したフォルダを右クリックして[新しい外部ルールを作成]をクリック。
    ilogic - 図面シート名一括変更
  • 2.任意の名前を入力して[保存]をクリック。
    ilogic - 図面シート名一括変更
  • 3.下記コードを入力して[保存]をクリック。(ハイフン(ー)の有無や開始番号の桁数は任意に変更してください)
    
    ' System.Collectionsをインポート(ArrayListを使用するため)
    Imports System.Collections
    
    ' --- 1. ユーザー入力 ---
    
    ' 1番目の文字列を入力
    Dim newPrefix As String = InputBox("1番目の文字列を入力してください(例:abcde)", "1番目", "")
    
    ' 2番目の文字列を入力
    Dim suffixBase As String = InputBox("2番目の文字列を入力してください(例: 1-)", "2番目", "-")
    
    ' 連番の開始番号を入力
    Dim counterInput As String = InputBox("開始番号を入力してください(例: 1)", "開始番号", "1")
    
    ' --- ここが追加・変更箇所です ---
    ' 連番の桁数(フォーマット)を選択するリストを作成
    Dim formatList As New ArrayList
    formatList.Add("0")     ' 1, 2, 3...
    formatList.Add("00")    ' 01, 02, 03...
    formatList.Add("000")   ' 001, 002, 003...
    formatList.Add("0000")  ' 0001, 0002, 0003...
    
    ' リストボックスを表示してフォーマットを選択
    Dim formatString As String = InputListBox("連番の桁数を選択してください", formatList, "00", "桁数設定", "選択可能な桁数")
    ' -----------------------------
    
    Dim counter As Integer = 0
    If IsNumeric(counterInput) Then
        counter = CInt(counterInput)
    Else
        MessageBox.Show("連番の開始値が無効です。0から開始します。")
    End If
    
    ' --- 2. 処理実行 ---
    
    ' 図面ドキュメントを取得
    Dim oDrawDoc As DrawingDocument = ThisDoc.Document
    
    ' エラーハンドリング(名前の重複などで止まらないようにする)
    On Error Resume Next
    
    ' 各シートをループ
    For Each oSheet As Sheet In oDrawDoc.Sheets
        ' 選択されたフォーマット形式(formatString)を使って数値を文字列化
        ' 例: formatStringが "000" なら counter.ToString("000") となる
        Dim newSuffix As String = suffixBase & counter.ToString(formatString)
    
        ' 新しいシート名を構築
        Dim newName As String = newPrefix & "-" & newSuffix
        
        ' 名前が空になるのを防ぐため、ハイフンの処理を調整(Prefixが空の場合など)
        If newPrefix = "" Then
            newName = newSuffix ' Prefixが空ならハイフンなし
        End If
    
        ' シート名を変更
        oSheet.Name = newName
        
        ' エラーがあればメッセージを出して続行するか、無視する
        If Err.Number <> 0 Then
            ' 名前重複などの場合、処理をスキップまたはログ出力(ここでは単純にクリア)
            Err.Clear()
        End If
    
        counter += 1
    Next
    

    作成した外部ルールをリボンやショートカットに登録しておくと便利です。

  • 4.作成したルールを右クリックして[ルールを実行]をクリック。
    ilogic - 図面シート名一括変更
    1番目の文字列を入力して[OK]をクリック。
    ilogic - 図面シート名一括変更
    2番目の文字列を入力して[OK]をクリック。
    ilogic - 図面シート名一括変更
    開始番号を入力して[OK]をクリック。
    ilogic - 図面シート名一括変更
    下図のように連番で一括で変更されます。
    ilogic - 図面シート名一括変更
    ilogic - 図面シート名一括変更
3D CAD用パソコン比較