JW_Cad を OpenSolaris 2008.05 release on My Notebook Computer にインストールしてみた.このときの、インストール・雑感のメモ.
1.Wine binary pkg for solaris のダウンロード
安直ながら、
瀧さんのブログサイトからいただくことにする。source ファイルを
WineHQ から
ダウンロードして、コンパイル・インストールする手もある。
$ pfexec wget http://kohju.justplayer.com/docs/solarispkg/JPCwine-0.9.54J02.pkg.bz2
$ pfexec bzip2 -d JPCwine-0.9.54J02.pkg.bz2
$ pkgadd -d ./JPCwine-0.9.54J02.pkg
パッケージは /opt/JPC 以下にインストールされる.
$HOME/.bashrc の export PATH= 行に /opt/JPC/bin を追加しておく.
2.初期設定: GNOME端末を起動して、
$ winecfg
hogeuser の ホームディレクトリに $HOME/.wine が生成されて、wine設定画面が表示される.
Image-01 Wine設定画面
2−1.日本語入力の設定:
Wineの標準設定では、日本語表示はできても日本語入力ができない.
$ wine regedit.exe
HKEY_CURRENT_USER → Software → Wine で新規キーを設定。
[ 新しいキー #1]を[X11 Driver] に変更する.
$ vi ~/.wine/user.reg
[Software\\Wine\\X11 Driver] xxxxxxxxx という行の下に "InputStyle"="root" を追加する.
Image-02 レジストリ編集画面
Oensolaris 2008.05 の hogehost の $HOME directory の ~/.fonts 以下に、いくつかの日本語 TTF フォントを置いてある. この ~/.fonts ディレクトリのリンクを ~/.wine/drive_c/windows/fonts/ 以下に置いておく.
安直な方法だが、とりあえず wine のアプリケーションから ユーザーフォントの設定が可能となるはずだ.
システムの再起動
$ pfexec reboot ※システムを再起動して、変更した設定を反映させる.
2−2.Windowsインストーラの文字化け対策:Font の置換
$ vi ~/.wine/system.reg
つぎの項目の最後に一行追加する.
[Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes] "MS Sans Serif"="MS UI Gothic
システムの再起動
$ pfexec reboot ※システムを再起動して、変更した設定を反映させる.
3. Windows アプリケーションの起動
3−1. NotePad : Windows に付属する簡易エディタである.
$HOME/.wine/drive_c/windows/ 配下にある.
GNOME端末を起動して、$ wine notepad.exe して起動させる. 適切なフォントを選択すれば、日本語表示と日本語入力ができるはずである.
フォントの設定で、ここでは さざなみゴシック を選択した.
半/全 変換キーで日本語入力 (SCIM/Anthy) の切替えができる. (Image-03)
このときの GNOME端末の表示は (Image-04) のようになったが、よくわからない.
NotePad を操作する度にメッセージを吐き出す.
Image-03 NotePad 起動・フォント設定画面
Image-04. GNOME端末 NotePad 起動・操作時の表示メッセージ
3−2. Jw_cad について
Jwcad-Wikipedia より抜粋・引用
Jw_cad は Windows 95,98,Me/NT,2000,XP,Vista 上で動作する 2次元汎用CAD フリーソフトである.DOS版とWindows版がある. Windows版は DOS版の軽快な操作性を継承し、時計の文字盤を模した操作メニュー「クロックメニュー」を実装. この他にも図面データの倍精度実数化、面図形、天空図作成など多くの機能が付加された. Jiro Shimizu氏、Yoshifumi Tanaka氏が開発.
名称はバージョン3.51Cまでは「Jw_cad for Windows」、バージョン4.00以降は「Jw_cad」と称する. DOS版と区別するため、ユーザー間では「JWW」「Jw_win」「Windows版」などの呼称がとられる.
最新版は Ver.6.01(2008年01月03日リリース)で、 現在はSXF Lv2への対応に向け力を入れている. また、Ver.6.01 で、3次元DXFデータ出力の機能が追加されたため、Google SketchUp との連携ができるようになった. Windows版で扱える図面ファイル形式は JWC、JWW、DXF、SXF、P21 で JWW が基本形式. 仕様はWebサイトで公開されている.複数のバージョンが存在し、新しいバージョンのファイルを古いバージョンで読み込むことはできない.この場合特にエ ラーメッセージは表示されないため注意が必要である. なお、この CADには【外部変形】というユニークな拡張機能があって、さまざまな付加機能が得られる.その主なタイプを3点に絞ってまとめて見ると…、
1.画面上に迅速に作図するタイプ → (例)木造平面図の描画
2.画面上のデータを集計するタイプ → (例)木造筋違の自動描画
3.画面とは関係なく裏で自動計算 → (例)鉄骨二次部材などの断面算定
商用CAD ソフトウェアの愛好家とは別に、Jw_cad のもつ軽快な操作性から建築・設備設計分野で実用に供され、依然としてその人気は根強い.フリーソフトであることもあって、インターネット上のコミュニ ティや発行されている参考書籍も多数存在あるので、中小設計企業などは導入しやすいのも人気のひとつかもしれない.
ダウンロードとインストール:
Jw_cad のページ の
ダウンロードコーナーから最新バージョン ver6.01 (jww601.exe) をダウンロード・インストールする.
GNOME端末を起動して、つぎのコマンドを与える.ダウンロードファイルの格納ディレクトリは ~/src-pkg である.
$ cd ~/src-pkg
$ wget http://www.jwcad.net/download/jww601.exe
$ wine jww601.exe
デフォルトでは C:\jww にインストールされる. スタートメニューにはインストールしない.
Jw_cad の起動:
GNOME端末を開いて、つぎのコマンドを与えて、Jw_cad を起動する.
$ wine 'c:\jww\Jw_win.exe'
とりあえず Jw_cad は起動し、初期起動画面が表示されるが、GNOME端末上で次のようないくつかのエラーメッセージを吐き出す.
ここで MFC42.DLL が必要だよ・・・と叱られる.(加えて、MSVCRT.DLL が必要だよと叱られる場合もある.)
$ wine "c:\jww\Jw_win.exe"
---------------------------------------------------------------------
err:iphlpapi:getNumWithOneHeader Unable to open '/proc/net/route' to count entries!
err:iphlpapi:getRouteTable unimplemented!
err:module:import_dll Library MFC42.DLL (which is needed by L"C:\\jww\\common_lib.dll") not found
err:module:import_dll Library MFC42.DLL (which is needed by L"C:\\jww\\common_lib_AP202.dll") not found
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
fixme:imm:ImmGetOpenStatus (7fcddd50): semi-stub
fixme:imm:ImmReleaseContext (2010a, 7fcddd50): stub
fixme:imm:ImmGetOpenStatus (7fcddd50): semi-stub
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
--------------------------------------------------------------------------
いったん、Jw_cad を終了する.
WindowsXP の C:\windows\system32 以下にある mfc40.dll と msvcrt.dll を ~[$hogehome]/.wine/drive_c/windows/system32/ にコピーする。
あるいは、
ここら辺か らサーヴェイしてゲットしてもよいかも.
再度、Jw_cad を起動する.
先の叱られたメッセージは出なくなった.ツールバーに関連したエラーメッセージ?が吐き出される.
以後、起動した画面を操作する度に続々とメッセージを端末に吐き出す.(それらのもつ意味はあるのだろうが・・・よくわからない.)
起動画面は (Image-05).ここでも、端末は意味不明なメッセージを吐き出す.
Windows 側で作成した設定ファイルや図形・外部変形データをここにコピーすれば、Windows と同様に扱える.
ただし、日本語名のファイルは文字エンコードの関係で文字化けする場合もある.これは予め半角英数表記することで回避することができる.
環境設定やオプション設定は特に問題なく Windows と同様の操作ができた.
Jw_cad の操作詳細については省略.
(参考:
Jw_cad 関連参考書、
JWW情報館=JWCAD関連のポータルサイト)
Image-05: Jw_cad 初期起動画面
※ 設定ファイル ( *.jwf) はカスタマイズしてある.
図面(*.jww ファイル)の読み込み:(Image-06)
Windows 上で作成済みの適当な図面を選んで読み込ませてみる.表示にクズレ、文字化けや文字配置のずれもなく動作状態は良好である. ここでも端末は多量のメッセージ (エラーを含む)を吐き出す.
文字入力、文字編集ともにできたが、文字入力・編集をくりかえすと、ときどき画面がフリーズしてハングアップする.
Image-06 作成済みの図面の読込み後の表示画面
( ※ 操作メニューの配置は適宜変えている )
ソフトの起動〜表示するまでの時間が WindowsXP ベースと比べてはるかに遅いものの、いったん立ち上がれば操作性に遅滞もなく、OpenSolaris 2008.05 上で Jw_cad が動くことはわかった.
Wine の最新バージョンではどうなるのか、後日試してみよう.
※ Jw_cad 起動〜諸操作〜終了までの端末のメッセージ表示
---------------------------------------------------------
$ wine 'c:\jww\Jw_win.exe'
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0 fixme:imm:ImmGetOpenStatus (7fcddb78): semi-stub fixme:imm:ImmReleaseContext (20108, 7fcddb78): stub
fixme:imm:ImmGetOpenStatus (7fcddb78): semi-stub
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0
wine: Unhandled page fault on read access to 0x0000001c at address 4825e3 (thread 0009), starting debugger...
Unhandled exception: page fault on read access to 0x0000001c in 32-bit code (0x004825e3). Register dump: CS:016b SS:0173 DS:0173 ES:0173 FS:1007 GS:01c3 EIP:004825e3 ESP:7fa0fcb4 EBP:006e6840 EFLAGS:00010246( - 00 -RIZP1) EAX:00000000 EBX:00000000 ECX:7d001ec0 EDX:006af61c ESI:006e6810 EDI:00000001
Stack dump: 0x7fa0fcb4: 00000111 00000086 00000000 00000001 0x7fa0fcc4: 006e6810 00000000 00656b67 00000000 0x7fa0fcd4: ffffffff 006e6810 7fa0fd98 7fc53bec 0x7fa0fce4: 00000001 0065871c 006e6810 006598af 0x7fa0fcf4: 0063b1a0 7fcd1441 0064fb3c 00400000 0x7fa0fd04: 00000000 7fcd1441 0000000a 0063b2f2 0200: sel=1007 base=7fec0000 limit=00003fff 32-bit rw- Backtrace: =>1 0x004825e3 in jw_win (+0x825e3) (0x006e6840) 2 0x000000a1 (0x0001002a) 3 0x00000000 (0x00000000) 0x004825e3: movl 0x1c(%eax),%ecx
Modules: Module Address Debug info Name (21 modules) PE 400000- 727000 Export jw_win PE 10000000-10055000
Deferred common_lib PE 5f400000-5f4f2000
Deferred mfc42 PE 7d4e0000-7d5bb000
Deferred common_lib_ap202 PE 7d640000-7d644000
Deferred msvcrt PE 7ef80000-7ef84000
Deferred oleaut32 PE 7f090000-7f094000
Deferred rpcrt4 PE 7f140000-7f144000
Deferred ole32 PE 7f190000-7f1a1000
Deferred oledlg PE 7f1e0000-7f1e6000
Deferred winspool PE 7f250000-7f256000
Deferred shlwapi PE 7f2f0000-7f36b000
Deferred shell32 PE 7f3d0000-7f43a000
Deferred comdlg32 PE 7f510000-7f522000
Deferred comctl32 PE 7f5a0000-7f5a4000
Deferred version PE 7f5f0000-7f5f4000
Deferred advapi32 PE 7f680000-7f684000
Deferred gdi32 PE 7f780000-7f795000
Deferred user32 PE 7f840000-7f88d000
Deferred winmm PE 7fc30000-7fc9f000
Deferred kernel32 PE 7ff90000-7ff94000
Deferred ntdll Threads: process tid prio (all id:s are in hex) 00000008 (D) C:\jww\Jw_win.exe 00000009 0 <== 0000000a 0000000b 0 0000000c 0000000f 0 0000000e 0 0000000d 0 Backtrace: =>1 0x004825e3 in jw_win (+0x825e3) (0x006e6840) 2 0x000000a1 (0x0001002a) 3 0x00000000 (0x00000000)
----------------------------------------------------
※ 初稿 2008-July-31 23:10
加筆・修正/ 改稿・改訂 2008-Aug.-03, by Baian.