BLT & Tcl / Tk スクリプト言語 on MacOS X 10.2
 Tcl / Tk 関係

BLTのコンパイル
Tcl / Tk & BLT, gnuplot
BLTサンプル・スクリプト
Aquaterm & gnuplot
数式処理ソフトMAXIMA
Tcl / Tkでのシミュレーション
数式処理ソフトSciLab & Octave

 他のホームページは Google で検索して下さい、弊社のページはそれぞれのリンク先をクリックして下さい。


http://www.google.co.jp

 リンクページ

リスクファィブ(RISC-V)関係
マルチ・スレッドとマルチ・プロセス
量子コンピュータと自動制御
Linux上で組込関係ソフト開発利用
Python組込み関係利用の問題点
人工知能・組み込み制御と自動制御
デジタル制御やDCS制御のページ
Linux&FreeBSDでのSCADA,HMI
SoftPLC & LinuxPLC
制御関係コンピュータのページ
実践的な制御の基礎

 他リンクページ

PowerPC関係のページ
MacOS Xのソフト開発環境関係ページ
MacOS X でのH8&SHソフト開発環境
H8S/2238組込み計測装置開発
MacOS XでのVerilogHDL & VHDL開発
制御システムエンジニア・マイコン集い
自動制御システム・自動制御装置
OS関係& Trusted OSのページ
PC & PDA用CPU 関係
組み込みMPU 関係のページ
組み込みマルチ・コア関係のページ
おもちゃマイコンのページ
クラスター 関係のページ
CPU Board & マルチCPUボード関係
Linux関係のページ
PDA (Palm)関係
MacOS X & X serve 関係
OS関係& Trusted OSのページ
マイクロカーネルMach &RT-Mach
BeOS関係のページ

弊社のソフト関係
弊社のハードとファームウェア関係
マルチ・プロセッサ自動制御装置
自動制御システム開発
自動制御装置用SH-2 ボード
生産&治具システム開発
低価格な製品一覧
腕時計サイズ制御ボード
ZigBee無線計測制御ボード
測画像処理制御ボード
計測自動制御装置
PID 自動御制ボード
ロボット制御ボード & ソフト
コイン・サイズのマイコンボード
マルチCPU高精度データロガー装置
タッチスクリーンDSP計測ボード
人口知能 AI 自動制御計測ボード
高機能な診断・分析解析計測システム
高機能な診断・分析自動制御システム
スマートフォン無線計測ソフト
WiFi自動制御計測Web遠隔監視System
弊社のトップページ

 自動制御システム構築や制御ネットワーク構築などで困っておられましたら是非とも弊社にご連絡下さればご相談は無料で受け付けております。

 

E-Mail :こちらをクリックして下さい。

 弊社では、自動制御システムのハードとソフト関係で約32年の経験があります。

 このページについて皆様からのご意見、或いはご要望などがありましたら、是非下記へメールでご連絡下さい。

 

   トップページへ戻り

 MacOS X でオープンソース( Open Source )や優れたフリーウェア( Free Ware )を活用すべく、スクリプト言語グラフ表示のフリーソフトのコンパイルし、使用してみました。

 MacOS X でも、利用可能なクラブ表示ソフトのBLTはTcl / Tkのスクリプト言語に対応した拡張ソフトの実用的なソフトです、MS-EXCELなどの商用ソフトを使用せずとも、簡単にプログラミングが可能です、グラフのスクリプトを作成し即bltwishのインタープリンターで実行できて大変便利です、下記はそのbltwishでサンプルのグラフ・スクリプトを表示したスクリーンショットです。

       

 フリーウェアを馬鹿にしてはいけません、決して利用できないことはないのです、BLTはTcl / Tkとの併用で本格的なビジネス・アプリケーションの開発も可能です、Tcl / TkはC言語とのリンケージが可能でありC言語作成した関数をTcl / Tkからコールも可能であり、又その逆も可能です、Tcl /Tkを応用した商用アプリ・ソフトは多数存在します。

 下記はTcl / Tk応用のBLT と MAXIMA, gnuplotの2D & 3Dグラフを表示したスクリーンショットです。

       

  MS-VB(VisualBasic)でグラフ表示のソフトをプログラミングすることは決して簡単ではありません、BLTの機能はグラフの表示部分をマウスで範囲選択すると自動的にその部分が拡大表示する機能など大変便利です、この機能をVBでプログラミングすれば数千行のソースコードとなるでしょう・・・。

 又、グラフ表示部分に簡単にgiff画像を張り付けできる機能もあり、他にも折れ線グラフや棒グラフなどを表示するだけでなく便利な機能があり、実用的なアプリ・ソフトを開発できます。


