CC_07 CloudCompareのCrossSection機能その2 連続して断面を作成
2024.12.02
- 3Dデータ
- ライブラリ
- CloudCompare
CrossSection機能の後半では、円筒型のデータを用いて断面、ポリラインを単独/連続で作成する方法をそれぞれご紹介します。一定の間隔で指定幅の断面を連続で取り出すことも可能です。
今回使用する円筒型のデータ(cylinder-001.ply)はこのページ下部のリンクからダウンロードできます。CloudCompareを起動後、円筒データ(cylinder-001.ply)を3Dビュー上にドラッグアンドドロップしてください。
■円筒データ
円筒データは、CloudCompareの「Primitive Factory」機能を使って作成し、サンプル使用のために加工を加えたものです(Primitive Factory機能では、平面や球体、円筒など様々なポリゴンを指定サイズで作成することが可能です)。
ポリゴンから作成した円筒データは、点群ですが法線(裏表を表すベクトル)を持っています。裏表を区別し作業をしやすくするため、法線を表示させます。円筒データを選択し、Propertiesの「Noamals 」にチェックをいれます。陰影がつき、表裏が見やすくなりました。さらに点のサイズも大きくしておきます。マウスポインタを3Dビューの左上近辺にもっていき、default point sizeの+を数回クリックします。
円筒データ 法線表示/点サイズ拡大
■Level機能
前回同様、CrossSection機能を使用する前に、Level機能で軸を揃えておきます。
Levelはデータ上の3点を選択して軸を揃える機能で、最初の2点を結ぶラインがX軸に平行になり、3点目の選択と同時に、3つの点すべてがZ軸に正対するXY平面上に位置するようにデータを自動補正します。円筒など立体形状でもLevel機能が使えます。
ビューツールバーのLevelボタンを選択後、まず1点目を円筒表面の左端中段近辺でクリックします。2点目、同右端中段部でクリックします。クリック部分がマーキングされるだけでこの時点ではまだデータに変化はありません。3点目、円筒中央部で3点目をクリックすると同時に、データが補正されます。
ビューツールバーで視点を切り替えて、傾きが補正されていることを確認してください。
Level機能使用時、マウスドラッグでの回転時の中心が中央からずれた場合は、ビューツールバーの「Pick Rotation Center」を選択後、回転中心としたい場所でクリックをすることで修正できます。
Level機能を使って補正
Pick Rotation Centerクリック後、回転中心にしたい場所でクリック
■断面作成とポリライン作成
円筒データを選択し、メインツールバーのCrossSectionボタンをクリックします。
データを囲む形でクリッピングボックスが表示され、同時に3Dビュー右上隅にCrossSectionツールバーが表示されます。クリッピングボックスを調整して、断面を作成したい部分のみ表示されるようにします。
まず適当な位置でX方向10mmの厚さに調整、CrossSectionツールバーのSlicesボタン2つのうち左側「export selection..」をクリックします。DBツリーに新しい点群「cylinder001-cloud.section」が追加されます。
export selection..クリック後、DBツリーに点群追加
続いて断面の形状をポリラインとして作成します。
CrossSectionツールバーのEnvelope/Contourエリアの「Extracts the envelop…」ボタンを押下→Slice Extraction画面が開きます。今回X軸方向でカットした断面ポリラインを作成したいので、Flat dimensionでXを選択し、「Extract envelop(s)」にチェックを入れます。
Slice Extraction画面
断面全体を対象にポリラインを作成するので、Envelop typeはFullを選択します。
Max edge length(最大エッジ長)の数値はこのまま、平面に沿ったポリラインを作りたいのでproject slice(s) points on their best fit plane にチェックを入れて「OK」します。
DBツリーに新しいポリライン「cylinder001.section.envelope」が追加されます。Process FinishedメッセージにOKし、CrossSectionツールバーを「閉じる」ボタンで閉じてください。
元の点群「cylinder001-cloud」のチェックマークを外し、ビューツールバーで視点を切り替えると、断面点群およびポリラインをクリアに見ることができます。今回はポリライン形状にFullを指定したので、断面全体を対象に、円形のポリラインが作成されています。ポリラインを選択すると、Propertiesのlength項目に、長さ(全周)が表示されます。
全周ポリライン
■連続して断面・ポリラインを作成する
続いて、連続で断面とポリラインを作成する方法をご紹介します。DBツリーでcylinder001-cloudのみが表示されるようにしてからcylinder001-cloudを選択します。メインツールバーのCrossSectionボタンをクリックします。
X方向50mm刻みに断面点群とポリラインを作成します。
クリッピングボックス矢印をドラッグするか、Box thicknessのXに数値を入力してX方向が50mmになるよう調整します。
連続で断面を作成・サイズを設定
CrossSectionツールバーのslicesボタン2つのうち右側の「Export multipul slices …」をクリック→Slice Extraction画面が開きます。
設定は以下の通りです。
・Repeat dimenshions :X
・Extract slice cloud..にチェック
・random colors per slice..にチェック(断面ごとにランダムカラーが割り振られます)
Extract envelope(s)には直前の設定が残っている(Extract envelope(s) にチェック、Envelop type:Full、etc)のでこのままOKします。Process FinishedメッセージにOKし、CrossSectionツールバーを閉じます。
DBツリーでcylinder001-cloudのチェックを外すと、50mmごとに切断され色分けされた点群の状態と、ポリラインが確認できます。複数の点群、ポリラインはDBツリーでフォルダごとに分かれて保存されています。
作成された断面点群、ポリライン
cylinder-001 – Cloud.slices …断面点群
50mmごとにカットされた点群に、ランダムに色が割り振られています。
各点群を選択することで、Propertiesに点数などの情報が表示されます。
cylinder-001 – Cloud.envelopes …ポリライン
各点群から作成されたポリライン
各ポリラインを選択することで、PropertiesにLengthなどの情報が表示されます。
いずれもフォルダのチェックマークをON-OFFすることで、点群ごと、ポリラインごとの表示-非表示を切り替えできます。
■指定の幅の断面・ポリラインを一定間隔で連続作成
間隔を指定し、一定間隔/指定幅の断面、ポリラインを連続作成することも可能です。
さきほど作成した点群、ポリラインのフォルダ先頭のチェックマークを外し、DBツリー上で非表示にします。cylinder001-cloudのみが表示されるようにしてからcylinder001-cloudを選択、メインツールバーのCrossSectionボタンをクリックします。
断面の幅を指定
X方向10mmの断面点群とポリラインを、50mmの間隔を空けて作成します。
クリッピングボックス矢印をドラッグするか、Box thicknessのXに数値を入力してX方向が10mmになるよう調整します。CrossSectionツールバーのslicesボタン2つのうち右側の「Export multipul slices …」をクリック→Slice Extraction画面が開きます。
Slice Extraction画面
設定は以下の通りです。
・Repeat dimenshions:X
・Extract slice cloud..にチェック
・random colors per slice..にチェック(断面ごとにランダムカラーが割り振られます)
・Extract envelop(s)は直前の設定のまま(Extract envelopes にチェック、Envelop type:Full、etc)
下段のOther optionsの「Gap」で間隔を指定します。50を入力してOKを押下します。process finishedメッセージにOKし、CrossSectionツールバーを閉じます。
指定幅・指定間隔で作成された点群とポリライン
DBツリーでcylinder001-cloudのチェックを外すと、50mmおきに10mm幅で切断され色分けされた点群と、ポリラインが確認できます。複数の点群、ポリラインはDBツリーでフォルダごとに分かれて保存されています。
点群、ポリラインを選択すると、Propertiesに点数や長さなどの情報が表示されます。
■バイナリファイルの保存
作成した断面やポリラインはDBツリー上で別階層になっていますので、ドラッグして最上段のフォルダへドラッグ&ドロップします。その後、最上段のフォルダを選択して保存します。(ファイルの種類:CloudCompareバイナリファイル、ファイル名:CrossSectionCylinderなど)
■データの表示/非表示について
DBツリーでチェックマークをON-OFFする以外に、点群やポリラインを表示-非表示化する方法をご紹介します。対象を選択した状態でキーボードのvキーを押すことで、表示-非表示がトグルします。(PropertiesのVisible (可視化)ON-OFFに相当する機能) 複数の断面や点群中、指定箇所のみ見たい場合などに便利です。フォルダを選択してvキーを押すと、フォルダ内のデータがすべて表示-非表示トグルします。この情報は保存対象で、次回起動時も保持されます。
vキーで表示-非表示トグル
■関連動画
CloudCompareのCrossSection機能その2
サンプルデータのダウンロード
・cylinder001…CloudCompareのPrimitive Factory機能で作成、加工した円筒データ(3Dデータ 拡張子 .ply )をzip形式で圧縮したもの ファイルサイズ約300kb