V8版のdgn2tcxが完成間近です。 ― 2009年12月11日 06時39分48秒

dgn(デザインファイル)のフォーマットがV8になってから大きく改良されたので結構苦労していました。
私自身も一年中ずっと開発できてればいいのですが、絶対そうは行かないので睡眠時間を削りながら、独学で少しずつ体当たり調査してると壁をクリア。
何とか行けそうです。V8は色々と変化がありますが
地味な所でV7と比べてスキャンスピードも速くなった気がします。
まだV7依存の企業様などで過去のV7ツールの移植ができないため未だにV8環境に移行できないという事がありましたら、是非ご連絡ください。
今後の生産体制など含めてご相談を承ります。
私自身も一年中ずっと開発できてればいいのですが、絶対そうは行かないので睡眠時間を削りながら、独学で少しずつ体当たり調査してると壁をクリア。
何とか行けそうです。V8は色々と変化がありますが
地味な所でV7と比べてスキャンスピードも速くなった気がします。
まだV7依存の企業様などで過去のV7ツールの移植ができないため未だにV8環境に移行できないという事がありましたら、是非ご連絡ください。
今後の生産体制など含めてご相談を承ります。
世界初?尺貫法にも対応した日本の寸法入力ツール ― 2009年11月11日 23時05分33秒

昔の家屋の手書き間取り図を編集するためのツールです。
先日問い合わせがあったのでプロトタイプ版を開発してみました。
ただ、微妙にまだ使いにくいのでもう少し調整が必要。
マイクロステーション本体の標準機能ではアキュドローがありまして、直角入力もあるのですが、これに更に日本では明治時代に定義されたと言われる尺貫法の寸法設定に対応しました。
もちろん日本サイズの。
(知らなかったけど尺貫法には日本サイズと中国サイズがあるらしい)
現代の作業で大昔の資料のデジタル化など寸法入力でしかも直角入力する必要のあるものについては威力を発揮いたします。
お問い合わせされたお客様へ〜そのうちデモにお伺いいたします。
しばらくお待ちください。
先日問い合わせがあったのでプロトタイプ版を開発してみました。
ただ、微妙にまだ使いにくいのでもう少し調整が必要。
マイクロステーション本体の標準機能ではアキュドローがありまして、直角入力もあるのですが、これに更に日本では明治時代に定義されたと言われる尺貫法の寸法設定に対応しました。
もちろん日本サイズの。
(知らなかったけど尺貫法には日本サイズと中国サイズがあるらしい)
現代の作業で大昔の資料のデジタル化など寸法入力でしかも直角入力する必要のあるものについては威力を発揮いたします。
お問い合わせされたお客様へ〜そのうちデモにお伺いいたします。
しばらくお待ちください。
拡張DMフォーマット ― 2009年11月09日 07時18分03秒
拡張DM(DM=ディジタルマッピング)フォーマットというのがあり、旧のDMフォーマットとちょっとだけ変わっています。
当社の技術者より「変換システムが読み込みできずにエラーを返してきます」とヘルプをもらいましたので、対応しました。
文字列のコード系や余白カラムのところに項目を追加されたりしてるところがあるようです。
DMフォーマット自体は実は各社微妙に記述の仕方が異なってたりします。(例えば電柱とか)
そこへ拡張されたものが出てきてるので、わやくちゃになりそうになりましたが、マイクロステーションへの変換システムの中では「これでもか!」というくらいのオプション機能を実装して当社はしっかり対応いたします。
当社の技術者より「変換システムが読み込みできずにエラーを返してきます」とヘルプをもらいましたので、対応しました。
文字列のコード系や余白カラムのところに項目を追加されたりしてるところがあるようです。
DMフォーマット自体は実は各社微妙に記述の仕方が異なってたりします。(例えば電柱とか)
そこへ拡張されたものが出てきてるので、わやくちゃになりそうになりましたが、マイクロステーションへの変換システムの中では「これでもか!」というくらいのオプション機能を実装して当社はしっかり対応いたします。
セルの回転移動ツール ― 2009年11月08日 00時31分53秒

