木曜日, 3月 19, 2026

メカニカルリードホルダーで精密ヤスリを使う

メカニカルリードホルダーシリーズですね。
今回は精密ヤスリ編です。

メカニカルリードホルダーで竹製ニードル 2023/01/08

ヤスリのサイズにもよりますが、意外と手持ちの数本が利用可能でした。細すぎると持ちにくいのですが、これで持ちやすくなりました。

精密ヤスリの利用は力を入れる作業にはならないので問題なしです。

TCDW8710 
雰囲気が似ている場所が多いので要注意ですね

久しぶりンい利用した路線で、よく利用する卯路線と勘違いして関係ない駅で下車してしまい苦笑い。地下鉄は雰囲気が似ている場所が多いので要注意ですね。

水曜日, 3月 18, 2026

Bambu Studio Lessons 04 
座面が曲面の場合の対処方法

座面が曲面の場合の対処方法の試行錯誤・・・

何位も考えずにプリントしたら・・・

お尻の部分が、かなり残念な結果になりました。上はヤスリがけで挫折した状態(>_<)

そこで。あえてサポート材を自主作成し、自動のサポート材と組み合わせてみました。

結果は、だいぶ改善されましたが、かかとの部分がもぎれてしまいました。」

でも、よく考えたら、立たせれば良かったわけです。いつもこの状態で作成出来るわけではありませんが、キャラクタ類はこれが基本かもしれませんね。なお、この状態ではプリントしていません。

立つことを想定していなかったので、微妙に外股になっているので・・・(>_<)

お尻を隠せばこんな感じです。

※Bambu Lab 高速 PETGを使用

TCDW8709 
どちらも好きという人は存在するのかな〜?

Cute Baby Alien 019(^o^)
六つ足はカブトムシやクワガタだけじゃなくてGも含まれるんですよね。どちらも嫌いという人は普通に居ますが、どちらも好きという人は存在するのかな〜?

火曜日, 3月 17, 2026

Let's start JavaScript 100 
3Dデータの比率を保ったサイズ変更

modoやBlenderでは、何故か? 比率を保ったまま数値指定でサイズ変更が出来ない(※)ので、取りあえずHTMLで比率を保ったサイズ変更を作成して見ました。

※modoやBlenderは比率の拡大縮小なら比率を保ったままの処理が可能です。もしかして他の3Dソフトも同じなのかも? まっ、比率で計算してもいいんですけどね。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>3Dの比率を保ったサイズ変更</title>
<style>
body {
font-family: "Segoe UI", sans-serif;
background: gray;
display: flex;
justify-content: center;
align-items: center;
height: 80vh;
margin: 0;
}

.container {
background: #ffffff;
padding: 40px;
border-radius: 14px;
box-shadow: 0 8px 25px rgba(0,0,0,0.08);
width: 500px;
}

h2 {
margin-bottom: 30px;
font-weight: 600;
text-align: center;
color: #333;
}

.section {
margin-bottom: 30px;
}

.section-title {
font-size: 14px;
color: #666;
margin-bottom: 12px;
letter-spacing: 1px;
}

.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 18px;
}

.field {
display: flex;
flex-direction: column;
}

label {
font-size: 13px;
margin-bottom: 6px;
color: #555;
}

input {
padding: 5px;
border-radius: 8px;
border: 1px solid #dcdfe6;
font-size: 14px;
transition: 0.2s;
}

input:focus {
border-color: #4a90e2;
box-shadow: 0 0 0 3px rgba(74,144,226,0.15);
outline: none;
}

.result input {
background: #f0f6ff;
}

button {
width: 102%;
padding: 5px;
border-radius: 8px;
border: none;
background: #4a90e2;
color: white;
font-size: 14px;
cursor: pointer;
transition: 0.2s;
}

button:hover {
background: #3a7bd5;
}
</style>
</head>
<body>

<div class="container">
<h2>3Dの比率を保ったサイズ変更</h2>

<div class="section">
<div class="section-title">元の値</div>
<div class="grid">
<div class="field">
<label>old X</label>
<input type="text" id="x" value="2">
</div>
<div class="field">
<label>old Y</label>
<input type="text" id="y" value="4">
</div>
<div class="field">
<label>old Z</label>
<input type="text" id="z" value="6">
</div>
</div>
</div>

<div class="section result">
<div class="section-title">新しい値(どれか1つ入力)</div>
<div class="grid">
<div class="field">
<label>new X</label>
<input type="text" id="x2">
</div>
<div class="field">
<label>new Y</label>
<input type="text" id="y2">
</div>
<div class="field">
<label>new Z</label>
<input type="text" id="z2">
</div>
</div>
</div>

