目標
今回からはお題を変えて、足場のGDLを作成していきます。最近、需要が高まっている次世代足場について考えていこうと思います。まず、足場GDLを作る上での目標を以下に設定します。
- 足場図に使えるようにする
- 使用する部材を拾い出せるようにする
- 各部材(支柱や布材など)はセットとして考える
- インチサイズのものとする
まずはこのようなざっくりとした目標を立て、試行錯誤しながら作成を進めていきたいと思います。
支柱材の作成
まずは支柱材から作成していきます。完成イメージは、画像のような感じになります。
※これはあくまで学習用であり、画像などを参考に形状やサイズをオリジナルで設定していることをご理解ください。
支柱本体部分は、cylind
コマンドで円柱を作成しているため、高さと半径を指定すれば問題ありません。支柱ピンは、cylind
コマンドで円柱を作成し、cutpolyA
コマンドで穴を開けています。
支柱フランジは一見すると少し複雑そうに見えますが、基本的な考え方はピンと同じです。cylind
コマンドと cutpolyA
コマンド、cutplane
コマンドを使って円柱をカットしたり、穴を開けたりしています。
支柱完成イメージ |
!mmに統一 t = 1000 !---------------------------------- !支柱設定 !---------------------------------- pillar_R = 48.6/(2*t) !支柱半径 pillar_H = 1.9 !支柱高さ pillar_mat = pillar_mat !支柱材質 !---------------------------------- !支柱ピン !---------------------------------- pin_R = 41.9/(2*t) !支柱ピン半径 pin_L = 200/t !支柱ピン長さ pin_hole = 13/(2*t) !支柱ピン連結穴 !---------------------------------- !支柱フランジ !---------------------------------- flange_R = 106/(2*t) !支柱フランジ半径 flange_thin = 6/t !支柱フランジ厚み
material pillar_mat gosub "支柱" end "支柱": !支柱 hotspot 0, 0, 0 cylind pillar_H, pillar_R !ピン addz pillar_H - pin_L/2 gosub "支柱ピン" del 1 !フランジ addz -0.035 for j = 1 to 4 addz j*0.475 gosub "支柱フランジ" del 1 next j del 1 return "支柱ピン": addz pin_L - 0.03 rotx 90 !ピンの連結穴 cutpolya 2, 1, 0, 0, 0, 915, pin_hole, 360, 4015 del 2 cylind pin_L, pin_R cutend return "支柱フランジ": hotspot 0, 0, 0 for i=1 to 4 cutplane 0.0636,0.0636 cutpolya 2, 1, 0, 0.0467, 0.0467, 915, 0.026, 360, 4015 cutpolya 6, 1, 0, 0, -0.0085, 15, 0, 0.0085, 15, 0.0425, 0.0085, 15, 0.044, 0.006, 15, 0.044, -0.006, 15, 0.0425, -0.0085, 15 rotz 90 next i del 4 cutpolya 2, 1, 0, 0, 0, 915, pillar_R, 360, 4015 addz -flange_thin/2 cylind flange_thin, flange_R del 1 for i=1 to 13 cutend next i return
CUTPOLYAコマンド
以前学習した cutplane
コマンドは、3D形状を面でカットするコマンドでしたが、cutpoly
コマンドは多角形の座標を定義し、その形状でくり抜くことができるコマンドです。くり抜く方向も定義できるため、非常によく使われるコマンドだと思います。
今回は、追加ステータスコードを使って円柱状にくり抜いたり、多角形状にくり抜いたりしているので、上記のコードを参考にしてください。また、フランジは対称的な図形であるため、for
文を使って繰り返し処理を行っている点もポイントの一つです。この場合、最後に cutend
コマンドを繰り返しと同じ回数だけ記述する必要があります。
補足
t = 1000
と書いてある部分は、メートルをミリメートルに変換するために使用しています。これは、スクリプト上でミリメートルで記述した方がわかりやすいと考えたからで、特に必須なものではありません。自分なりに見やすい形を試行錯誤できれば良いと思います。一応、リファレンスには構文のルールなども載っているので、参照すると良いでしょう。
0 件のコメント:
コメントを投稿
何でも気軽にコメントください。