シンプルな生産力向上シリーズです。
このツールはセル要素の移動と回転を1回のオペレーションで行うためのものです。
大量に移動編集するときなどは威力を発揮します。
(最近は何万個?かくらいのシンボルを回転移動しなければならない業務がある)
シェープファイルのポイントデータの編集などに良いかも知れません。例えば道路台帳ものとか住居表示用のフロンテージのシンボル回転移動とか。どうでしょう・・・?
私はお世辞にもMicroStationの標準機能では使いやすいとは言えませんので仕方なく開発。
以前に文字列の移動回転ツールを作りましたがあれのセル対応版です。
完成までにしょうもないバグが直らず意外と時間かかりました。
(たとえばMSLINKが保持されずに消えたり、ダイナミック表示中に要素が変な色になったり、セルヘッダが2度と選択されなくなったりとか(汗)←始めは超焦った)w(゜o゜)w
とりあえず生産オペレータの負担が少しでも軽減されるようにお祈りいたします。
ガンバレみんな!乗り切れみんな!
そのうち当社のホームページにも紹介します。
このツールはセル要素の移動と回転を1回のオペレーションで行うためのものです。
大量に移動編集するときなどは威力を発揮します。
(最近は何万個?かくらいのシンボルを回転移動しなければならない業務がある)
シェープファイルのポイントデータの編集などに良いかも知れません。例えば道路台帳ものとか住居表示用のフロンテージのシンボル回転移動とか。どうでしょう・・・?
私はお世辞にもMicroStationの標準機能では使いやすいとは言えませんので仕方なく開発。
以前に文字列の移動回転ツールを作りましたがあれのセル対応版です。
完成までにしょうもないバグが直らず意外と時間かかりました。
(たとえばMSLINKが保持されずに消えたり、ダイナミック表示中に要素が変な色になったり、セルヘッダが2度と選択されなくなったりとか(汗)←始めは超焦った)w(゜o゜)w
とりあえず生産オペレータの負担が少しでも軽減されるようにお祈りいたします。
ガンバレみんな!乗り切れみんな!
そのうち当社のホームページにも紹介します。
ジェイミー ― 2009年07月10日 17時39分54秒

