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

comment

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

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

関連記事

no image

マルチテキストの定義幅

マルチテキストで新発見。 定義幅って項目があり、これによりマルチテキストの幅が決まって、 それを越える文字があれば改行されてるというもの。 DXFコードでいうところの41:参照矩形の幅だ。 普通だった …

no image

寸法値の高さ

AutoCADの寸法値高さは難解だ。 定義している場所が3箇所もある。 1.寸法(DIMENSION)の文字高さ 2.寸法スタイル(DIMSTYLE)の文字高さ 3.文字スタイル(STYLE)の高さ …

no image

ハッチング

ハッチングには苦労させられます。 AutoCADのハッチングの話です。 境界図形群があって、中の模様(塗りつぶしの場合もあり)があって。 この境界図形群がくせものなんです。 ポリライン、線、円、円弧、 …

AutoCADの変革(LTがRegularになってRegularがPlusに!)

CAD業界に激震が走ったというのはこういうことか。2021年5月7日、オートデスク社が「AutoCAD 新戦略記者説明会」をオンラインで行った。 ・従来のAutoCAD LTを「AutoCAD」に ・ …

no image

Export Layout to Model Space Tool

日本語名「レイアウト-モデル変換」 レイアウトをモデル空間に書き出すツール、か。 Autodesk User Group が出しているWishリストで、 毎年上位に上がっていた機能。 ついに、作ること …