rcairoでものづくり
gFab @mgwsuzuki

gFab @mgwsuzuki
rcairoとは
• cairo: 2Dグラフィックス用のCライブラリ
• それをrubyにバインディングしたのがrcairo
• PDF, SVGほか多数のフォーマット出力が可能

gFab @mgwsuzuki
基板をハコに入れたい

• ほこりかぶるし
• ショートさせそうだし
• 見た目悪いし収納性も良くないし
gFab @mgwsuzuki
道具はある

• gFabやってます
• レーザーカッターでアクリル板カットも簡単

• 入力データとしてSVGが使用可能 →

rcairo

gFab @mgwsuzuki
ハコの展開図といえば

• 簡単だけど組み立てに接着剤が必要で面倒
• 接着したらばらせない
• 基板のメンテナンスができない
gFab @mgwsuzuki
Box Jointとねじ接合

• Box Joint: ずれない ねじ接合: はずれない
• レーザーカッターだけで加工できる
• ねじだから組み立て後にばらすこともできる
gFab @mgwsuzuki
設計が面倒…

• 物体を組み上げるから0.2mmもずれたらダメ
• 6面をイメージしながら作るのが大変
• 凸凹が多いから設計変更が面倒
gFab @mgwsuzuki
自動設計しよう!
#### パラメータ
# 箱内形
Box = {
:x => Board_x + 4.0,
:y => Board_y + 2.0,
:h => 26.0,
:t => 2.0
}
...

# 箱内側横
# 箱内側縦
# 箱...
パラメータ設定例
# ねじ穴形状
Screw = {
:nw => 6.5,
:nh => 2.0,
:sl => 10.5,
:sw => 3.0
}

#### 基板外形
Board_x = 85.0
Board_y = 56.0
Spac...
ハコ生成
ruby boxgen.rb raspi.rb

gFab @mgwsuzuki
Inkscapeで追加修正など

• Inkscape: フリーのドローイングツール
• 配置を変えたり、ロゴを追加したり
• 材料を無駄なくカットできる!
gFab @mgwsuzuki
切り出す

• 原点あわせてピントあわせてカット開始
• あとは待つだけ (15~20分)
• 臭い!!
gFab @mgwsuzuki
切り出し完了

gFab @mgwsuzuki
完成

• ジョイントをあわせてねじ止めして完成
• 3分あれば組み立てられる
gFab @mgwsuzuki
この方法のメリット
• CAD不要
• 現物の採寸・数値入力→生成→確認が早い
• 変数が使えるのでパラメタライズ設計ができる
• テキストファイルのみ

gFab @mgwsuzuki
github
• githubにあげる予定
• パラメータファイルをpull-request
• ハコ作りたい方はgFabへ

gFab @mgwsuzuki
本当に早く作れるか?

• arduino用ケースを作ってみた
• 構想、基板外形情報探し、実機から採寸: 1時間
• カット+組み立て: 20分
gFab @mgwsuzuki
ギヤ設計

• ギヤは数値計算で作図できる
• これもrcairo
gFab @mgwsuzuki
まとめ
• 一度ツールを作れば自動設計は手軽で便利
• エンジニア視点のものづくり
• ruby便利!!

gFab @mgwsuzuki
Upcoming SlideShare
Loading in...5
×

rcairoでものづくり

479

Published on

2013/03/01 沖縄ruby会議01の発表資料です

Published in: Self Improvement
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
479
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

