無料お見積もり・お問い合わせ

ライブラリ

CloudCompareを使用した3Dデータの解析・操作の方法、3Dスキャナの原理など3D技術に関連するトピックを掲載します。

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