CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

AutoCAD

imageclip

投稿日:

ラスターイメージをクリップするAutoCADのコマンド。

imageclip

モデル空間に配置したラスターを、レイアウト上のビューポート内で

表示した場合、そのラスターがビューポート枠によって切り取られて

一部が表示されないということがありえる。

そんな状態をモデル空間上で実現しようとしたとき、ラスターのクリップが

大変役に立つ。(レイアウト図面をモデル空間図面に変換したときの話)

データ構造的な、ラスターのクリップを解説する。

まずは、クリップされているかどうかという情報。

そして、クリップ領域を表現する2点または、3点以上の座標列。

2点の場合は、矩形の対角となる2点を意味し、

3点以上の場合は、その座標列で囲まれる多角形を意味する。

コマンド内で指定する「クリップの種類」として、矩形にするのか

ポリゴンにするのかに対応する。

この座標、XYの座標ではなくてピクセルの座標になっているのが曲者だ。

左下を、0,0としたピクセル座標となっていて、DXFリファレンスによると、

「既定は(- 0.5, – 0.5)、(size.x-0.5, size.y-0.5)。」だそうだ。

この「-0.5」の意味はよくわからない。

外側に0.5ずつ広げるというなら、枠の分ということで理解できるが、

式から判断するに、左下に0.5ずらすということになるので、意味不明だ。

問題はピクセル座標だということ。

ビューポート枠の座標はXY座標で保持されている。

ビューポート枠を考慮して、ラスターのクリップ座標を計算しなおすには、

両者を同じ基準の座標に変換しなければならない。

ピクセル座標と、その画像の縦と横のピクセル数、尺度、角度を考慮して、

XY座標に変換する。

ややこしい計算になりそうだと頭を悩ませていたところに、そのものずばりのAPIを発見。

OdDbRasterImage::­getPixelToModelTransform ※DWGdirectの関数

Returns the pixel-to-model coordinate transformation matrix for this raster image entity.

このAPIにより得られる3次元マトリックスから2次元マトリックスを取得して、

ピクセル座標を変形(OdGePoint2d::transformBy)すると、XY座標が取得できた。

あとは、ビューポート枠の領域とラスタークリップの領域のANDをとり、

得られた座標をピクセル座標に逆変換(OdGeMatrix2d::­inverse)すればよい。

最後に、ピクセル座標をラスターのクリップ情報にセットする。

我ながら会心の出来だ。

ところで、ラスターイメージはAutoCAD LTでは扱えない。

まず、LTではラスターイメージの挿入ができない。

ラスターイメージが挿入されたDWG図面をLTで開くと、

そのままの状態で表示されて、移動や複写、削除はできる。

ただ、明るさやコントラスト、尺度、クリップの状態など、

ラスターイメージ固有情報の編集ができない。

LTらすたという有名なフリーソフトがある。

Vectorの人気ランキングで、常に上位だ。(現在は1位)

AutoCAD LTでラスターデータをレギュラー版と同様に使えるようにする、大変便利なソフトだ。

-AutoCAD
-

執筆者:


  1. tamekichi より:

    はじめまして。
    >この「-0.5」の意味
    ピクセル1つを点ではなく面と考えると、ピクセル中心から見た左下の座標ではないでしょうか。

  2. CAD日記 より:

    tamekichiさん、はじめまして。
    とってもよく理解できました。
    >点ではなく面と考える...
    なるほど。
    ピクセルを、点としてしか考えられませんでした。
    目から鱗です。
    ありがとうございました。

tamekichi へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

LEADERという罠

AutoCADのLEADER(引き出し線)の話。 悪名高いのよ、こいつが。 今日はこいつに、はめられたね。 寸法スタイルを持ってるくせに匿名ブロックを持ってない。 中途半端な寸法線という位置付けになっ …

no image

XCLIP

外部参照またはブロックを切り取って、部分的な表示を実現する。 データ構造的には、2点の座標値からなる矩形、または 3点以上の座標値を持つ多角形、で定義されている。 さらに、前方クリップ平面または後方ク …

no image

UnicodeとAutoCAD

AutoCAD 2007のDXFとDWGでは、文字がUnicodeコード化されてるんだって。 試しに、2007で「あいうえお」って文字を書いて、2007のDXFで保存して テキストエディタで見たら、め …

no image

安藤忠雄ふたたび

今年も安藤忠雄の講演を聞きに行くことにした。 去年、建築家・安藤忠雄に魅せられて、そのタイトルのハードカバーの 本を買って読んでみたくらいだ。 震災後、彼は何を考えて、どんな活動をしているのか知りたい …

no image

AutoCAD2011

今年もこの季節がやってきた。 3/19、AutoCAD2011リリース。 ADN会員の特権を生かして、AutoCAD2011製品版をインストールしてみた。 いろいろと機能強化が行われているようだが、3 …