機械系CADのカスタム化紹介

始めてみました。

A2-4:スクリプトの作成見本②

 サンプルプログラムを流用して、MessageBoxの仕様を体験できるスクリプトを作成します。
 2、プログラムの作成
  2-1、仕様
  2-2、作成
  2-3、動作確認
  2-4、資料

 

2、プログラムの作成

 2-1、仕様

 MessageBoxの表示オプションの種類、ボタンをクリックしたときの返り値が理解できるようにする。押しボタン、枠のアイコンの種類(共に5種類)を順番に表示させ、押したボタンの返り値を表示させる。
 エラーを発生させることができないので、エラー処理は省きます。

  

 2-2、作成

 ① 「スクリプトとアドイン」の窓を開きます。「スクリプト」タブにある「MessageBox_1」を選択して、「編集」をクリックします。

 ② 「MessageBox_1.py」が開いたら、11行目を削除します。

 

 ② 削除した場所に以下の7行(空の行あり)をコピーペーストします。

          text_1 = ['OKButtonType', 'OKCancelButtonType', 'RetryCancelButtonType', 'YesNoButtonType', 'YesNoCancelButtonType']
        text_2 = ['NoIconIconType', 'QuestionIconType', 'InformationIconType', 'WarningIconType', 'CriticalIconType']
        text_3 = ['『Error』', '『OK』', '『キャンセル』', '『再試行』か『はい』', '『いいえ』']
        
        for num in range(5):
            num_1 = ui.messageBox('MessageBoxButtonTypesは、「' + text_1[num] + '」\n MessageBoxIconTypesは、「' + text_2[num] + '」', '設定値は ' + str(num) + ' です', num, num)
            ui.messageBox(text_3[num_1 + 1] + 'を押した', '返り値は ' + str(num_1) + ' です')

 ④ 11~15行目の先頭の文字が10行目の先頭と並ぶように、半角スペース追加、または削除で調整します。16,17行目は15行目から半角スペース4ケ分の段差をつけます。

 

 ⑤ VisualStudioCodeの左上「ファイル」→「保存」で変更内容を保存します。

 2-3、動作確認

 ① 「スクリプトとアドイン」の窓を開きます。「スクリプト」タブにある「MessageBox_1」を選択して、「▶実行」をクリックします。

 ② MessageBoxが「設定値は0です」から「設定値は4です」まで「返り値」を表示しながら動作することを確認します。

 

 表示サンプル(返り値は押したボタンで変わります)

     ⇓
  
     ⇓

     ⇓
  
     ⇓

     ⇓
  
     ⇓

     ⇓
  
     ⇓

     ⇓
  
     ⇓
    終わり

 

2-4、資料

ヘルプに記載されている情報です。

関連するHelp

コマンド名 説明
MessageBox コマンド文構成
DialogResults ボタン操作後の返り値
MessageBoxButtonTypes 表示するボタン・オプション
MessageBoxIconTypes 枠に表示するアイコン・オプション

 

押しボタンの種類と返り値

タイプ 設定値 表示されるボタン 返り値
OKButtonType 0 OK 0
OKCancelButtonType 1 OK 0
キャンセル 1
RetryCancelButtonType 2 再試行 2
キャンセル 1
YesNoButtonType 3 はい 2
いいえ 3
YesNoCancelButtonType 4 はい 2
いいえ 3
キャンセル 1
エラー発生時 -1

 

アイコンの種類

タイプ 設定値 メッセージ内容
NoIconIconType 0 アイコンを使用しない
QuestionIconType 1 質問がある
InformationIconType 2 情報を表示する
WarningIconType 3 警告する
CriticalIconType 4 重大な問題がある


あたらしいスクリプトを作成することができました。

この項目は終了です。