◆ BLTのコンパイルと実行方法

  (1) 必要なソフト

  入手すべきSource Files, Object Files、及びTools
   
AppleComputer社のDevelopment Toolsが必要です、MacOS Xのパッケージを購入すれば、
   そのCD-ROMの中に開発Toolsが入っています。

   AppleComputer社のX11on MacOS X beta版が必要であり、X Window SystemでのGUI表示となります。

   fink-0.5.3-Installer.dmgのバイナリ・ソフトが必要。

   他のソースファイル : tcl-8.4.1-src.tar.gz, tk-8.4.1-src.tar.gz
             BLT2.4z.tar.gz

 (2) Tcl/TkとBLTは、Fink でconfigure, make installでコンパイルする。

   /sw/src/へ必要なソース・ファイルをコピーする。
   %cd /sw/src/
   %fink install tcltk

   %fink insatll BLT
   /sw/bin/bltwishが生成されます。

   X11を起動後、X11のxtermでcd /sw/を実行後、bltwish /sw/***.tcl &としBLTのTclスクリプト
   とコマンド入力でBLTを実行する。
   又X11のApplicationメニューにbltwish
/sw/sample.tcl &を登録すれば簡単に起動できます。


◆ BLTのサンプル・グラフ表示スクリプト・ソース

 上記の折れ線グラフのスクリプト・ソースです、かずか百数十行でグラフのズーム機能もあり、グラフのリサイズもグラフ表示中に可能であり、マルチスレッドなど意識する必要がありません、MS-VBであればマルチスレッドプログラミングが必要ですが、残念ながらMS-VBはマルチスレッド・プログラミングができないため、VC++とも併用が必要となりソフト開発時間も多くの工数が必要でしょう・・・、つまり開発効率が悪いのです。

 下記のソース内の改行コード"\"を逆スラッシュに変更しないと実行できないかもしれませんが、ブラウザからテキスト形式でコピーすれば実行可能です。

#!../src/bltwish
package require BLT

if { $tcl_version >= 8.0 } {
namespace import blt::*
namespace import -force blt::tile::*
}

set visual [winfo screenvisual .]
if { $visual != "staticgray" && $visual != "grayscale" } {
option add *Button.Background red
option add *TextMarker.Foreground black
option add *TextMarker.Background yellow
option add *LineMarker.Foreground black
option add *LineMarker.Background yellow
option add *PolyMarker.Fill yellow2
option add *PolyMarker.Outline ""
option add *PolyMarker.Stipple fdiagonal1
option add *activeLine.Color red4
option add *activeLine.Fill red2
option add *Element.Color purple
}

option add *Button.Tile ""
option add *Text.font -*-times*-bold-r-*-*-12-*-*
option add *header.font -*-times*-medium-r-*-*-12-*-*
option add *footer.font -*-times*-medium-r-*-*-1-*-*
option add *HighlightThickness 0

set graph [graph .g]

proc FormatAxisLabel {graph x} {
return "[expr int($x)]\260"
}

set configOptions [subst {
Axis.Hide no
Axis.Limits "%g"
Axis.TickFont { helvetica 12 bold }
Axis.TitleFont { helvetica 12 bold }
BorderWidth 1
Element.Pixels 1.75m
Element.ScaleSymbols yes
Font { helvetica 14 bold }
Legend.ActiveBorderWidth 2
Legend.ActiveRelief raised
Legend.Anchor ne
Legend.BorderWidth 0
Legend.Font { Helvetica 14 }
Legend.Position plotarea
Relief sunken
Title "Sine and Cosine Functions"
x.Command [namespace current]::FormatAxisLabel
x.StepSize 90
x.Subdivisions 0
x.Title "X"
y.Color purple2
y.Loose no
y.Title "Y"
y.rotate 90
y2.color magenta3
}]

set resName [string trimleft $graph .]
foreach { option value } $configOptions {
option add *$resName.$option $value
}

set x_data {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15}
set PlotData0 {3040 4563 3512 7328 4684 5879 6003 8500 9200 9050}
set PlotData1 { 940 928 857 713 689 607 550 720 830 860 890 972 980 989 990}
set PlotData2 { 40 128 357 480 589 777 650 540 430 103 50 120 100 90 50}
set PlotData3 { 0 18 57 180 289 270 460 590 690 540 490 380 320 350 290}
set PlotData4 { 110 203 504 350 230 405 302 220 20 190 120 110 150 170 130}
set PlotData5 { 10 106 200 300 350 305 202 120 220 290 320 380 400 450 430}

$graph configure -leftvar changed

set tcl_precision 15

$graph element create line1 \
-label "Item-1" \
-fill orange \
-color black \
-symbol plus \
-xdata $x_data \
-ydata $PlotData1

$graph element create line2 \
-label "Item-2" \
-color yellow4 \
-symbol cross \
-fill yellow \
-xdata $x_data \
-ydata $PlotData2
$graph element create line3 \
-label "Item-3" \
-color red \
-symbol diamond \
-fill yellow \
-xdata $x_data \
-ydata $PlotData3
$graph element create line4 \
-label "Item-4" \
-color blue \
-symbol square \
-fill yellow \
-xdata $x_data \
-ydata $PlotData4
$graph element create line5 \
-label "Item-5" \
-color black \
-symbol circle \
-fill yellow \
-xdata $x_data \
-ydata $PlotData5

Blt_ZoomStack $graph
Blt_Crosshairs $graph
Blt_ActiveLegend $graph
Blt_ClosestPoint $graph
#Blt_PrintKey $graph

$graph postscript configure \
-maxpect yes \
-landscape yes

$graph axis configure x -color blue -min {} -max {} \
-color blue -title "Input (%)" -titlecolor #232221 \
-showticks 1

$graph axis configure y -color blue -min {} -max {} -hide no -showticks 1 \
-title "Output-1 (%)" -showticks 1

$graph grid configure -hide no -color green -dashes {2 2}


htext .header -text { Graph Quit %%
set im [image create photo -file ./images/stopsign.gif]
button $htext(widget).quit -image $im -command { exit }
$htext(widget) append $htext(widget).quit
%%}

htext .footer -text { }

table . \
.header 0,0 -fill x -padx 1 -pady 1 \
$graph 1,0 -fill both \
.footer 2,0 -fill x -padx 1 -pady 1

table configure . r0 r2 -resize none

bind $graph <Shift-ButtonPress-1> {
MakePsLayout $graph
}


◆ コンピュータと制御関係のページ

 制御関係のコンピュータとリアルタイムOS関係はこちらのページです。

 組込みMPU関係のページはこちらです、又PC & PDA 用CPU関係はこちらのページです。

 PowerPC 関係のページはこちらです。

 MacOS X & X serve関係、他にはない情報のページはこちらです。

 弊社の製品 弊社の低価格なボード・ソフト製品一覧

    トップページへ戻り


◆ このページへはご自由にリンクして下さい、その際Eメールでご感想などをご連絡戴ければと思います。