日曜日, 9月 13, 2026

TCDW8888 
今日で8888になりました

2000年1月19日から、ほぼ毎日アップしていた画像が今日で8888になりました。
ちなみに、このBlogでは1444からになります。

2000/01/19 1
2002/10/14 1000
2004/09/30 2000
2010/07/30 3000
2013/04/29 4000
2016/01/23 5000
2018/10/16 6000
2021/07/12 7000
2024/04/07 8000
2026/09/13 8888

予定通りに行けば・・・
2027/01/02 9000
2029/09/28 10000

と、いったところです。

土曜日, 9月 12, 2026

PhotoshopとIllustratorの連携 03
ターンテーブルはIllustratorが賢いかも?

ターンテーブル機能をIllustratorとPhotoshop(オブジェクトを回転)で比較してみました。ただし、データは以下の流れで作成しています。

元データはIllustratorで作成し、Photoshopで画像化したものと、ソレをもう一度Illustratorに配置しトレース&拡張したもので実験しました。

左がIllustrator、右がPhotoshopです。

-60度回転(Photoshopは-60度相当)

-180度回転(Photoshopは-180度相当)

90度回転(Photoshopは90度相当)

この実験では完全にIllustratorの一人勝ちですね。

TCDW8887 
普段から誤字脱字の私が突っ込むネタではないのですが

電車の中吊りで違和感を感じたポスターのキャッチコピー「多摩川上流を走りに行こう !」。「を」じゃなくて「へ」または「に」じゃないかと思うのですが、普段から誤字脱字の私が突っ込むネタではないのですが・・・

金曜日, 9月 11, 2026

JavaScriptでAI遊び 106 
Illustratorで選択したオブジェクトを数と比率を指定してランダム複製・配置

Illustratorで選択したオブジェクトを数と比率を指定してランダム複製・配置します。
また、処理結果はアートボードからはみ出すことはありません。

// 選択オブジェクトをランダム複製・配置
// アートボード内に収める
if (app.documents.length == 0) {
alert("ドキュメントを開いてください。");
} else {
var doc = app.activeDocument;
var sel = doc.selection;
if (sel.length == 0) {
alert("オブジェクトを選択してください。");
} else {
var count = Number(prompt("複製数", "30"));
if (isNaN(count) || count < 1) exit();
var minScale = Number(prompt("最小倍率(%)", "50"));
var maxScale = Number(prompt("最大倍率(%)", "150"));
if (isNaN(minScale) || isNaN(maxScale)) exit();
var ab = doc.artboards[
doc.artboards.getActiveArtboardIndex()
].artboardRect;
var left = ab[0];
var top = ab[1];
var right = ab[2];
var bottom = ab[3];
for (var c = 0; c < count; c++) {
for (var i = 0; i < sel.length; i++) {
var obj = sel[i].duplicate();
// ランダム倍率
var scale = minScale + Math.random() * (maxScale - minScale);
obj.resize(
scale,
scale,
true,
true,
true,
true
);
// ランダム回転
obj.rotate(Math.random() * 360);
// サイズ取得
var b = obj.visibleBounds;
var w = b[2] - b[0];
var h = b[1] - b[3];
// アートボードより大きい場合は削除
if (w > (right - left) || h > (top - bottom)) {
obj.remove();
continue;
}
// ランダム位置
var x = left + Math.random() * ((right - left) - w);
var y = top - Math.random() * ((top - bottom) - h);
obj.translate(
x - b[0],
y - b[1]
);
}
}
doc.selection = null;
alert("完了");
}
}

任意のオブジェクトを選択してか実行すると・・・

数を設定(デフォルトは30)し

最小倍率(デフォルトは50)を設定し

最大倍率(デフォルトは150)を設定すれば・・・

直ぐに完了します。

処理結果はアートボード内にランダム配置されます。

※Illustratorのアップデートで不具合が出る場合があります。気がついた時点でデバッグするように心がけていますが、すぐに対応できないのでご容赦ください。

TCDW8886 
薄力粉ではなくて小麦粉なのは何故?

小豆(あずき)と大豆(だいず)があるのに中豆(ちゅうず?)はないですね。ちょと気になりました。同様に、強力粉(きょうりきこ)と中力粉(ちゅうりきこ)があるのに弱力粉(じゃくりきこ)ではなくて薄力粉(はくりきこ)なのは何故?

木曜日, 9月 10, 2026

Let's start JavaScript 110 
ランダムに円、三角、四角を表示

ランダムに円、三角形、四角形を表示するだけです。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ランダム図形表示</title>
<style>
body{
background: black;
color: white;
margin: 20px;
}
canvas{
border:2px solid white;
}
</style>
</head>
<body>
<center>
<h3>ランダム図形表示</h3>

