RunSVL実行(ローカル)

CosmosをインストールしたパソコンにあるRunSVLスクリプトファイルを以下の手順で実行します。


① メニュー「ファイル(F)」-「開く(O)...」をクリックします。



② Cosmosをインストールしたフォルダーのサブフォルダー「Sample」にある 「LocalSample.jss」を選択して、「開く」ボタンをクリックします。



2つのシート「Main」と「Data」を持つ、表が表示されます。
「Main」にはプログラム、「Data」にはデータが記述されています。



③ RunSVL実行前に「実行モード」を確認しておきます。


実行モードで、シートのプログラム開始位置が決まります。
Mainモード ・・・ Mainシートの1行1列目から実行
Sheet モード ・・・ 現在表示しているシートの1行1列目から実行
Columnモード ・・・ 現在表示しているシートでカーソル列の1行目から実行
RunSVLバーに現在の実行モードが表示されています。
「Main」シートの1行1列目から実行しますので、SheetモードまたはMainモードにしておきます。



モードを変更するには、実行モードの表示欄の右にある下矢印ボタンを押してモードをクリックしてください。



④ 実行は以下の基本ツールバーにある「RunSVL実行」ボタンをクリックしてください。



「Main」シートにあるプログラムは「Data」シート上のデータにしたがって矩形と丸を描きます。




RunSVL実行(Web)

Web上にあるRunSVLスクリプトを以下の手順で実行します。


① アドレスバーに実行したいHTMLあるいはJSSファイルのURLを入力します。


WebサンプルのURL「http://futureworld.shintech.jp/cad/manual/WebSample.shtml」を例にしますのでアドレスバーに入力してください。


入力がめんどうくさい方は RunSVL Webサンプル ←この部分をクリックしてください。
すると以下のページが表示されます。



② 上のページ RunSVL実行 部分をクリックすると「WebSample.jss」のMainシートから実行を開始します。


WebSample.jss は幅,高さ,穴数,四角数の入力値を解釈し実行して描画し、実行結果を表示します。



お気に入りに追加


ローカル版を追加


「RunSVL実行(ローカル)」で説明した「LocalSample.jss」をお気に入りへ追加し、以降は「お気に入り」から実行します。


① 「LocalSample.jss」のWindow上で右クリックし、ポップアップメニュを表示させます。
表示されたメニューから「お気に入りへ追加(A)」をクリックしてください。
「Main」シートから実行しますので、そのシートを表示させておいてください。表示されたシートから実行開始します。



② 「お気に入り(A)」ダイアログが表示されます。「保存」ボタンをクリックをクリックするとお気に入り追加が完了します。



お気に入りへの追加が完了したので、「LocalSample.jss」を閉じてください。


③ メニュー「お気に入り(A)」をクリックすると、「LocalSample.jss」項目が追加されています。
この項目をクリックすると「LocalSample.jss」を読み込み、「Main」シートから実行を開始します。



     ↓

「LocalSample.jss」を読み込まれて、実行結果が表示されます。




Web版を追加


「RunSVL実行(Web)」で説明した「WebSample.shtml」をお気に入りへ追加し、以降は「お気に入り」から実行します。


① 「WebSample.shtml」のWindow上で右クリックし、ポップアップメニュを表示させます。
表示されたメニューから「お気に入りへ追加(F)」をクリックしてください。



② 「お気に入り」ダイアログが表示されます。「OK」ボタンをクリックをクリックするとお気に入り追加が完了します。



お気に入りへの追加が完了したので、「WebSample.shtml」を閉じてください。


③ メニュー「お気に入り(A)」をクリックすると、「RunSVL Webサンプル」項目が追加されています。
この項目をクリックすると「WebSample.shtml」を読み込み表示します。



④ 幅,高さ,穴数,四角数の入力欄に入力した後、RunSVL実行 部分をクリックすると「WebSample.jss」のMainシートから実行を開始します。



     ↓


以下のような実行結果となります。


Web版を追加(2)


Cosmosコンテンツ集」 のRunSVLプログラムを直接実行できるように、お気に入り追加をおこないます。


