LoginSignup
0
0

OpensCAD用角度と一辺の長さが分かるときの三角関数ライブラリーを作ってみた

Posted at

OpensCADはプログラムで書けてサイズ変更など非常に便利なのですが
一般的なCADならこの線と接する点などマウスドラックで微調整できますが
OpensCADはすべて数字の羅列であるため三角関数を使って座標を求める必要があります。

三角関数を多用する時があったのでこの機会に
角度と一辺の長さが分かるとき三角関数で値を求める物をモジュール化してみた。
備忘録としてここに残します。

// 斜辺計算モジュール(高さと角度から求める)
function hypotenuse_cal_h(height, angle_deg) = height / sin(angle_deg);

// 底辺計算モジュール(高さと角度から求める)
function base_cal_h(height, angle_deg) = height / tan(angle_deg);

// 高さ計算モジュール(斜辺と角度から求める)
function altitude_cal_s(hypotenuse, angle_deg) = hypotenuse * cos(angle_deg);

// 底辺計算モジュール (斜辺と角度から求める)
function base_cal_s(hypotenuse, angle_deg) = hypotenuse * sin(angle_deg);

// 高さ計算モジュール(底辺と角度から求める)
function altitude_cal_b(base, angle_deg) = base * tan(angle_deg);

// 斜辺計算モジュール(底辺と角度から求める)
function hypotenuse_cal_b(base, angle_deg) = base / cos(angle_deg);

使い方例を高さhと角度angleが分かるときに斜辺yと底辺xの求め方

h=100;
angle=30;
y=hypotenuse_cal_h(h, angle);
X=base_cal_h_cal_h(h, angle);

求めたX,yは✗座標やY座標として使い
座標値を変数化して使ってます。

p1=[x,y];
p2=[0,h];
p3=[x,0];

座標を変数化していればpolygon命令と変数で平面図がかけます。

polygon([p1, p2, p3]);

今回は角度と線の長さからの算出方法でしたが
2つの辺の長さから 残りの1辺の長さと角度を算出するのは今後の課題の一つとします。

最後にOpensCADプログラムは、三角関数を使いこなせれば
かなり便利になります。
ライブラリー増やしてプログラミングスピード上げたいと思ってます。

0
0
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
0
0