汎用のデータベース情報配置ソフトを作りました。
その完成度は非常に高く、名前はジェイミーといいます。
よくある「○○配置ツール」とかいう命名は少し飽きてきたので
覚えやすい名前で外国人でもわかりやすい名前。
このアプリケーションはMicroStation上でデータベーステーブルからのデータをマウスで選んで、dgn要素として配置できます。データベースはAccessのmdbを使う事ができ、入力者情報機能、検索機能、実際の入力場所へのジャンプ機能、リンクされている画像を表示する機能など盛りだくさんです。
データベースの内容はフィールド名などが変化しても設定値ファイル(iniファイル)で指定することでどんなテーブルでも使用可能です。
女の子のイラストがスプラッシュイメージになっています。
(左下の3つの画像)
このソフトを使うととても効率よく入力作業ができますので、
デモを見たい方はお知らせください。
その完成度は非常に高く、名前はジェイミーといいます。
よくある「○○配置ツール」とかいう命名は少し飽きてきたので
覚えやすい名前で外国人でもわかりやすい名前。
このアプリケーションはMicroStation上でデータベーステーブルからのデータをマウスで選んで、dgn要素として配置できます。データベースはAccessのmdbを使う事ができ、入力者情報機能、検索機能、実際の入力場所へのジャンプ機能、リンクされている画像を表示する機能など盛りだくさんです。
データベースの内容はフィールド名などが変化しても設定値ファイル(iniファイル)で指定することでどんなテーブルでも使用可能です。
女の子のイラストがスプラッシュイメージになっています。
(左下の3つの画像)
このソフトを使うととても効率よく入力作業ができますので、
デモを見たい方はお知らせください。
GoogleMapからDGNを操る技術 ― 2009年03月27日 00時41分34秒
少し前にはGoogleEarthの
シンクロシステムを
作りましたが、今回は訳あって徹夜体制を含む開発で出来上がりました。
(↑:クリックで拡大表示)
このソフトウェア自体はMicroStationのMDLで
開発しているものですが、
MDLのフォームウィンドウの中にブラウザを埋め込んで、内部で
ウェブサーバーにアクセスさせ、GoogleMapをMDLで表示。
特にGoogleMapとMicroStationが連動していく様子は
当社の社員たちが絶賛しています。
MDLのGoogleMapではキーワードや住所など通常のブラウザと
同じように検索ができ、航空写真も表示できます。
また、GoogleMap上の当該箇所をクリックすると、DGN上のどこかを
示すことができるように開発しました。
この技術はウェブを上手に使った生産技術の1つだと思いますが
近い将来、ラスターをいちいち用意する必要がなくなるとか、
原稿図を作成する手間がかなり省略できるかもしれません。
ちょっと思いつくイメージでは、GoogleMapをマップデジのイメージで
クリックするとDGN要素として入力されていくというところまで
見えてきました。
何か世の中の役に立てればいいのですが・・・。
そのうちホームページでも紹介したいと思いますが
デモが必要ならお伺いしますので、希望があれば是非ご連絡ください。
シンクロシステムを
作りましたが、今回は訳あって徹夜体制を含む開発で出来上がりました。
(↑:クリックで拡大表示)
このソフトウェア自体はMicroStationのMDLで
開発しているものですが、
MDLのフォームウィンドウの中にブラウザを埋め込んで、内部で
ウェブサーバーにアクセスさせ、GoogleMapをMDLで表示。
特にGoogleMapとMicroStationが連動していく様子は
当社の社員たちが絶賛しています。
MDLのGoogleMapではキーワードや住所など通常のブラウザと
同じように検索ができ、航空写真も表示できます。
また、GoogleMap上の当該箇所をクリックすると、DGN上のどこかを
示すことができるように開発しました。
この技術はウェブを上手に使った生産技術の1つだと思いますが
近い将来、ラスターをいちいち用意する必要がなくなるとか、
原稿図を作成する手間がかなり省略できるかもしれません。
ちょっと思いつくイメージでは、GoogleMapをマップデジのイメージで
クリックするとDGN要素として入力されていくというところまで
見えてきました。
何か世の中の役に立てればいいのですが・・・。
そのうちホームページでも紹介したいと思いますが
デモが必要ならお伺いしますので、希望があれば是非ご連絡ください。
インストーラによるインストール場所 ― 2009年02月14日 00時03分05秒

