danpapa blog

趣味のプログラミング等について

CodeBlocksーDSTool-ScriptEditor-Format-01

DSToolーフォーマット変更の対応案

 DraftSightのフォーマットが変更されたとき、どうやって対応するのか?今まではソースコード見直して、新しいフォーマットに合わせていました。これがとても面倒で、更新をやめてしまった原因です。

 で、どうするのか?フォーマットは使う人(ユーザー)が対応させる。ん?すごい手抜きですが、良いんですかねぇw

 いや、使ってる人いないし良いんですよwどうせ自分でやるんだからw

 

まずはフォーマットについて

LINE
ハンドル
C4
モード
モデル
画層
0
線の色
ByLayer
線種
ByLayer
線幅
ByLayer
透明性
画層指定
点から
X=-44.749 Y=237.108 Z=0.000
点へ
X=156.466 Y=93.120 Z=0.000
長さ
247.427
XY平面での角度
324
デルタ X
201.215
デルタ Y
-143.988
デルタ Z
0.000

 これが線のプロパティを取得したものです。赤字が今までDSToolで取得していた項目です。このデータの並びや語句等が変更されるたびに、ソースコード変更など、今まで苦労してきました。

対策として、フォーマットが変更になっても赤字が取得できるように、赤字の取得方法を見直します。この取得方法にも独自のスクリプトを使って取得することにより、フォーマットが変更されてもスクリプト変更で対応できる。というものです。勿論、スクリプトにすることにより、処理速度が低下するはずです。まぁやってみましょうw

 

スクリプトの仕様案

以前のスクリプトは、コマンド: 引数1,引数2,引数3; というのが基本の形でした。今回も同じようにしてみます。(ショボいスクリプト言語ですw)

コマンドリスト

// 補足:mem[0]~mem[2999]までがメモリ割り当て(全て文字列として扱う)
//   :引数はメモリや文字列が使用できる。
// (必要なら内部で文字列 → 数値へ変換)


rows: 引数1,引数2; // 引数2 = 引数1 行目の文字列
len: 引数1,引数2; // 引数2 = len(引数1)
right: 引数1,引数2,引数3; // 引数3 = right(引数1, 引数2)
left: 引数1,引数2,引数3; // 引数3 = left(引数1, 引数2)
find: 引数1,引数2,引数3; // 引数3 = find(引数1, 引数2)
+: 引数1,引数2,引数3; // 引数3 = 引数1 + 引数2
-: 引数1,引数2,引数3; // 引数3 = 引数1 - 引数2
*: 引数1,引数2,引数3; // 引数3 = 引数1 * 引数2
/: 引数1,引数2,引数3; // 引数3 = 引数1 / 引数2
msg: 引数1; // MessageBox(引数1)
str+: 引数1,引数2,引数3; // 引数3 = 引数1 & 引数2
cr+: 引数1,引数2; // 引数2 = 引数1 & 改行

 とりあえず、こんなもんでしょうか?「msg」以降は確認用ですね。

さぁ、プログラム書いてみますか!・・・どうやって書けばいいのか検討中w