設計からCG作成、アプリケーション開発までこなす汎用2D/3D CAD

FAQ:その他

Visual Studioのアプリ開発におけるフォームのデザインで「MicroGDS Event Manager ActiveX control」を配置してデバッグを開始するとエラーが発生する(V11)

Answer

現象と回避方法は以下のとおりです。

現象
Visual Studioのアプリケーション開発にて、フォームのデザインで、 「MicroGDS Event Manager ActiveX control」を配置してから、デバッグ開始をすると、以下のエラーが発生してアプリケーションを実行できない。

エラー内容
'AxCadEvMgr60' コントロールのウィンドウ ハンドルを取得できません。ウィンドウなしの ActiveX コントロールはサポートされていません。

本現象が発生するMicroGDSのバージョン
MicroGDS V11.1.0~MicroGDS V11.2.5

回避方法
管理者権限を持つユーザでログインし、以下のレジストリファイルを登録してください。

mg11_CadEvMgr_update.zip(269byte)

補足
このエラーはVisual Studio上からデバッグする時のみに、Windows 7の一部の開発環境にて発生することが確認されています。
ビルドしたexeファイル自体を直接実行した場合、このエラーは発生しないため、上記レジストリファイルを実行環境に追加する必要はありません。

MicroGDSで作成したMANファイルをMicroGDS Viewerで開くと、 寸法値が変わってしまう

Answer

原因、対処方法につきましては、こちらをご覧ください。
MicroGDS Viewer寸法値について(PDF形式/141KB)

「対処方法」で使用するconfigファイルは、以下よりダウンロード可能です。

バージョン configファイルダウンロード
MicroGDS Viewer V1.0 MGView_1.0_Config.zip(520Byte)
MicroGDS Viewer V1.1 MGView_1.1_Config.zip(295Byte)
MicroGDS Viewer V1.2以降 MGView_1.2_1.3_Config.zip(320Byte)

Viewerで閲覧するMANファイルのバージョンが分からない場合は、こちらのページの「ファイルのバージョンを調べる」を参照してください。

APIカスタマイズで特定のオブジェクト内にある全プリミティブを選択する効率のよい方法は?(V10~)

Answer

Bulkモードを使う、属性を付けて編集制限をかける方法をお試しください。

(1) 処理の前に、Cad.ScreenUpdateMode()で、Bulkを指定する

Bulkモードを指定すると、画面上に選択処理を反映する時間が省略されます。

(2) 編集制限の機能を使い、当該のオブジェクトのみを編集対象として、すべて選択の処理を行う。
オブジェクト名がユニークな場合はそのまま、ユニークでない場合は一時的に選択のための属性データを付与して、後で元に戻します。

Cad.SetEditObj()...指定したオブジェクトを編集対象に限定します。
Cad.SelectAll() ...編集可能なオブジェクトまたはプリミティブを、すべて選択リストに追加します。

Cad.SetEditObj()は、MicroGDSの基本コマンドですと「設定/編集」コマンド(F3キー)に該当します。
これは指定したオブジェクトのみを編集対象にする機能です。

※以下のサンプルをご参照ください。

Cad.ScreenUpdateMode(ScreenUpdate.Bulk);

Cad.SelectPrim();
Cad.CurObject(llink, olink);

string curName = string.Empty;
Cad.GetCurObjName(out curName);

// 一時的に自身の名前を属性値に設定し編集制限をかけてすべて選択
// TAROBJは適当な名前です
Cad.AttVal("RTAROBJ", curName);
string editName = curName + " (R.TAROBJ = \"" + curName + "\")";
Cad.SetEditObj(editName);
Cad.SelectAll();

// 属性値を削除、編集制限を解除
Cad.AttDel("RTAROBJ");
Cad.SetEditObj("");

大量のデータに対する処理の高速化を図る場合、以下のような方策を検討し、勘案して選択することになります。
・MicroGDSとアプリケーション間の通信回数の削減。(上記(2))
・MicroGDSに行わせる処理の簡略化。 (上記(1))
・MicroGDS内部の機能で処理する。 (上記(2))
・アプリケーション側の処理で済ませる。

なお、1つのオブジェクトに大量のプリミティブを登録しますと、個々のプリミティブの検索に時間がかかり、思うような処理速度が得られない場合があります。
オブジェクトをいくつかに分割されることも、処理速度の向上につながります。

Windows 7上のMicroGDSで日本語入力する際、IME言語バーの変換モードが「無変換」になる(V9、V10)

Answer

Windows 7にインストールしたMicroGDS V9.0、V10で確認されている現象です。

日本語入力が必要な場合は、IME言語バーの入力モードを日本語変換モードに切り替えたのち、変換モードを「一般」に切替えてください。

この設定は、MicroGDSセッション中は有効となりますが、「一般」の状態で起動する設定はありません。
MicroGDSを起動する毎に設定を行ってください。

この現象は、MicroGDS V11で解消されています。

・MicroGDS V9.0.20のWindows 7対応について
・MicroGDS V10.0.5のWindows 7対応について