① アドレスバーに「http://www.shintech.jp/cad/contents/index.shtml」を入力してEnterキーを押して下さい。
入力がめんどうくさい方は Cosmosコンテンツ集 ←この部分をクリックしてください。
すると以下のページが表示されます。
以下の順でクリックすると、お気に入りへ追加したいRunSVLプログラムのリストが表示されます。



直線(実線)の上で右クリックして、メニュー「お気に入りへ追加(F...」をクリックしてください。



③ 「お気に入り」ダイアログが表示されます。「OK」ボタンをクリックをクリックするとお気に入り追加が完了します。



お気に入りへの追加が完了したので、「Cosmosコンテンツ集」ページを閉じてください。


③ メニュー「お気に入り(A)」をクリックすると、「直線(実線)」項目が追加されています。
この項目をクリックすると「直線(実線)」(exeSVL.jss?Cmd$.ExeSVL("cmdLINE.SVL");)が実行します。



     ↓


以下のように「SVL実行」ダイアログと入力メッセージが表示されます。指示にしたがって「直線(実線)」を実行します。


SVL貼付 ex1.jss

下図のSVLを実行するRunSVLプログラムを作成します。


Cosmosインストールフォルダー\Sample\SVL_SAMP\Rect.SVL
[入力]
 w : 幅
 h : 高さ
 0 : 基準点
[出力]
 矩形を出力


① メニュー「新規作成(N)」-「jss,spsファイル」でRunSVLスクリプトファイル「ex1.jss」を作成。


     ↓


     ↓


② 基本ツールバーの上にある「SVL貼付」を実行して目的のSVLを貼り付ける。
「ex1.jss」の1列目にカーソルを移動しておいてください。


     ↓


     ↓


     ↓
下図のようにSVLが貼り付けられます。1列目の幅が狭くてファイル名が見えないので幅を変更します。


     ↓
以上で「SVL貼付」でRunSVLプログラムが作成完了しました。


③ 実行準備1


     ↓

 → 

これで図形が出力できる環境ができました。


④ 実行準備2

実行モードを「Sheet」モードにしておく。



これで現在表示しているシートの先頭から実行できます。


⑤ 実行例1

シートの2列目にある幅と高さを入力して「RunSVL実行」ボタンをクリックしてRunSVLを実行します。
基準点の入力セルが空になってるので、実行中にマウスで入力します。



     ↓


⑥ 実行例2

複数列、列の先頭行に「*」または「*Label」を記述し、その次行のセルにSVL入力値して、SVLを連続実行します。
点の入力要素はカンマ区切りで座標 x,y を記述すると、入力バーに入力を促すメッセージを出さずこの値で、RunSVLはSVLを実行します。



     ↓



SVLをつなげる ex2.jss

単純なSVLをつなぎあわせて複雑な図形を発生させるRunSVLプログラムを作成します。


次の2つのSVLをつなぎぎあわせます。

Cosmosインストールフォルダー\Sample\SVL_SAMP\Rect.SVL
[入力]
 w : 幅
 h : 高さ
 0 : 基準点
[出力]
 矩形を出力

Cosmosインストールフォルダー\Sample\SVL_SAMP\Circ.SVL
[入力]
 r : 幅
 x : x...
 y : y...
 0 : 基準点
[出力]
 円を出力

次のようにSVLをつなぎぎあわせます。


① RunSVLスクリプトファイル「ex2.jss」を新規作成。


② 1列目に「Rect.SVL」を貼付。


③ 3列目に「Circ.SVL」を貼付。


④ 2つのSVLをつなげるために、2列5行目に「<?」, 4列7行目に「<B.ie0」を記入。
「<?」はユーザーからのマウス入力を要求し、その入力の値をセルの値とします。
「<B.ie0」はラベルBの列と入力要素ie0のセル位置の値をgetし、その値をセルの値とします。



⑤ Circ.SVLをさらにつなげるために、5列目に 「*」とSVLの入力値を記入します。
基準点は1つ前のSVLの出力点を利用するために「<D.oeP」を記述します。
さらに上図で W=2000, H=1500, X=700, Y=1000, R=150, X’=800, Y’=-500, R’=200となるように記述します。



⑥ 実行準備
実行モードを「Sheet」にしておく。「ex2.jss」をアクティブにしておく。


⑦ 実行(基本ツールバーにある「RunSVL実行」ボタンをクリック)
もし、図面Windowがなければ、自動的に新規図面作成コマンドが走ります。



     (↓)

基準点をマウス入力します。

     ↓

実行結果


スクリプト ex3.jss

「SVLをつなげる ex2.jss」では、図面作成と基準点 指示をユーザーに操作させていました。 ここではユーザーの入力なしで実行できるように変更します。


① メニュー「ファイル(F)」-「名前を付けて保存(A)...」を実行して「ex2.jss」を「ex3.jss」で保存します。 その「ex3.jss」を読み込ます。


② Sheet1の列を1列右に移動します。


     ↓


③ 1列目に以下のスクリプトを記述します。



[1] % //javascript  ・・・ スクリプト列の開始 //javascript はExcel上で動かすとき確実にJavascriptエンジンを使います。
[3]
Cmd$.CreateFTR("Plt.FTR","A3横",420,297); ・・・ A3サイズの「Plt.FTR」図面を作成
[4] Cmd$.CreateMap("No2",15,15,1/10); ・・・ 1/10の縮尺座標系(no2)を作成
[6] Cmd$.FocusMap("No2"); ・・・ 縮尺座標系(no2)を現座標系に設定
[8] B(100,150); ・・・ 3列目へ基準点(100,150)を引数で渡す。
[10] end$(); ・・・ RunSVL実行を中止する関数 end$() を実行
[12] % ・・・ スクリプト列の終わり
さらに、3列目の1行セルを *B(x,y) に変更します。


④ RunSVL実行します。ユーザーからの入力なしで次の図面が作成されます。



シートアクセス ex4.jss

シート上にあるデータをもとに図形を作成するプログラムを作成します。
SVLをつなげる」の「Rect.SVL」と「Circ.SVL」を利用します。


① SVL貼付とスクリプトの記述を以下のようにします。



[13] x = Data[2][i]; if( x=="" ) break; ・・・ Dataシート2行i列目のセルの値を取得。値が空ならforループを抜ける
[14] y = Data[3][i]; ・・・ Dataシート3行i列目のセルの値を取得
[15] d = Data[4][i]; ・・・ Dataシート4行i列目のセルの値を取得

セルの値取得については「セルへの代入と値参照」を参照してください。
Sheet名を変更しています。「Sheet名変更操作」を参照してください。


② Dataを以下のように作成します。



③ 実行結果は以下のようになります。




Javascriptシート ex5.jss

「ex4.jss」「Main」シート1列目のスクリプト列をJavascriptシートへ移動します。
JavascriptシートにはJavascriptコードが記述されます。


① 「Script」シートの1行1列目に「%%%javascript」を記入し(これで「Script」シートはJavascriptシート になります)、Mainシート1列目のスクリプト列の内容を「Script」シートへ移動します。



[9] Main.Rect(1000,1000); ・・・ MainシートのRect(w,h)を呼び出すので「Main.」を付けて呼び出します。
[17] Main.Circ(d,x,y); ・・・ MainシートのCirc(d,x,y)を呼び出すので「Main.」を付けて呼び出します。


② 実行結果は「シートアクセス ex4.jss」と同じになります。

RunSVLの実行順序は、どのSheetを表示していてもJavascriptシート から実行開始するからです。



SVLアプリとSVLプログラム ex6.jss

SVLアプリ列にあるSVLプログラムは式で与えることができます。 SVLプログラムのフォルダーを自由に指定できるようにします。


Javascriptシート にフォルダー名をセットする変数「gDir」を宣言します。
  var gDir = "C:/Program Files/Cosmos/Sample/SVL_SAMP/";



② 「Main」シートの1行3列目にあるSVLプログラム指定を式で与えます。
  %%SVL=gDir + "Rect.SVL"



③ 実行結果は「シートアクセス ex4.jss」と同じになります。


Javascriptシート で宣言された変数、関数はどのシートからでも参照できます。 (スコープ)



入出力列でのスクリプト ex7.jss

SVL入出力列 のセルにスクリプトが埋め込まれます。 これでSVLの入力変数・要素に加工した値が渡せます。


① 「Main」シートの3列目 *Rect(L,k,w,h)に変更します。 L, k から基準点を計算するスクリプトを書くために、SVLアプリ列 に「%」を記述します。 これでこの行に対応した入出力列のセルにスクリプトが書けます。


 


Javascriptシート でのMain.Rect(...)呼び出しの引数を次のように変更します。
  [11] Main.Rect(100,45, 1000,1000);


③ 実行結果は「シートアクセス ex4.jss」と同じような結果になります。




CSVファイル ex8.jss

CSVファイルにある直線群を書きます。


Cosmosインストールフォルダー\Sample\SVL_SAMP\Line.SVL
[入力]
 x1 : 端点1のx座標
 y1 : 端点1のy座標
 x2 : 端点2のx座標
 y2 : 端点2のy座標
[出力]
 直線を出力

① 「Main」シートの3行目に「Line.SVL」を貼り付けて、下図のようにスクリプトを記述してください。



[7] Cmd$.LoadCSV("D:/Work/Sample/LnData.csv","Data",2,1); ・・・ CSVファイル「LnData.csv」を読み込んで「Data」シートの2行1列目から書き込みます。
[12] x1 = Data.X1[i]; if( x1==="" ) break; ・・・ DataシートのX1ラベル(*列)の i+1行目のセル値を取り出し、空セルかどうかを判定しています。演算子「===」型と値が等しいか正確に判定します。
セルの値取得については「セルへの代入と値参照」を参照してください。


② 「Data」シートの先頭行に *X1 *Y1 *X2 *Y2 を記入しておきます。



また、LnData.CSVというファイル名のカンマ区切り形式のファイルを準備します。中身は次の通りです。



③ 実行結果は以下のようになります。




スクリプトマージ ex9.jss

既に作成してあるプログラムをMergeコマンドを用いて結合して実行する方法を解説します。
「CSVファイル ex8.jss」を他のスクリプトから呼び出して実行するスクリプトを作成します。


① 「CSVファイル ex8.jss」を他から呼び出し入り口を設けます。

「Main」シートの1列目のスクリプト列をラベル付きに変更します。
   % *start //javascript
を1行目のセルに記入します。



② ①で変更したスクリプトをメニュー「RunSVL(R)」-「JSS,SPS書出」でシート毎にタイプを設定して書き込みます。 タイプを「全てメモリー」にし、ファイル名「mergetest.jss」で保存します。
メモリータイプは実行スピードが若干速くなります。標準タイプはマージすると内容が表示されます。


     ↓ 「JSS,SPS出力」ボタンをクリック


③ 新しいファイル「ex8.jss」を作成して、「mergetest.jss」のマージ(読込)と「Main」シートのstart列を実行するスクリプトを記述します。


[3] Cmd$.Merge("mergetest.jss"); ・・・ 「mergetest.jss」を読み込んで現在実行中のプログラムと結合します。
[5] Main.start(); ・・・ 「Main」シートの*start列を実行します。


④ 「ex9.jss」の実行結果は「CSVファイル ex8.jss」と同じです。




RunSVLライブラリーの使用

工事中…



CADライブラリーの使用

工事中…



JSDBライブラリーの使用

工事中…



SPSマージ

工事中…



SVLとSPSのパッケージ化

工事中…



Web対応

工事中…



Sheet名変更操作

以下の操作でSheet名を変更します。


① Sheet名タブを右クリックして、ポップアップメニューの「名前の変更(R)」をクリックします。



② Sheet名タブにカーソルが移動、そこで新しいSheet名を入力します。最後にEnterキーを押すと名前の変更を完了します。