2019年4月24日水曜日

ARXアプリケーションを他のCADでも

ARXアプリケーションをソースの修正なしに、他のCADに移植する。
これを最初に取り組んだのは、BricsCAD ですが、今は他の AutoCAD互換CADと言われるCADでもできるようになっています。

同一のソースで複数のCADで動くプロジェクト

内容は HELLO コマンドを登録し、HELLO コマンドは、acutPrintf() でメッセージを1行表示するという他愛のないものですが、自分で作ってきた ARX アプリケーションを他の CAD に移植するときのひな形として使えるようになっています。
新しく ARX アプリケーションを作成するときに、このプロジェクトから始めてもいいでしょう。

ARXアプリケーションは、MFCベースのユーザーインターフェースを使うこともあって、MFC拡張DLLとして作成されます。
AutoCADでは標準Win32 DLLとして作成することも可能ですが、他のCADでは MFC 拡張 DLL として作成することを強く推奨しているので、このプロジェクトは MFC 拡張 DLL になっています。
acrxEntryPoint() と acrxGetVersion() の2つの関数が CAD に対してエクスポートされている必要があります。その辺はマクロでやっています。

ObjectARX SDK のサンプルには、acrxEntryPoint() で、kInitAppMsg などのシグナルをswitch文で直接切り分けるものが多いですが、この例のようにシグナルをメンバー関数で処理する AcRxArxApp クラスも提供されています。それをアプリケーションがオーバーライドして、アプリケーション固有のシグナルの処理や、カスタムコマンドの定義を行います。

対象となるCADのコンパイルやリンクの設定は Visual Studio のプロパティシートにまとめています。プロパティシートの中で、SDK のパスを示す環境変数を用意しているので、これと違う場所に、SDK がインストールされている場合は、プロパティシートを書き換えてください。

AutoCAD 2019 と、IJCAD 2019 と、ARES Commander 2019 の3つのCADで動くようにしています。AutoCAD 2019と ARES Commander 2019は Visual Studio 2015 でビルドするので1つのVCプロジェクトにまとめています。IJCAD 2019 は Visual Studio 2010 でビルドするので別のVCプロジェクトに分けられています。
対象になる CAD を増やすには、コンパイラが違う場合は VCプロジェクトを分け、同じならビルド構成でわけて、プロパティシートをそれぞれ用意するとよいです。

ソリューションを開く

Visual Studio 2015でこのソリューションを初めて開くときは、IJCAD のプロジェクトが Visual Studio 2010 用なので次の警告を表示します。



Visual Studio 2015  用にアップグレードしようとしますが「キャンセル」を押して無視してください。


すると、このように、Visual Studio 2010 用と、Visual Studio 2015 用のプロジェクトが共存した状態で開くことができます。

ビルド→バッチビルドを選択したところ。Visual Studio 2015 用の FCRX プロジェクトの中には、AutoCAD 2019 のリリースビルドの ac2019 構成と、ARES 2019 のリリースビルドの fc2019 構成が入っています。
ビルドをするには、その PC に Visual Studio 2010 (SP1, Win8 パッチの当たったもの)と、Visual Studio 2015 (UPD4, C/C++コンパイラ必要) の両方がインストールされている必要があります。BricsCAD v8 も追加するには、Visual Studio 2013 も必要です。AutoCAD 2020 に対応するには Visual Studio 2017 も必要になります(うぅっ)。

(BricsCAD Pro 定価で10万かぁ.ロハで提供してくれたら評価するのになぁ)


2019/7/24 公開停止

2019年4月22日月曜日

Geany の翻訳を久しぶりにやった

多機能テキストエディタ Geany の翻訳を久しぶりにやった。
高速・軽快な IDE という触れ込みになっていて、実際ビルド処理をエディタから呼び出したり、シンボルデバッガと連動したりもするのですが、自分は色んな言語(プログラム言語、スクリプト言語、マークアップ言語)の構文色付けや自動補完入力ができればそれで十分だと思っている。
Geany は、https://www.geany.org/ から最新を入手できる他、Linux の各ディストリビューションの通常の方法でもインストールできるようになっています。

ただ、ここんところ日本語入力がおかしくなっているので、あるけど使えない状態になっている。C++ なんだから、手前がデバッグしてやればいいじゃないのっていう声も聞こえるんだけど、時間がないの。すみません。
新しい Geany 1.35 for Windows では日本語入力が直ってた。
たぶん、Geany 1.35 for Linux や Mac OS X でも直っているんじゃないかな。
ああ良かった良かった。デバッグしないで済んだ。
Geany for Windows を起動して、何か文字を入力して半角カナに変換されてしまう場合は、コントロールパネルの言語アプレットを起動して、キーボードの設定を日本語だけになっていたら英語を追加する。
これで、問題を回避できた。画面は Windows 8.1 のものだが、Windows 10 でも同じ方法で回避できる。



あと最近、Linux 触ってないので、今回はこんな感じに修正しましたよってなことを紹介します。

まず、Cygwin を Windows PC にインストール。
https://www.cygwin.com/ に行って、setup-x86_64.exe をダウンロードしてインストールすればOK。
インストールは途中、追加的なプログラムやデータをどこのサーバーから入手するか?という設定があるのですが、自分のパソコンから近い国内のサーバーを選択するとよい。
これで一旦インストールしても、セットアッププログラムは捨ててはいけない。
既定で c:\cygwin64 フォルダ以下にセットアップされる Linux のサブシステムのメンテナンス(ソフトウェアの追加・削除や、保守・更新)は、セットアッププログラムを使って行います。
端末のアイコンがデスクトップに作成され、それを起動すれば、c:\cygwin64\home\ユーザ名 をホームディレクトリにした Linux っぽい何かが使えるようになっている。

Geany のソースコード一式は、git でチェックアウトするので、Cygwin に git を追加インストールしてから、c:\cygwin64\home\ユーザ名\geany にチェックアウトした。

翻訳の保守なので、gettext のプログラム(gettext.exe)と開発ツール(fmtmsg.exe)も追加インストールする必要がある。
geany も Linux でビルドするべ、起動させるべっていうのなら、Gnome のセットアップも必要になりますが、そこまではしなかった。

別のエディタを使って翻訳をやって、Linuxの中で vim 他のコンソールで動くエディタを使ってもいいし、Windows のエンコードと改行をきちんと扱えるテキストエディタでやってもいいです。
Geany for Windows でやりたかったんだけど上述の事情により断念。
次のバージョンのメンテのときは、Geany を使ってやるのだ。
geany は、poファイルの色分けもできるしね。

後は、メーリングリストに翻訳とチェックの済んだ po ファイルを送ってフィニッシュ。

Windowsで仕事でも趣味でもパソコン使っているのだけど、ここだけ GNU/Linux のツールが使いたいってときに、Cygwin 重宝するよね~。
(ていうか、もう、Linux なんてマニア以外使う人いないのかしらとも思ったり)

日曜の半分でこんなことしてました。因果なものよの。



Cygwin と Geany のアイコンが、Windows のデスクトップに現れた

異尺度注釈図形にアタッチされている尺度を知る

 異尺度注釈図形が持っている尺度(文字列)を表示する ;;; ;;; LISTANNOSCALE.LSP ;;; (defun C:LISTANNOSCALE ( / el id f)   (setq f T)   ;異尺度注釈図形を選択   (if (setq el (entg...