CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

DWG

円弧をポリラインに変換

投稿日:2008年4月13日 更新日:

以前書いた記事「ポリラインのふくらみ」を実践する日がやってきた。
複数のつながった円弧を1つのポリラインに変換する。
AutoCADのポリラインは、点列を線分でつなぐだけのものではない。
途中にふくらみ、つまり円弧を入れることができる。
円弧を表現するために、ふくらみ(bulge)という1つの実数情報が必要になる。
普通に円弧を表現する場合、中心点と半径と開始角度と終了角度と回り方という
情報が必要だが、ポリライン内では開始点と終了点とふくらみだけで済む。
ポリラインには点列(つまり開始点と終了点)が存在しているので、
そこにふくらみという情報を追加するだけで、あらゆる円弧が表現できてしまう。
おさらいは、ここまでにしておく。
さて、AutoCADの円弧である。
保持している情報は、中心点と半径と開始角と終了角。
回り方、つまり反時計回りなのか時計回りなのかという情報がない。
常に、反時計回りとして識別される。
(数学的には、3時方向を0度として反時計回りに角度を測るのが普通。)
ただ単純に円弧を画面に表示するのであれば、回り方なんていう情報は必要ない。
でも、ポリラインのようにつながっているという状態を表現するには、
絶対的に必要なものである。(ハッチングにおける、境界図形の円弧も同様。)
「複数のつながった円弧」とは、画面ではつながっているように見えても、
内部情報としてはつながっていないのである。
となりあう円弧同士で接続状態を確認しながら、
個々の円弧が反時計回りなのか時計回りなのかを判定する。
文章にすると簡単だが、プログラムでは約100ステップを要した。
これにより、連続した円弧の回り方が判明する。
さらに、円弧の開始点と終了点を計算しておく。
(中心点と半径と開始角、終了角から容易に計算できる。)
以下の公式からふくらみを計算する。
ふくらみ = tan( 円弧の中心角 /4 )
反時計回りなら何も変更する必要はない。
時計回りなら、ふくらみをマイナス値として
開始点と終了点を入れ替える。
あとは空のポリラインに、頂点情報(Vertex)追加すればよい。
1個の円弧につき、開始点とふくらみをセットで頂点情報とする。
最後の頂点だけは、1つ前の終了点とふくらみに0をセットする。
これでポリラインが完成だ。
「複数のつながった円弧を1つのポリラインに変換する。」
なかなか興味深いテーマだった。
今後、いろいろと応用が利きそうだ。

-DWG
-

執筆者:


  1. 続・ポリラインのふくらみ

    以前、「ポリラインのふくらみ」 ←コチラで紹介しました、
    ポリラインのふくらみ – – CAD日記
    この記事の続話が、
    円弧をポリラインに変換 – …

comment

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

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

関連記事

no image

TrueView

先月、DWG TrueViewの新バージョン2008が出たようだ。 早速インストールしてみた。 AutoCAD OEMアプリケーションなので、見た目はAutoCADそっくり。 AutoCADから、図面 …

no image

DWGのサムネイル

DWGdirectの話。 DWG内のサムネイルを何とかして残しておく方法はないか。 この命題に一応の決着がついたので記しておく。 DWGdirectライブラリを使った自作アプリで、 任意のDWGを開い …

no image

RealDWG再び

昔書いたRealDWGの記事を読み返してみた。 あれから1年半以上経っているのか。 最近RealDWGが気になってしょうがない。 昨年末にこんなニュースが流れた。 「PTCとAutodeskが技術交流 …

no image

DWGビューア

ペーパーモデル化ツールにDWGビューアが添付されていることは、 あまり知られていない。 インストールしたフォルダ内のView.exeを叩けば、起動できる。 例)C:¥Program Files¥PMt …

no image

TeighaのPDFサポート

AutoCADがPDFアンダーレイ(PDFUNDERLAY)を配置できるように なったのは、AutoCAD2010からだった。 CAD図面の下書きとして、ラスターイメージ(JPEGやTIFF)を配置す …