LoginSignup
8
2

More than 3 years have passed since last update.

【AutoCAD】ポリラインのふくらみについて

Last updated at Posted at 2020-06-06

AutoCADのポリライン図形とは

  • 線分と円弧で構成された、単一の図形。
  • PLINE コマンドで作成することができる。
  • 線分のみ、円弧のみのポリラインも作成することができる。
  • ポリラインの始点と終点をつなげた、閉じたポリラインを作成できる。

ポリラインのふくらみについて_00.png

ポリラインは各頂点の座標(2D点)と、”ふくらみ” と呼ばれる実数で定義されている。

ふくらみ(英語で bulge)とは

ふくらみが "$0.0$" の場合、そのポリラインの要素は線分を表している。
円弧の場合、その円弧の中心角を $\theta$ (ラジアン単位)とした場合、
$$bulge=\tan\left(\frac{\theta}{4}\right)$$
がポリラインのDXFデータ(Group Code : 42)に格納されている。
円弧が時計回りの場合は "$-$"、反時計回りの場合は "$+$" の値となっている。

DXFデータの例


このDXFデータを見ると、頂点2と頂点3の間の要素が円弧であることがわかる。
この円弧の中心角は $90$度 $\left(=\dfrac{\pi}{2}\right)$ なので、ふくらみの値は、
$$bulge=\tan\left(\frac{\pi/2}{4}\right)=\tan\left(\frac{\pi}{8}\right)\fallingdotseq0.414214$$
となっている。
また、この円弧は頂点2から頂点3に向かって、反時計回りとなっているので、正の数値となっている。


例2は例1の図形をY軸で反転した図形で、ふくらみは頂点2から頂点3に向かって、時計回りとなっているので、
$$bulge\fallingdotseq-0.414214$$
となっている。


例3は例2と頂点の座標は同じで、ふくらみは頂点2から頂点3に向かって、反時計回りとなっているので、
$$bulge\fallingdotseq0.414214$$
となっている。


例4の円弧の中心角は $180$度 $(=\pi)$ なので、ふくらみの値は、
$$bulge=\tan\left(\frac{\pi}{4}\right)=1.0$$
となっている。
また、この円弧は頂点2から頂点3に向かって、反時計回りとなっているので、正の数値となっている。

頂点とふくらみ、円弧の計算

AutoCADの円弧は、中心、半径、開始角度と終了角度によって定義されている。
ポリラインの頂点とふくらみ情報から、円弧の定義に使用される数値を計算することができる。
逆に、円弧の定義情報から、ポリラインの頂点とふくらみを計算することもできる。

円弧の定義から頂点とふくらみを求める


円弧の中心の座標を $(x_0,y_0)$、半径を $r$、開始角度を $\alpha$、終了角度を $\beta$、とすると
点 $A$ の座標は
$$(x_0+r\cos\alpha , y_0+r\sin\alpha)$$
点 $B$ の座標は
$$(x_0+r\cos\beta , y_0+r\sin\beta)$$
中心角は、
$$\theta=\beta-\alpha$$
よってふくらみは
$$bulge=\tan\left(\frac{\beta-\alpha}{4}\right)$$
となる。

頂点とふくらみから円弧を求める

ふくらみの定義は、円弧の中心角を $\theta$ とした場合、$\tan\left(\dfrac{\theta}{4}\right)$で定義されている。
ふくらみ$(bulge)$ を $b$ とすると中心角は、
$$\theta=4\arctan(b)$$
となる。

ポリラインのふくらみについて_07.png
図のように円弧の始点$A$と終点$B$を結んだ弦と、始点$A$ と円弧の中点 $D$ を結んだ線分 $AD$が作る角、$\angle DAB$ の角度が $\dfrac{\theta}{4}$となっている。
ふくらみ $(bulge)$ の定義が $b=\tan\left(\dfrac{\theta}{4}\right)$ なので、
円弧の弦(線分$AB$)の半分の長さを $d$ としたとき、図の $s$ ($sagitta$ と呼ぶらしい)は、
$$s=bd$$
で求めることができる。
円弧の半径を $r$ とすると、三平方の定理より
$$r^2=d^2+(r-s)^2$$
が成り立つ。
この式を展開して整理すると、
$$r=\frac{s^2+d^2}{2s}$$
よって半径 $r$ は、
$$r=\frac{s^2+d^2}{2s}=\frac{d(b^2+1)}{2b}$$
で求めることができる。

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2