木曜日, 3月 05, 2026
水曜日, 3月 04, 2026
3Dプリンタ遊び 02
初プリントで痛恨のミス
取りあえずプリント・・・
で、テストプリントを兼ねてデフォルトで入っているスクレバーを印刷することにしました。
キャリブレーションは自動なので本当に楽です。で、プリント結果は見事に色々と失敗の塊となりました。まずサンプルで入っていたPLAフィラメントの白が足りず、スタンドが中途半端でオワコン。気を取り直して同時購入していたグレーのPETGフィラメントでプリントするもプレートとの定着が甘くて一部分が崩壊。取りあえず添付されていたブレードと組み合わせるも、ビス穴が合わずにヤスリがけをすることに・・・。実はこのとき大きなミスを犯していました(>_<)。
後日、ビス穴が合わなかったのは取り付け方が逆だったことに気がつき、本体を白に変更し、マグネットを100均で購入して完了です。ちなみに上位機種にはマグネットが付属しているようです。
ところで、気になる騒音ですが、起動時の「ピ〜」が少し気になりますが、隣家に影響するような音ではありません。実際のプリント音ですが、ヘッドの近くで測ると60〜65dBA程度。5m程離れれば50dBA程なので問題は全くありません。夜でも部屋のドア閉めればセーフでした。
火曜日, 3月 03, 2026
Let's start JavaScript 99
HTMLにてクリックでランダムに画像が切り替え
表示画像をクリックで用意した画像からランダム表示させます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ランダム画像切り替え</title>
<style>
body {
background: lightcyan;
color: darkgray;
}
img {
width: 400px;
cursor: pointer;
}
</style>
</head>
<body>
<center>
<img id="randomImage" src="pic/pic01.jpg"
alt="クリックで画像切替">
<h4>The character I created</h4>
<script>
const images = [
"pic/pic01.jpg",
"pic/pic02.jpg",
"pic/pic03.jpg",
"pic/pic04.jpg",
"pic/pic05.jpg"
];
const img = document.getElementById("randomImage");
img.addEventListener("click", () => {
const randomIndex =
Math.floor(Math.random() * images.length);
img.src = images[randomIndex];
});
</script>
</center>
</body>
</html>
picフォルダーに用意したs画像
実行直後はpic01.jpgを表示
画像をクリックでランダムに切り替わります。
ラベル:
HTML,
JavaScript
月曜日, 3月 02, 2026
TCDW8693
キャンプや秘密基地ごっこは好きです
Cute Baby Alien 015(^o^)
かわいいクマさんはPCの中だけ・・・。
想像の中でのクマさんは可愛いけれど、現実は・・・。本当に自然と共存したければ裸で山にこもるしかないですね。キャンプや秘密基地ごっこは好きですが、山ごもりは嫌です(^o^)
ラベル:
3D,
Cute Baby Alien,
modo,
TCDW
日曜日, 3月 01, 2026
JavaScriptでAI遊び 88
Illustratorで複数オブジェクトの間隔を統一
Illustratorで複数オブジェクトの間隔を指定数で統一します。
/*
Illustrator Script
選択したオブジェクト間の隙間を指定値で統一 。
*/
if (app.documents.length === 0) {
alert("ドキュメントがありません");
exit();
}
var sel = app.activeDocument.selection;
if (sel.length < 2) {
alert("2つ以上のオブジェクトを選択してください");
exit();
}
// mm → pt 変換係数
var MM_TO_PT = 2.83464567;
// 隙間入力(mm)
var gapMM =
prompt("オブジェクト間の隙間(mm)を入力してください", "5");
if (gapMM === null || isNaN(gapMM)) {
alert("正しい数値を入力してください");
exit();
}
var gap = Number(gapMM) * MM_TO_PT;
// 方向選択
var isHorizontal =
confirm("横方向に整列しますか?\nOK:横 / キャンセル:縦");
// 位置順でソート
sel.sort(function(a, b) {
var ab = a.geometricBounds;
var bb = b.geometricBounds;
return isHorizontal ? ab[0] - bb[0] : bb[1] - ab[1];
});
// 基準位置
var pos = isHorizontal
? sel[0].geometricBounds[0] // left
: sel[0].geometricBounds[1]; // top
// 整列処理
for (var i = 0; i < sel.length; i++) {
var item = sel[i];
var b = item.geometricBounds;
var w = b[2] - b[0];
var h = b[1] - b[3];
if (isHorizontal) {
item.left = pos;
pos += w + gap;
} else {
item.top = pos;
pos -= h + gap;
}
}
上の様にサイズの異なる複数のオブジェクトの間隔を統一したい場合は[ウィンドウ]>[整列]>[水平方向中央に整列]を思い浮かべますが・・・

左端のオブジェクトを軸に同じ間隔で再配置されます。
ラベル:
Illustrator,
JavaScript
登録:
コメント (Atom)





