最近パッケージ化されたソフト開発をする事が増えてきたのですが、
皆さんはソフトのインストールはどのフォルダにしますか?
たぶんほとんどの人がデフォルトの
c:\Program files以下にすると思うのですが、ちょっと問題発生。
c:\Programとfilesの間に半角スペースがあります。
実はこの半角スペースが結構厄介で、シンプルなくせして
C言語によるマイクロステーション開発泣かせになってきてます。
元々C言語自体は引数を int argc,char argv[]で取得するので
スペースが含まれてるやつは2個のフィールドとして捕らえます。
通常ダブルクォーテーション(")でくくって処理するのですが
MDLの場合(もう改善したけど)認識してくれなかった。
そもそも、ustation.exeに引数つけて渡すときには
ダブルクォーテーションで(")でくくっても認識しない。
とりあえず今は何とか回避法を見つけ出したので
大丈夫ですが、あまりこういう話は誰からも聞かないなぁ。
皆さんはソフトのインストールはどのフォルダにしますか?
たぶんほとんどの人がデフォルトの
c:\Program files以下にすると思うのですが、ちょっと問題発生。
c:\Programとfilesの間に半角スペースがあります。
実はこの半角スペースが結構厄介で、シンプルなくせして
C言語によるマイクロステーション開発泣かせになってきてます。
元々C言語自体は引数を int argc,char argv[]で取得するので
スペースが含まれてるやつは2個のフィールドとして捕らえます。
通常ダブルクォーテーション(")でくくって処理するのですが
MDLの場合(もう改善したけど)認識してくれなかった。
そもそも、ustation.exeに引数つけて渡すときには
ダブルクォーテーションで(")でくくっても認識しない。
とりあえず今は何とか回避法を見つけ出したので
大丈夫ですが、あまりこういう話は誰からも聞かないなぁ。
地図接合対応の万能カッティングツール ― 2008年12月26日 01時36分29秒

皆、早く帰宅するし、出張中の私はクリスマスを横目に見ながら
しゃあなく開発。
今回はお客様の要望で、
「座標で緻密な接合とりたい。
完全なクリップカットではなく、
カットラインの一点先の点を
残したい」
ということ。
何とも、最初聞いたときは、
「別にいらんやん」と
思ったが、職人魂が燃えて作りこみ開始。
せっかくなので紹介します。
(近日中にHPにも紹介アップ予定)
画像は、左の画像が処理前、右の画像が処理後です。
処理後の方に注目して欲しいのですが、削除エリア内には
1点分の座標がちゃんと残っています。
当然ながら3次元対応でZ値は有効になっています。
この座標値は反対側からの図面でも既存座標値
だったので接合するようになります。
(これはわかる人にはわかる、キメ細かい仕上がりなんです)
高精度な成果を迅速に作るにはそれ相当の技術がモノをいいます。
マイクロステーションの標準機能では完全切断と、外側、内側しか
実現できなかったので、最初は仕方なく手作業で1つ1つ編集削除
してました。
この等高線をやってると、やってるうちにだんだんイライラしてきて、
仕方なく作らされたという印象ですが、複合図形などにもちゃんと
対応したし、レンジ処理してるし処理速度はものすごく速い。
次からこういうの来ても怖くなくなりました。
しゃあなく開発。
今回はお客様の要望で、
「座標で緻密な接合とりたい。
完全なクリップカットではなく、
カットラインの一点先の点を
残したい」
ということ。
何とも、最初聞いたときは、
「別にいらんやん」と
思ったが、職人魂が燃えて作りこみ開始。
せっかくなので紹介します。
(近日中にHPにも紹介アップ予定)
画像は、左の画像が処理前、右の画像が処理後です。
処理後の方に注目して欲しいのですが、削除エリア内には
1点分の座標がちゃんと残っています。
当然ながら3次元対応でZ値は有効になっています。
この座標値は反対側からの図面でも既存座標値
だったので接合するようになります。
(これはわかる人にはわかる、キメ細かい仕上がりなんです)
高精度な成果を迅速に作るにはそれ相当の技術がモノをいいます。
マイクロステーションの標準機能では完全切断と、外側、内側しか
実現できなかったので、最初は仕方なく手作業で1つ1つ編集削除
してました。
この等高線をやってると、やってるうちにだんだんイライラしてきて、
仕方なく作らされたという印象ですが、複合図形などにもちゃんと
対応したし、レンジ処理してるし処理速度はものすごく速い。
次からこういうの来ても怖くなくなりました。
最新のネイティブコントロールをマイクロステーションに ― 2008年10月01日 21時47分03秒

MicroStation本体のコントロールがちょっと少なくて寂しかった
のですがCOMオブジェクトの技術(例えばActiveXオートメーション)
を使わずに内部経由で最新のコントロールを使ってみました。
これまでマイクロステーションから外部へ信号は割りと
簡単だったのですが外部からマイクロステーションへは
ちょっと難しかったです。
画像はWindows Vistaや最新のOFFICE(Outlook等)で使われている
コントロールのカテゴリパネル(CategoryPanel)やマイクロソフトの
DataAccessComponentを使ってAccessのデータベースの内容を
マイクロステーションSEでMDLから呼び出したサンプルです。
DataAccessComponentはGUIを使って開発してたレベルでは
簡単でしたが、外部経由だとインスタンスから面倒みてやらないと
あかんかった(←こんなしょーもない事に気づかず数時間悩み反省)
ちょっと前まで「あんまり最新追っかけてもなぁ」という気でしたが
インターフェースを変える事で作業効率の上がるものがあるかも
知れないと思いました。
安定した動作と爆発的なスピードにちょっと感激。
既存ツールやシステムのバージョンアップの
相談あれば是非ください。
近頃の取り組みでした。
のですがCOMオブジェクトの技術(例えばActiveXオートメーション)
を使わずに内部経由で最新のコントロールを使ってみました。
これまでマイクロステーションから外部へ信号は割りと
簡単だったのですが外部からマイクロステーションへは
ちょっと難しかったです。
画像はWindows Vistaや最新のOFFICE(Outlook等)で使われている
コントロールのカテゴリパネル(CategoryPanel)やマイクロソフトの
DataAccessComponentを使ってAccessのデータベースの内容を
マイクロステーションSEでMDLから呼び出したサンプルです。
DataAccessComponentはGUIを使って開発してたレベルでは
簡単でしたが、外部経由だとインスタンスから面倒みてやらないと
あかんかった(←こんなしょーもない事に気づかず数時間悩み反省)
ちょっと前まで「あんまり最新追っかけてもなぁ」という気でしたが
インターフェースを変える事で作業効率の上がるものがあるかも
知れないと思いました。
安定した動作と爆発的なスピードにちょっと感激。
既存ツールやシステムのバージョンアップの
相談あれば是非ください。
近頃の取り組みでした。
V8でのMDL開発レポート3 ― 2008年07月10日 17時05分13秒

今回は画層についての報告です。
V7から大きく変わった仕様の1つとして、画層名があります。
いわゆる、番号だけではなく、文字列をレイヤー名としてもたすという
ものです。
これをV8からMDLでコマンドを送りつけてやろうと思い、
マニュアルを模索して下記の関数で実施。
stat = mdlLevel_setActiveByName(
LEVEL_NULL_ID,
"Tsukasa-Consulting"
)
一回目はコンパイルエラー続出。
メッセージは「宣言がされてない関数がある」(英語表記ですが)
でした。
それで leveltable.fdf をinclude してやると
DgnModelRefPという構造体命令でひっかかり、エラーストップ。
使っているヘッダファイルやfdfは沢山あるがどうも原因が
わかりません。
この関数を使うにあたっては必要なライブラリとして
stdmdlbltin.libと書かれているがフォルダ内は
stdmdlbltin.dllしかないぞ!
もしかして、dlsを自分でラッパー書きするしかないのか?
という感じです。(dloファイルもないし)
ちなみにコマンドラインから入力実行する「lv=test」は
ライブラリ画層に「test」がないと実行できません。
引き続き研究してみます。。。。
V7から大きく変わった仕様の1つとして、画層名があります。
いわゆる、番号だけではなく、文字列をレイヤー名としてもたすという
ものです。
これをV8からMDLでコマンドを送りつけてやろうと思い、
マニュアルを模索して下記の関数で実施。
stat = mdlLevel_setActiveByName(
LEVEL_NULL_ID,
"Tsukasa-Consulting"
)
一回目はコンパイルエラー続出。
メッセージは「宣言がされてない関数がある」(英語表記ですが)
でした。
それで leveltable.fdf をinclude してやると
DgnModelRefPという構造体命令でひっかかり、エラーストップ。
使っているヘッダファイルやfdfは沢山あるがどうも原因が
わかりません。
この関数を使うにあたっては必要なライブラリとして
stdmdlbltin.libと書かれているがフォルダ内は
stdmdlbltin.dllしかないぞ!
もしかして、dlsを自分でラッパー書きするしかないのか?
という感じです。(dloファイルもないし)
ちなみにコマンドラインから入力実行する「lv=test」は
ライブラリ画層に「test」がないと実行できません。
引き続き研究してみます。。。。
最近のコメント