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

Drawing

DWG=drawingの略称。 海外CAD事情 566号「商標ウオッチ:“俺の”DWGを返せ」を読んで、初めて知った。 drawingと言えば、図面。 こんな単純な意味合いだとは知らなかった。 CAD …

no image

Teighaが何なのかを知りたければココを読め

Teighaとは?

no image

消えゆくOpenDWG

www.opendwg.org がなくなった。 お気に入りに入れていて、ほんの3日前までアクセスできていたのが、 今日アクセスしようとしたら、つながらなかった。 一瞬メンテナンス中かと思ったが、すぐに …

no image

DWGdirect 1.14.01

ついに出ました、新バージョン。 今、最も注目&期待しているものです。 1ヶ月程前、1.14がBetaとしてリリースして、試験的に試してました。 少し不安定だなと思いつつ、周囲の人にはそんな感想をもらし …

no image

TeighaのPDFサポート

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