rcairoでものづくり

  1. 1. rcairoでものづくり gFab @mgwsuzuki gFab @mgwsuzuki
  2. 2. rcairoとは • cairo: 2Dグラフィックス用のCライブラリ • それをrubyにバインディングしたのがrcairo • PDF, SVGほか多数のフォーマット出力が可能 gFab @mgwsuzuki
  3. 3. 基板をハコに入れたい • ほこりかぶるし • ショートさせそうだし • 見た目悪いし収納性も良くないし gFab @mgwsuzuki
  4. 4. 道具はある • gFabやってます • レーザーカッターでアクリル板カットも簡単 • 入力データとしてSVGが使用可能 → rcairo gFab @mgwsuzuki
  5. 5. ハコの展開図といえば • 簡単だけど組み立てに接着剤が必要で面倒 • 接着したらばらせない • 基板のメンテナンスができない gFab @mgwsuzuki
  6. 6. Box Jointとねじ接合 • Box Joint: ずれない ねじ接合: はずれない • レーザーカッターだけで加工できる • ねじだから組み立て後にばらすこともできる gFab @mgwsuzuki
  7. 7. 設計が面倒… • 物体を組み上げるから0.2mmもずれたらダメ • 6面をイメージしながら作るのが大変 • 凸凹が多いから設計変更が面倒 gFab @mgwsuzuki
  8. 8. 自動設計しよう! #### パラメータ # 箱内形 Box = { :x => Board_x + 4.0, :y => Board_y + 2.0, :h => 26.0, :t => 2.0 } ... # 箱内側横 # 箱内側縦 # 箱内側高さ # 材料厚さ • ポイント絞ってパラメータを設計 • ねじ位置やコネクタの穴だって簡単に指定できる • 設計変更も楽々 gFab @mgwsuzuki
  9. 9. パラメータ設定例 # ねじ穴形状 Screw = { :nw => 6.5, :nh => 2.0, :sl => 10.5, :sw => 3.0 } #### 基板外形 Board_x = 85.0 Board_y = 56.0 Space_b = 7.5 #### パラメータ # 箱内形 Box = { :x => Board_x + 4.0, :y => Board_y + 2.0, :h => 26.0, :t => 2.0 } # ジョイント Joint = { :yj => 15.0, :nyj => 2, :xj => 60.0, :hj => 15.0 } # 箱内側横 # 箱内側縦 # 箱内側高さ # 材料厚さ # 正面のねじ位置 ScrewPosFront = { :top => [], :bottom => [], :left => [0.5], :right => [0.5] } # 縦ジョイント部の長さ # 縦ジョイントの数 # 横ジョイント部の長さ # 高さジョイント部の長さ # 背面のねじ位置 ScrewPosBack = { :top => [0.5], :bottom => [0.5], :left => [], :right => [] } gFab @mgwsuzuki # ナット穴幅 # ナット穴高さ # ねじ長 # ねじ幅
  10. 10. ハコ生成 ruby boxgen.rb raspi.rb gFab @mgwsuzuki
  11. 11. Inkscapeで追加修正など • Inkscape: フリーのドローイングツール • 配置を変えたり、ロゴを追加したり • 材料を無駄なくカットできる! gFab @mgwsuzuki
  12. 12. 切り出す • 原点あわせてピントあわせてカット開始 • あとは待つだけ (15~20分) • 臭い!! gFab @mgwsuzuki
  13. 13. 切り出し完了 gFab @mgwsuzuki
  14. 14. 完成 • ジョイントをあわせてねじ止めして完成 • 3分あれば組み立てられる gFab @mgwsuzuki
  15. 15. この方法のメリット • CAD不要 • 現物の採寸・数値入力→生成→確認が早い • 変数が使えるのでパラメタライズ設計ができる • テキストファイルのみ gFab @mgwsuzuki
  16. 16. github • githubにあげる予定 • パラメータファイルをpull-request • ハコ作りたい方はgFabへ gFab @mgwsuzuki
  17. 17. 本当に早く作れるか? • arduino用ケースを作ってみた • 構想、基板外形情報探し、実機から採寸: 1時間 • カット+組み立て: 20分 gFab @mgwsuzuki
  18. 18. ギヤ設計 • ギヤは数値計算で作図できる • これもrcairo gFab @mgwsuzuki
  19. 19. まとめ • 一度ツールを作れば自動設計は手軽で便利 • エンジニア視点のものづくり • ruby便利!! gFab @mgwsuzuki
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×