SolidWorks 使い方 入門

ソリッドワークス

株式会社 サンエツ

SolidWorksの基本操作編
Formの追加とデータクラスの編集
SolidWorks API   Formの追加と編集
フォームを追加してコントロールを貼り付けてアプリケーション風なものを作成します。

前回保存したコードを開いてフォームにコントロールを貼り付けるところまで。

  1. 図面テンプレートを開きます。
  2. 「マクロの編集」を選択します。
  3. 前回保存したファイルを開きます。
  4. しばらくすると前回保存したコードが表示されます。
  5. 後は「Visual Studio」と同じ操作でForm1を追加します。但し残念ながら英語の表記です。
  6. 「NumericUpDown」コントロールと「Label」「Button」を貼り付けます。
  7. 「プロパティ画面」でコントロールのサイズやフォントはお好みのサイズに変更します。 コードでプロパティを変更しても構いません。

コントロールを次のように変更します。ここも「Visual Studio」と同じ操作です。
コントロール名
(Name)
Text
フォーム
Form1
検査表
ラベル
Label1
行数(ROW)
ヌメリックアップダウン
NumericUpDown1
ボタン
Button1
検査表の作成
一度フォームのことから離れて、データ処理用のコードを作成します。フォームの追加と 同じ手順でクラスを追加してください。名前は「Class calc」としました。

簡単なアプリですが基本編ですのでデータ処理用のクラスを作成しました。 本格的なアプリケーションを作成するときは必ず必要ですので、皆さんがアプリケーション を作成するときは、今回の説明を参考にしてください。

  1. 「検査表」の記号のリストとキャプション(見出し)のリストを作成します。「Visual Studio」 を使い慣れている方は「あれ!」と思いますね、「Collections.Generic」の名前空間を入れないと リストが作成されません。少し不便です。
  2. NumericUpDown1で入力された値を変数に格納します。
  3. 「記号」「規格値」「実測値」「誤差」をConstで定数にします。
  4. Class Form1から値を受け取るメソッドを作成します。以下はメソッドの中に記入します。
  5. リストや変数をShared(C#ならStatic)で宣言してますのでメソッドの最初で一度クリアしておきます。クリアしないと 再度クラスをNewするとリストに追加されたり変数が初期化されたりします。
  6. 記号(アルファベット)をリストにaddするには For分で_rw.Add(Chr(i).ToString().ToUpper())のようにします。
  7. 見出しの項目をaddするのはFor分を使うよりそのままaddした方が簡単ですので _hding.Add(shnbr)を4つ書きます。
  8. Class Form1から渡された値を変数に格納します。
ここまでの「Class calc」のコードです。
    Shared _rw  As New  Collections.Generic.List( Of String '記号のリスト 
   
Shared _hding  As New  Collections.Generic.List( Of String '見出しのリスト 
   
Shared _rownum  As Integer '行数 
   
Const  shnbr As String  =  "記号"
   
Const stndrd  As String =  "規格値"
   
Const  msr As String  =  "実測値"
   
Const err  As String =  "誤差"
   
'Class Form1から値を受け取るメソッド 
   
Public Sub  adrow(ByVal  rint As Integer
       _rw.Clear() 
'リストのクリア 
       
_hding.Clear() 'リストのクリア 
       '記号(アルファベット)をリストにadd 
       
For  As Integer  = 97 To  122 
           
'アルファベットを大文字に変換 
           
_rw.Add(Chr(i).ToString().ToUpper()) 
       
Next 
       
'見出しの項目をadd 
       
_hding.Add(shnbr) 
       _hding.Add(stndrd) 
       _hding.Add(msr) 
       _hding.Add(err) 
       _rownum = rint 
'Class Form1から渡された値 
   
End Sub
「Visual Studio」のようにasのインテリセンスも表示されません。かなり不便です。

データ処理用のクラス「Class calc」から処理をした値を「Class SolidWorksMacro」に渡す準備をします。

クラス間のデータのやり取りで基本になるのは、
  1. コンストラクタの引数を使う。
  2. イベントを利用する。
  3. プロパティを利用する。
  4. メソッドの引数で対応する。など
幸いにもNET.VBとC#にはプロパティという非常に便利なものが用意されていますので、 今回は読み取り専用のプロパティを使います。またまた残念なことに「Public ReadOnly Property」 はインテリセンスでは表示されません。「Visual Studio」の場合は「Public」の後に「r」と打ち込んだ瞬間に 変換候補として「ReadOnly」が表示されますがマクロの編集では表示されません。 「Get   End Get」の表示もありません。
見出しのリストを読み取り専用のプロパティに記録する例です。
    Public ReadOnly Property  hding() As  Collections.Generic.List(Of String
       
Get 
           Return 
_hding '見出しのリスト 
       
End Get 
   End Property
「Class calc」の全文はコチラ 「Class calc」
次のページでは「Class Form1」のコードを作成します。
前のページに戻る場合はコチラ↓
基本操作編INDEXに戻る場合はコチラ↓
株式会社 サンエツ
〒252-113 神奈川県綾瀬市小園883-1
TEL :0467-76-7228
FAX :0467-77-3448
E-mail :info@sanetu.main.jp
URL : http://sanetu.main.jp