最近の3Dプリンタまとめ
大学祭も近づき、あわあわしながら準備を進めています。
数週間前から3Dプリンタを使って色々作ったのでサボってた分もまとめてここに残そうと思います。
・うさぎの中抜き作戦
これは縦の状態で出力し、空洞を作る実験。前回は強力なサポートに阻まれたので、サポート側らにこっちで割りやすいフィラメントが出力されるようデザインしたものです。
出力直後がこんな感じ。謎の枝が生えてるのでちぎります。
綺麗になったので真ん中のサポート代わりの細いフィラメントを折ります。
下が残りましたが抜くことは成功しました。でもなんか下残っちゃうくらいならサポート代わりのフィラメントそのままでもいいなぁと思ってしまいました(面倒なだけ)。
・名刺入れ(改)
サイズが違って肝心の名刺サイズが入らないという凡ミスを犯した前回。もう1度サイズを変更し、さらに改良を加えて出力したのがこちらです。
またやらかしたな!!!ぴったりサイズ!!!
蓋の後ろにもフィラメントがあるので、前回よりかなり開けにくいですが、使えなくはない…みたいな感じです。
・型紙(キャラメル箱編)
前々からオリジナルの柄がある箱作りたいなぁと思ってたのですが、その前段階として箱に作ることにしました。ただ印刷するだけでは味気ない…柄のデザインに重ねるのもなぁと思った時に思い出したものがあります。
小学生の頃のちゃおの付録になぞるだけで絵がかける!みたいなものがありました。それを参考に3Dプリンタで作ることにしました。
箱の製作工程
まずはなぞる
なぞったものがこちら↓
プリンタの都合上書けなかったところに線を書き足して切る。
組み立てるため折ります。のりしろもあるのでそこもちゃんと折っておく。
のりしろにのりを塗って形を作る。
あとは上下の開け口を組み立てて完成!
白だと味気ないですが、柄付きだとこんな感じです。
デザインは前にプログラミングで作ったシルクスクリーン用をカラフルにしたもの。どっちも好きです。
大学祭ではシルクスクリーンで印刷したものを箱にしてみたいです。
・文字
文字単体の3Dプリンタ作品ってそう言えばやったことないなぁ、水に浮かべたい…と思ったので早速やりました。授業でも文字は絵と認識することもできる、と学んだので平仮名にしようと思ったんですけど平仮名ってアルファベットより多い!!!面倒だったのでコンピュータクラブのアルファベットだけ出しました。本当はアルファベット全部出したかったけど曲線多すぎてsvgデータくんに怒られることが多かったので心が折れました。短時間で出そうと思ったのが悪かったですハイ。
平仮名挑戦したい。
水に浮くか試しましたが浮かなかった。代わりに水に濡らせば風呂場の壁にくっつきます。母に子どもかと言われましたが私はやりたいことをやります、もう少し頑張ります。
ごり押しでProcessingでp5.jsと同じものを作る
これで作った一番上の青色のコードを色々いじってシルクスクリーンのデザインにしようとしました。
色々アドバイスを頂きながら修正して完成したのがこちらです。
function setup() { createCanvas(567, 822); colorMode(HSB,360,100,100,100); } function draw(){ push(); translate(0,-50); stroke(0,0,0); fill(0,0,0) ellipse(frameCount*9%width,frameCount,3,random(50)%100+3); pop(); } function mousePressed() { saveCanvas("0000.png"); }
こうすれば画像保存できるのか、へーと思いながらマウスをクリックしましたがエラーが出て保存ができなかったので、Processing版に変更するのと、300dpiになるようにキャンバスサイズを変更して……とかやってたらだいぶ時間がかかりました。
void setup() { size(2363, 3426); colorMode(HSB,360,100,100,100); background(0,0,100); } void draw(){ pushMatrix(); translate(20,-190); stroke(0,0,0); fill(0,0,0); ellipse(frameCount*9%567*4.5,frameCount*4.55,3*5.5,(random(5,45)%100+3)*5); popMatrix(); }
これに
void mousePressed(){
save("Silkscrean.png");
}
とつけるとコードが完成します(OpenProcessingの方には付けてません)
いろいろ変更やデザイン改良したりで今日は疲れました。
カッティングプロッタでやってみる
オリジナルシール作りをしました。
カットはsilhouette cameoというカッティングプロッタで行いました。
シールの柄は数週間前にノリで作った情報社会と戦うシールです。
パズル柄はうまく切れるんですけど複雑な柄はもっと大きくないと面倒だと気づきました。
右側の花みたいなものは切れてないところがあります。4周くらい切ってるところもあったので、台紙まで切れてるところもあるんですけどねぇ。
インクが剥がれやすいシールのだったので違うシールの紙も挑戦してみようかと思ってます。
*シールカットの設定*
白色ステッカー用紙
自動調整ブレード
スピード 5
厚み 3
実験
ひさしぶりのレーザーカッター。シールカット計画を立てており、その前段階として普通紙を切ってみました。
FABOOLの使用環境が変わりましたが、問題なく動いたので安心です。
*出力設定*
スピード1000
パワー100
一部、きちんと切れずにくっついてるところも多くありました。なので外す時にちぎれてしまう場所がありました。
シールはもっと厚いので切りやすいよう実験が必要そうです。
大学祭に向けて色々やっていますが、やりたいと思っていたことに加えて、また新しくやってみたいことが出てくるのでどうしようかと悩んでしまいます。
テスト前に掃除やゲームやってしまう気持ちと同じ感じ。もう少し、頑張ります。
襖と障子の違い
今日頑張ったのは右側。刺さってるのは授業で使った後に貰ったRodyくん。
月曜日のある授業で紙の作品…って考えて一つ思いついたので、空きコマの3時間で作りました。
左側は数週間前に出力した名刺入れ、の予定でしたが微妙に大きさが合わないのと、うさぎの形に穴開けたはずが、サポートが硬すぎて取れないので諦めたものです。
なんとかして穴開けたい。
そのためにいろいろ実験中。そしてこれは失敗したので出力中に紐を通して閉じ込めて遊んだやつ。出来ないわけではなさそう。
もっと余裕があれば左側改良したい。
ブログにコードを載せる方法
上記の記事のプログラミングコード載せ方をここに残します。
これが編集画面と実際の表示です。
全部この画像に埋め込みましたが、詳しく下に書いていきます。
一.プログラムが実際に動いている状態を表示する
1:Open Processingで作ったプログラミングコードを投稿する
2:右上にある画像のマークをクリックした後、「Embed」の横にある「click to copy」をクリックする
3:はてなブログで記事を書くを開く
4:左上の編集を「見たまま」から「markdown」に変更する
5:本文にctrl+vでクリップボードにコピーしておいた文字を張り付ける
完了
二.コードを特別な方法で表示する
1:Open Processingなどから作ったコードをコピーしてくる
2:一で行ったmarkdownの状態のまま、本文にshift+@で「`」を3個書く
3:そのあとにプログラミング言語を書く(Processing→processing/p5.js→javascript など、他の言語でも利用可)
4:改行した後ctrl+vでコピーしておいたコードを張り付ける
5:さらに改行し、2で行った要領で「`」を3個書く
完了
markdownでは、見たままとは書き方が変わるので注意が必要。
その他不備や不足があれば追記します。
2回目のp5.js
2回目のp5.jsの授業が終わったので、勉強内容を含めて遊んだ本日のコードです。
function setup() { createCanvas(300, 300); //width,height colorMode(HSB,360,100,100); } function draw() { noStroke(); fill(random(360),random(0,50),random(50,100)); ellipse(mouseX,mouseY,mouseX%50,mouseY%50); } function mousePressed(){ background(0,0,100); }
function setup() { createCanvas(300, 300); //width,height colorMode(HSB,360,100,100,100); } function draw() { noStroke(); fill((180+frameCount)%360,100,100,1); ellipse(mouseX,mouseY,50,50); //x,y,r,r }
あと全然関係ない授業前に遊んでたProcessing
void setup() { size(500, 500); colorMode(HSB, 360, 100, 100); background(0, 0, 0); } void draw() { noStroke(); fill(0, 0, 0, 10); rect(0, 0, width, height); stroke(frameCount%360, 100, 100); noFill(); rect(50, 50, width-100, height-100); beginShape(); for (int i=0; i<=5; i=i+1) { vertex(random(50, width-50), random(50, height-50)); } endShape(); }
このあとブログでみんながコードをブログに載せられるように、それ用のブログ記事書きます。