<canvas id="canvas" width="800" height="600"></canvas>
<br>
<button onclick="drawShapes()">&emsp;リドロー&emsp;</button>

<script>
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

function rand(min, max){
return Math.random() * (max - min) + min;
}

function color(){
return `hsl(${Math.random()*360},80%,60%)`;
}

function drawShapes(){

ctx.clearRect(0,0,canvas.width,canvas.height);

for(let i=0;i<50;i++){

const type = Math.floor(Math.random()*3);

const size = rand(10,100);
const x = rand(size/2, canvas.width-size/2);
const y = rand(size/2, canvas.height-size/2);

ctx.fillStyle = color();

switch(type){

case 0: // 円
ctx.beginPath();
ctx.arc(x,y,size/2,0,Math.PI*2);
ctx.fill();
break;

case 1: // 四角
ctx.fillRect(
x-size/2,
y-size/2,
size,
size
);
break;

case 2: // 三角
ctx.beginPath();
ctx.moveTo(x,y-size/2);
ctx.lineTo(x-size/2,y+size/2);
ctx.lineTo(x+size/2,y+size/2);
ctx.closePath();
ctx.fill();
break;
}
}
}

// 初回表示
drawShapes();
</script>
</center>
</body>
</html>

実行直後の画面です。既にランダムです。

[リドロー]で再表示。

ランダムなので同じイメージは二度と出てきません。

TCDW8885 
断片的な景色だけでは永遠に辿り着けませんね

Cute Baby Alien 063(^o^)
腰の低いエイリアン〜
よく知っている街の何処かに、大昔に訪れた店や友人の家があるはずなのですが、そこが何処なのか思い出せません。住所が解らないと、断片的な景色だけでは永遠に辿り着けませんね。

水曜日, 9月 09, 2026

Modeling in Fusion 19 
Illustratorデータを正確に利用する手順

Illustratorで作成した形状をFusionに利用する場合、何もしないとサイズが変わってしまうので正確に受け渡すための手順を整理しました。

説明用に用意したサンプルデータです。センターを確認するために突起を作成しました。IllustratorからはSVG(Scalable Vector Graphics)で書き出します。

Fusionを起動し、[スケッチ]にて[スケッチ]>[挿入]>[SVGを挿入]で書き出していたSVGファイルを挿入し中心位置に合わせるため(※)にX軸で-50mmを指定すると中心よりも左に寄りすぎてしまいます。これは72ppiがベースのIllustratorで書き出したSVGをFusionが96ppiと理解することによる差異です。結果として、100mm幅の図形をFusionに配置すると75mm程度になってしまいます。

※SVGはその形状の左上は起点となって配置される。

そこでIllustratorから書き出す際に図形を133.333%拡大して書き出します。

基本的にこれで問題解決なのですが、Fusionで目一杯拡大するとズレていることが解ります。

これはIllustratorでSVG書き出しする際の精度の問題なので。[小数点以下の精度]をデフォルトの[1]から[4]似変更して書き出せば・・・

目一杯拡大しても許せる範囲です。

それでも気になる場合は確定前に目一杯拡大してから微修正すると完璧ですが、そこまでしなくても問題ないと思いますが・・・。

なお、処理後に[押し出し]をすると穴部分が塞がって見えますが・・・

確定前に穴の部分をクリックすれば穴は空きます。

上は完成状態です。

Fusion 2704.1.23 arm64

TCDW8884 
記憶をひもとくのは絶望的ですね

2026年8月30日の続きです。気になる日は・・・1999年または2000年に石井竜也さんが東京国際フォーラムで行ったコンサートに出かけた日が解れば・・・と言うところまで思い出しました。結果、2000年6月25日に東京国際フォーラムにて石井竜也さんが行ったコンサートツアー2000「DRAGASIA」でした。強烈なイメージやイベントがないと記憶をひもとくのは絶望的ですね。

火曜日, 9月 08, 2026

カメラのバッテリーカバーを3Dプリントで修正(2)

前回の改良版です。メモリーカードの出し入れやバッテリー交換などで頻繁に練りを絞めたり緩めたりする必要があるので改良版を作成しました。

カメラのバッテリーカバーを3Dプリントで修正 2026/09/05

コインなどを使わなくても練りを調整出来るように、1/4インチカメラ固定アダプターをDリング付きに変更しました。また、それに伴ってデザインを変更しました。また、それにともないネジを

モデリングはいつもの様にFusionで、出来るだけ出っ張り部分を減らす方向に変更しました。

最終的にアールを付けて完成です。

Bambu studioへ読み込んでプリント後に前回同様に内側にカーブを付けました。

装着した状態です。

これでまだまだ現役で使えますね。
ちなみに、割愛しますが、この後バージョン3(微修正版)まで行きました。

Bambu Studio 2.7.1.62
Fusion 2704.1.23 arm64
eSUN PLA Plus(グレー)