<button onclick="clearAll()">新しい値のクリア</button>
</div>

<script>
const x = document.getElementById("x");
const y = document.getElementById("y");
const z = document.getElementById("z");
const x2 = document.getElementById("x2");
const y2 = document.getElementById("y2");
const z2 = document.getElementById("z2");

function toNum(val){
return parseFloat(val);
}

function round2(num){
return (Math.round(num * 100) / 100).toFixed(2);
}

function calculate(source){
const xVal = toNum(x.value);
const yVal = toNum(y.value);
const zVal = toNum(z.value);

if (!xVal || !yVal || !zVal) return;

let ratio;

if(source==="x2" && x2.value!==""){
ratio = toNum(x2.value) / xVal;
} else if(source==="y2" && y2.value!==""){
ratio = toNum(y2.value) / yVal;
} else if(source==="z2" && z2.value!==""){
ratio = toNum(z2.value) / zVal;
} else {
return;
}

if(isNaN(ratio)) return;

if(source !== "x2") x2.value = round2(xVal * ratio);
if(source !== "y2") y2.value = round2(yVal * ratio);
if(source !== "z2") z2.value = round2(zVal * ratio);
}

function clearAll(){
x2.value="";
y2.value="";
z2.value="";
}

x2.addEventListener("input",()=>calculate("x2"));
y2.addEventListener("input",()=>calculate("y2"));
z2.addEventListener("input",()=>calculate("z2"));
</script>

</body>
</html>

実行直後の画面です。

現在の値をoldXYZに入力し・・・

newXYZのどれかに求める値を入力すると、残り3つの値が自動的に表示されます。

[新しい値クリア]でnewXYZの値をリセットできます。

TCDW8708 
相互に新しい発見があって楽しいです

久しぶりに使うジャンルのソフトの類似ソフトを同時に使うことを楽しんでいます。来月あたりから公開予定。modoとBlenderのような感じです。相互に新しい発見があって楽しいです。混乱も頭の体操ですね〜。

月曜日, 3月 16, 2026

お手軽プラスチック溶接

プラスチック溶接機を買えば済む問題ですが、原理は簡単なので専用の道具なしでチャレンジしてみました。

カッティングシートが汚くて申し訳ないです。

最初に思いついたのはホチキスの針。しかし、直ぐに熱が冷めてしまうので失敗でした。

そこで100均で手に入れた0.9mm径のステンレス針金をホチキスの針のように加工し、ライターで熱してプラスチックの接合部分に押し当てたところ、上手くいきました。

ただし、針金が冷めた後で余分な部分をニッパーなどでカットし、切り口を金工用ヤスリで調整するのがちょっと大変でした。針金のコーナー部分を綺麗な直角に折り曲げること。綺麗に素早くカットできるニッパーが処理の要です。

取りあえずなんとかなったのですが、ニッパーと金工用ヤスリを新たに買い求めないとダメかもしれません。

もうちょっと実験してみますが、強度を上げるために針金に水平を保って波を付けるのは至難の技。素直に専用機を買った方が良さそうですね(^o^)

TCDW8707 
接的にイメージが沸いてくる感じです

アンティーク専門店へ時々出かけるのですが、買うわけではなくアイデア探しだったりします。もちろん古いデザインが参考になるわけではなく、間接的にイメージが沸いてくる感じです。

日曜日, 3月 15, 2026

Bambu Studio Lessons 03 
まとめてプリントする際の注意点

プレートのエリア内であればまとめて配置し、プリントすることは何ら問題ないのですが、うっかりミスってしまいました。

4つのキャラクタを配置し・・・

※実際に発生したトラブル時のレイアウトではありません。Bambu Studioは自動保存なので終止した時点で上書き保存されてしまうためです。もし元の状態を残したい場合は、一旦終了してからファイルの複製を作成し、複製側を修正するとよいでしょう。

必ずサポートの状況を確認しましょう。

上はプリント結果ですが、一部で形状生成に失敗していますが、プレビュー状態でサポートが重なっていないことを確認すれば問題は解決します。

背面には後ろに設置したキャラクターのサポートが食い込んでしまいました。カッターとヤスリで消し取りましたが、面倒な後処理は時間の無駄なので、必ずチェックです。

※Bambu Lab 高速 PETGを使用

TCDW8706 
アルバムを眺めて時の流れを感じてしまいました

ふと、1973年に発売されたポール・マッカートニー&ウイングスのアルバム「Band on the Run」のジャケットッ写真の9名の人物のうち、存命なのはポール・マッカートニーとジョン・コンテの二人になっていたんですね。このお気に入りのアルバムを眺めて時の流れを感じてしまいました。