今週末ちょっと標記の件で調べ物をしていたのですが、手つまりになりました。もっと調べてみようかな。
JWWについては、知っている人は知っていると思いますが、ちょっと説明したいと思います。JWW wikipediaから。
開発元はjiroShimizuさんとYoshifumiTanakaさんで、初版が1997年7月となっています。21年間も使われて続けているようです。バージョンも8まできています。もともとはDOS版が開発され、windows版ができて「JWW」となったようです。jwwの一番のメリットは「無料」だということです。うちのような弱小会社にはこれほど助かるソフトはありません。昔だと、AutoCADなどもありましたが、それなりの金額がかかって手書きで行った方がメリットがありましたので。
1997年7月1日にVer0.01が配信されたのですが、DOS版がWindows上で問題なく動作した事から開発は緩やかだったようです。1999年からDOS版の開発が終了したことで、開発が活発化し、2000年1月1日にVersion 1.00が発表されたようです。DOS版の軽快な操作性を継承し、バージョンアップを重ねるごとに、時計の文字盤を模した操作メニュー「クロックメニュー」の実装や図面データの倍精度実数化、面図形、天空図作成など多くの機能が付加・改良された。Version 8.00からはWindows 8シリーズのタッチパネル操作にも対応した一方でXP以前のOSには非対応になったようです。いまでは、XPはサポートも終わっているのでほとんど使用することがないのでいいですが。
この他に外部変形という拡張機能を備えており、これよって様々な付加機能が得られる。フリーソフトゆえにネット上には膨大な「外部変形」が蓄積されており、Jw_cadのもっとも魅力的なポイントのひとつになっているんです。今回この外部変形の使い勝手を良くするのに調べていたのですが。
プログラムとかをやっている人ならば、簡単なことも素人になるとさっぱりです。
今回やりたいことは、これまで作ったりした外部変形のメニュー画面を作って選択できるようにすることです。
今まででできたところは、下記の画面のとおり。
JWWで、外部変形を選んで、perlのtkを起動して、メニュー画面を表示。
このあと、別のバッチファイルを実行できれば終わるのですが、ここができないんです。
ちなみに、元々の外部変形にはラベル分岐があり、9項目までは分岐できるんですが、メニューバーが小さいですし、今後の拡張性がないので、拡張性のある方法を試しているのです。メニューソフトもいろいろとあるようなのですが、これも拡張性が制限されてしまうのと、お金がかかるので、無理だったときに考えたいと思っています。けど、メニューソフトでできるってことはできるんだと思うんですが(この探しモノで今週はブログ書きそびれているようにも感じるし、気になると調べすぎるのがいけませんね)。
batファイルの中身は、
@rem テストデータ
rem #jww
rem #e
C:\Perl64\bin\perl C:\Perl64\bin\1test_tk.pl
pause
perl側のファイルの中身は、
use Tk;
use encoding “shiftjis”;
$top = MainWindow->new();
$up = $top->Frame();
$down = $top->Frame();
$buffer = “kIKメニュー”;
$up->Label( -textvariable => \$buffer )->pack( );
$down->Button( -height => “2”,-width => “20”,-text => “Button 1” , -command => \&Exit1 )->grid( -column => 1, -row => 1 );
$down->Button( -height => “2”,-width => “20”,-text => “Button 2” , -command => \&Exit2 )->grid( -column => 1, -row => 2 );
$down->Button( -height => “2”,-width => “20”,-text => “Button 3” )->grid( -column => 1, -row => 3 );
$down->Button( -height => “2”,-width => “20”,-text => “Button 4” )->grid( -column => 1, -row => 4 );
$down->Button( -height => “2”,-width => “20”,-text => “Button 5” )->grid( -column => 2, -row => 1 );
$down->Button( -height => “2”,-width => “20”,-text => “Button 6” )->grid( -column => 2, -row => 2 );
$down->Button( -height => “2”,-width => “20”,-text => “Button 777777” )->grid( -column => 2, -row => 3 );
$up->pack();
$down->pack();
sub Exit1 {
exec( ‘C:/JWW/ZAHYOU.BAT’);
exit;
}
sub Exit2 {
exec( ‘goto TENH’);
exit;
}
MainLoop();
tkの表示までは大丈夫で、これまでも外部変形のみであればplで実行はできていますので、batの実行だけできれば終わるとおもうのですが、もう一歩が思いつきません。
う~ん、どうすればいいのだろうか。