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

Longbow

Longbowとは、大弓または長弓のことだ。 pull the longbowで「大げさに話す・ 大ぼらを吹く」となる。 「プログレッシブ英和中辞典(第4版)より」 AutoCAD 2015がリリース …

AutoCAD 2024のコードネームはUrsa(ウルサ)だってよ

AutoCADのコードネームがアルファベット順に付けられていく、というのは知る人ぞ知ること。Autodeskの中の人が以下の記事で明らかにしていて、この記事自体は2年前のものだが、ひっそりと最新情報で …

no image

region

リージョンとは、閉じた形状、つまりループから作成される2次元領域です。 閉じたポリライン、線分、曲線を選択できます。 曲線には、円弧、円、楕円弧、楕円、スプラインがあります。 (AutoCADヘルプか …

no image

wblock

wblock(ブロック書き出し)。 AutoCAD使いだったら、たいていの人が知っているコマンドだろうか。 おぼろげならこのコマンドの名前は知っていたが、その効果を知らなかった。 選択した図形を別のd …

no image

AutoCAD OEMとRealDWG

Autodeskのセミナーを申し込んだ。 AutoCAD OEM &RealDWG 説明会 OEMは、アド設計のU2さんがブログで連載していたプロジェクトAのこと。 建築用2次元CAD、addCad。 …