Civil 3Dで押し出し後のオブジェクトがスカスカになる原因|オブジェクトビューアで中空表示される時の対処法

画像処理、制作

Civil 3Dで押し出し(EXTRUDE)を行ったあと、オブジェクトビューアで確認すると「中身がスカスカ」「表面しかない」「ソリッドになっていない」という状態になることがあります。特に初心者のうちは、見た目では押し出せているように見えても、実際にはサーフェスやポリラインのままで、完全な3Dソリッドになっていないケースが多くあります。この記事では、Civil 3Dで押し出し後にオブジェクトが中空になる原因と、よくある解決方法をわかりやすく解説します。

まず確認したいのは「ソリッド」なのか「サーフェス」なのか

Civil 3DやAutoCAD系では、見た目が立体でも内部構造が異なる場合があります。

種類 特徴
3Dソリッド 内部まで詰まっている
サーフェス 表面だけ
ポリサーフェス 箱状だが中空

質問の「スカスカ」は、多くの場合サーフェス状態になっています。

つまり“立体に見えるだけ”で、実際には厚みのない面データになっている状態です。

閉じたポリラインで押し出しているか確認する

最も多い原因の一つが、元図形が完全に閉じていないケースです。

例えば以下のような状態です。

  • 線がわずかに離れている
  • ポリライン化されていない
  • 重複線がある
  • 微小な隙間がある

この状態で押し出すと、Civil 3Dは「面」として処理する場合があります。

確認方法

対象を選択してプロパティを確認し、「閉じたポリライン」がYESになっているか確認します。

NOなら、PEDITやJOINで閉じる必要があります。

REGIONコマンドを使うと改善する場合が多い

実務でかなり定番なのが、押し出し前にREGION化する方法です。

流れ

  1. 閉じたポリライン作成
  2. REGION実行
  3. EXTRUDE実行

これにより、ソリッド化されやすくなります。

特にCivil 3Dでは、単純なポリライン押し出しより安定するケースが多いです。

VISUALSTYLEの問題で中空に見えることもある

実は、オブジェクト自体は正常でも、表示スタイルの問題でスカスカに見えることがあります。

例えば以下です。

  • ワイヤーフレーム表示
  • X線表示
  • 2Dワイヤーフレーム

この場合、実際にはソリッドでも内部が見えてしまいます。

確認方法

ビジュアルスタイルを以下へ変更してみます。

  • リアリスティック
  • コンセプチュアル
  • シェーディング

これだけで正常に見えるケースもあります。

押し出しではなく「厚み」を使っていないか確認

AutoCAD系では「厚み(Thickness)」と「押し出し(Extrude)」が混同されやすいです。

機能 結果
厚み 面を伸ばすだけ
押し出し ソリッド化可能

厚み設定だけでは、中空に見えることがあります。

EXTRUDEコマンドを使っているか確認するとよいです。

Civil 3D特有のプロキシ問題もある

Civil 3Dでは、AECオブジェクトやプロキシオブジェクトが絡むと、ビューア上で正常表示されないことがあります。

例えば以下のケースです。

  • 他PCで作成されたデータ
  • バージョン違い
  • Object Enabler不足

この場合、EXPORTTOAUTOCADを使うと改善することがあります。

ソリッドかどうかを確認する方法

もっとも確実なのは、オブジェクトタイプを確認することです。

確認手順

  1. オブジェクト選択
  2. プロパティを開く
  3. オブジェクトタイプ確認

理想は「3D Solid」と表示される状態です。

もしSurfaceやMeshなら、内部は詰まっていない可能性があります。

実務で多い解決パターン

実際には、以下の流れで解決するケースがかなり多いです。

  1. ポリラインを閉じる
  2. REGION化
  3. EXTRUDE
  4. 表示スタイル変更

特にREGIONを挟むだけで正常化することは非常に多いです。

まとめ

Civil 3Dで押し出し後にオブジェクトビューアで中身がスカスカに見える場合、多くは「サーフェス化」「閉じていないポリライン」「表示スタイル」のいずれかが原因です。特に、閉じたポリラインをREGION化してからEXTRUDEする方法は非常に効果的です。また、実際にはソリッドでもワイヤーフレーム表示で中空に見える場合もあるため、ビジュアルスタイル確認も重要になります。まずは「本当に3Dソリッドになっているか」を確認することが解決への近道です。

コメント

タイトルとURLをコピーしました