ガーバーのファイル名をまとめて変える
KiCadから出力したガーバーを
Elecrow とか FusionPCB に送るためにファイル名を変えるとき、1個ずつファイル名を変えてませんか?
batで自動化している人もいるようですが
Windows標準の機能でまとめて変えることができます。
一番上のファイルを選択し、
Shift を押しながら一番下のファイルを選択。
このとき Ctrl + A でまとめて選択するとうまくいきません。
F2キーを押し
揃えたいファイル名を入力
そのまま Enter すると、
拡張子より前は全部同じファイル名になりました。
ファイルを選択するときに Ctrl + A で選択すると
F2キーでファイル名を変更しようとしたとき、一番上のファイルを変更する状態になります。すると、そこは既に変更後に設定したいファイル名なので、あらためて同じファイル名を入力しても何も変更されません。もとのファイル名と違う名前にすればまとめて変更されます。
まとめ
ドリルと基板外形の拡張子変更は、2個だけなので手動で変更しましょう......
ミニマルな自作キーボード
自作キーボードが流行って2年ぐらい経つでしょうか。私もちょっとだけ、かじってみようと思います。
きっかけ
ある知人のノートPCがカンマとピリオドがキー入力を受け付けなくなり、ショップに修理を頼んだら見積もりが2万越えだったようです。
安いデスクトップ用のキーボードつないでしのぐことにしたようですが、実際に使っているところを見るとかなり邪魔そうです。
そうだ、効かなくなったカンマとピリオドだけのキーボードなら邪魔にならないかも。
回路図
ProMicroにスイッチをキー入力用2個とリセット用1個つけただけです。キーボード用ではなく手元にあった汎用のタクトスイッチを使いました。
スイッチマトリックスではないのでダイオードは要らないし、プルアップ抵抗もINPUT_PULLUP
で内部プルアップさせ部品点数は思ったより少ない。
12セグメント基板で余ったフルカラーLED の WS2812B も4個付けてあります。
基板アートワーク
A面
B面
今回使うスイッチは裏側にガイドボスの出っ張りがあるのですが、KiCad に初期導入されている12mmのタクトスイッチのフットプリントはガイドボスが入る孔がありません。
そのまま使うと残念なことに。というか、KiCad でフットプリントの3D 表示させたらまさにそういう状態に配置されてて笑う。
海外メーカーの安いスイッチはガイドボスが無い物もあるのでそれを使うのも有りですが、パネルを取り付けるので位置をしっかり出したかったのと、試しに買ってみたらパッチンパッチン安っぽいクリック音がうるさかったのでやめました。
ガイドボタン用の孔を追加したフットプリントを作ります。
基板サイズが基板屋さんの指定する最小サイズより小さいので面付けして発注します。
パネル
基板むき出しだと使いにくいので上面と下面だけアクリル板のパネルを取り付けます。基板CADが吐き出したDXF に重ねるようにパネル外形と孔を描いていきます。
細かい寸法を入れていったら、微妙にズレているではないですか。
上パネルは上下が非対称、下パネルは左右が非対称。しかもぱっと見ただけではわからない微妙なズレ。組み立てるときに逆向きに取り付けて「なんか精度悪くね?」となるやつです。
基板の外形はミリのグリッドに乗せ、部品の配置はミル(インチ系)のグリッドに乗せたので、スイッチを中央に置いたつもりが微妙にズレたようです。
コネクタやICなどの部品はインチ系が多いので、部品を配置するときはグリッドをミルにすることが多いのですが、パネルに関係する部品はミリ系で配置しないといけなかったですね。
ズレていても良いのですが、その場合は組立て時に上下左右裏表が判りやすいよう目印をつけておきたかったです。この場合だと、1か所だけカドのRをC面にするとかでしょうか。
気付いたのが発注後だったので、このまま作ります。
10cm×10cmの正方形から2セット取れます。発注単位が5枚なので10台分。思ったよりたくさん取れました。基板も面付けして40台分あるのですが..... 配っても邪魔になるだけですね。
入荷
組立て
ProMicro の泣き所、「表面実装の Micro USB がもげる」の対策として、コネクタを上から押さえるだけの基板を作り、ピンヘッダに重ねてハンダ付けしています。どの程度強度アップしてるか試してないけど、無いよりマシかな?
スイッチとキートップ
Arduinoスケッチ
#include "Keyboard.h" #include <Adafruit_NeoPixel.h> #define NUM_KEY 2 // 使用するキーの数 #define PIN_PIXELS A0 // WS2812B を接続するピン #define NUM_PIXELS 4 // WS2812B の数 Adafruit_NeoPixel pixels(NUM_PIXELS, PIN_PIXELS, NEO_GRB + NEO_KHZ800); const uint8_t PIN_KEY[NUM_KEY] = {2, 3}; // キーを接続したピン番号 const char FUNC_KEY[NUM_KEY] = {',', '.'}; // キーに割り当てる文字 const unsigned int INSENS = 5; // チャタリング対策の不感時間[ms] /* キーを押すごとに変化するLEDの色 */ const uint32_t rgb[] = {0x7F0000, 0x007F00, 0x00007F, 0x3F3F00, 0x3F003F, 0x003F3F, 0x3F3F3F}; void setup() { for (uint8_t pos = 0; pos < NUM_KEY; pos++) { pinMode(PIN_KEY[pos], INPUT_PULLUP); } Keyboard.begin(); pixels.begin(); pixels.clear(); write_pixels_switch(); pixels.show(); } void loop() { key_scan(); } void key_scan() { static boolean prev_key[NUM_KEY]; static unsigned long prev_press_time[NUM_KEY]; // 前回キーを押した時間(チャタリング対策用) static unsigned long prev_release_time[NUM_KEY]; // 前回キーを離した時間(チャタリング対策用) /* キーの状態を順番にスキャン */ for (uint8_t pos = 0; pos < NUM_KEY; pos++) { boolean key = digitalRead(PIN_KEY[pos]); unsigned long time = millis(); /* キーを押したとき */ if (prev_key[pos] == HIGH && key == LOW) { if (time - prev_press_time[pos] > INSENS && time - prev_release_time[pos] > INSENS) { Keyboard.press(FUNC_KEY[pos]); prev_press_time[pos] = time; write_pixels_switch(); pixels.show(); } } /* キーを離したとき */ if (prev_key[pos] == LOW && key == HIGH && time - prev_press_time[pos] > INSENS) { Keyboard.release(FUNC_KEY[pos]); prev_release_time[pos] = time; pixels.show(); } prev_key[pos] = key; } } /* LED の色を切り替える */ void write_pixels_switch() { static uint8_t rgb_pos = 0; for (int i = 0; i < NUM_PIXELS; i++) { pixels.setPixelColor(i, rgb[rgb_pos]); } rgb_pos = (rgb_pos + 1) % (sizeof(rgb) / sizeof(rgb[0])); }
今回キーは2個しかありませんが、マトリックスにしない限りキーが増えても最小限の修正で済むように作りました。
#define NUM_KEY 2 // 使用するキーの数 const uint8_t PIN_KEY[NUM_KEY] = {2, 3}; // キーを接続したピン番号 const char FUNC_KEY[NUM_KEY] = {',', '.'}; // キーに割り当てる文字
試してないですが、ここの3行を書き換えるだけでキーを増やしたり割り当てを変えたりできるはずです。
無駄に光るよ
キーを押すごとに色が変わる。なんとも鬱陶しい。
使用感
- 汎用スイッチはタッチ感が良くないので特殊キーには良いかもしれないが文字キーには向かない。
- ノートPCのキー入力が効かなくなったせいで、句読点を「まる」「てん」から漢字変換して入力するのよりは使いやすくはなる。
- シフトを押しながら押せば、ちゃんと 「<」や「>」が入力できた。
- マクロ用として使うなら良いかもしれない。
- キーにマウスクリックの機能をアサインしようとしたが、
#include "Keyboard.h"
と#include "Mouse.h"
は同時に使えないらしく動かなかった。
部品代
品目 | 金額 | メモ |
---|---|---|
ProMicro | 約1000円 | 1個 1台分 |
基板 | 約600円 | 4枚取り×10枚で40台 |
パネル | 約700円 | 10台分 |
基板とパネルの送料 | 約2000円 | |
LED (WS2812B) | 約50円 | 4個 1台分 |
スイッチ | 約200円 | 2個 1台分 |
キートップ,キーカバー | 約60円 | 2組 1台分 |
六角スペーサー | 約1000円 | 8本 1台分 |
反省点
- もっと小さくしたかった。特に厚み。(現在 27mm)
- 上下のパネルが 5mm厚なので、薄くしても良さそう。
- パネルの向きがやはり組み立てる時に迷う。完全に対称にするか、目印を付けたかった。
- しかし、試しに逆向きに取り付けてみたところ、特に違和感なかった。
- 基板に ProMicro の取り付け向きをシルクで表示するのを忘れた。
- 基板にM3のネジ孔がスペース的に入らなかったので M2.6 で設計したが、M2.6 は安価な六角スペーサーが見つからず高く付いた。M2でも良かったかもしれない。
- キーボード用スイッチを使わず汎用スイッチを使ったので、キートップと透明のキーカバーの間に紙を挟むだけでキートップの印刷を自由に作れる。
まとめ
製作のきっかけとなった知人の反応
「そういえばスラッシュのキーも壊れてたんだっけ。」
12セグメント カナフォントをハード化する
写真で見ると文字が白とびしちゃうので露出補正で暗くしていますが、実際は明るい部屋でも綺麗に表示されます。
3ヶ月前ぐらいに見かけたとあるツイート
突然脳がなんかを受信して、こんな12セグメントのカタカナのフォントを思いつきました
— ByNEET (@ByNEET) 2019年1月7日
読めるか読めないかギリギリのライン。 pic.twitter.com/WN5AAEAu7z
やってみよう
回路図
当初、8ビットシフトレジスタ 74HC595 を2個使い、各セグメントを2個のLEDで点灯するよう回路図とアートワークを作ったのですが、どうせこれカラー表示したくなるよね、ということで WS2812B に変更。
基板1枚に WS2812B を24個(各セグメント2個×12セグメント)。数珠つなぎになった信号線の両端にコネクタを配置し、基板同士を連結できるようにします。
基板アートワーク
基板外形
基板が安く作れる最大寸法 100mm×100mm に収めます。
A面
B面
部品が15°単位で傾いているのでグリッドをかなり細かくしないと思い通りのところに置けません。
基板入荷
A面
B面
この12セグメントの表示形式に名前は付いていないようなので、基板名は SnowCrystal としました。
部品実装
スペーサー
各セグメントの形状を出すためのスリット兼LEDの光を均一にするスペーサーです。
高さは 10mm, 15mm, 20mm の3種類を試したところ、15mmが良さそうでした。
3Dプリンタで出力。基板に重ねてネジどめ。
Arduino で点灯させる
スケッチの一部
#define NUM_DIG 5 // 接続した文字数 #define NUM_SEG 12 // ディジットあたりのセグメント数 #define NUM_PPS 2 // 各セグメントに使用するWS2812Bの数 Pixels Per Segment #include <Adafruit_NeoPixel.h> Adafruit_NeoPixel pix = Adafruit_NeoPixel(NUM_PPS * NUM_SEG * NUM_DIG, PIN_PIX, NEO_GRB + NEO_KHZ800);
dig番の文字の seg番のセグメントを rgb色 にセット
void set_seg(uint8_t dig, uint8_t seg, uint32_t rgb) { for (uint8_t i = 0; i < NUM_PPS; i++) { pix.setPixelColor(NUM_PPS * NUM_SEG * dig + NUM_PPS * seg + i, rgb); } }
dig番の文字に patternの文字を rgb色 にセット
void set_dig(uint8_t dig, uint16_t pattern, uint32_t rgb) { for (uint8_t seg = 0; seg < NUM_SEG / 2; seg++) { set_seg(dig, seg, pattern >> (13 - seg) & 1 ? rgb : 0); } for (uint8_t seg = NUM_SEG / 2; seg < NUM_SEG; seg++) { set_seg(dig, seg, pattern >> (11 - seg) & 1 ? rgb : 0); } }
フォントを作る
const PROGMEM uint16_t font_map[256] = { 0, // 0 0, // 1 /* 中略 */ 0, // 46 0, // 47 B000111 << 8 | B100100, // 48 0 B000001 << 8 | B100100, // 49 1 B101101 << 8 | B010010, // 50 2 B101101 << 8 | B011000, // 51 3 B000010 << 8 | B100110, // 52 4 B101100 << 8 | B101000, // 53 5 B101111 << 8 | B001010, // 54 6 B000011 << 8 | B100100, // 55 7 B101101 << 8 | B011011, // 56 8 B111101 << 8 | B010001, // 57 9 /* 中略 */ 0, // 175 0, // 176 B100001 << 8 | B110100, // 177 ア B000000 << 8 | B010110, // 178 イ B011010 << 8 | B110001, // 179 ウ B001100 << 8 | B010101, // 180 エ B000000 << 8 | B110111, // 181 オ B010000 << 8 | B110110, // 182 カ B100001 << 8 | B101110, // 183 キ B100001 << 8 | B010010, // 184 ク B000011 << 8 | B001101, // 185 ケ B000100 << 8 | B000101, // 186 コ B000010 << 8 | B110110, // 187 サ B101100 << 8 | B000001, // 188 シ B000001 << 8 | B101100, // 189 ス B001000 << 8 | B110110, // 190 セ B011000 << 8 | B000001, // 191 ソ 0, // 192 0, // 193 /* 中略 */ 0, // 254 0, // 255 };
1バイトカナ文字(半角カナ)を Serial.println()
すると戻りは3バイトなので、下位1バイトを使って font_map
の配列からパターンを取り出す
uint16_t font(byte ascii) { return pgm_read_word(&font_map[ascii]); }
byte code = 'ア'
としたときに、「ア」の下位1バイトだけ取り出して変数 code に代入してくれれば良いのですが、narrowing conversion
のエラーが出るPCとコンパイルが通るPCがあります。キャスト面倒だから通して欲しいんだけど何が違うんだろう?
紙を被せて完成
2mmの白いアクリルでは、滲んでピンボケみたいになってしまいました。
アクリルをコピー用紙に変えたらシャキッと表示できました。
まとめ
while 文の無限ループが含まれているのでスケッチの全文公開はやめとこ(笑)
フォントのパターンは、こちらのブログで紹介されているものを再現しています。
12セグメントカタカナフォント|ニートが頑張るブログ
リモコンホルダーを柱に穴をあけずに固定したい
こちらは純正のリモコンホルダーです。2×4材を天井まで突っ張って棚を作ってあるのですが、そこに室内照明のリモコンを取り付けています。しかし、位置的に赤外線が届きにくいらしく反応が悪いです。
操作しやすく反応も安定する場所に移動したいけど、柱とか壁紙に穴を開けたくない。というわけで、ネジで柱にクランプするホルダーを作ります。
モデリング
造形
ネジ孔の内側にあけた六角形の凹みに
ナットを入れて
コネジを通す
取り付け
柱に取り付け
リモコンも取り付け
反対側
ネジで挟んでいるので多少の凹みはついてしまいますが、木ネジ打ち込まずに済みました。軽く締めただけですがガッチリ固定されています。
ネジが飛び出しているので、見た目は悪いですね。ポリカの透明なネジを使うと良さそうでしょうか。
[追記 2019.03.02]
ネジをポリカのイモネジに交換しました。
https://www.amazon.co.jp/gp/product/B01DNC89BS/
ネジ頭の出っ張りもなくなり
これなら服とか引っかける心配もないし見た目も良いです。
ホルダーの色が白に変わっているのは、リモコンの着脱がキツかったので寸法を修正し、クリアのフィラメントで作り直しました。
Fusion360 でモデリングした3Dをブログに貼る
Makers Love に3Dを貼る方法が紹介されていたので早速試してみます。ちなみにこれはスクレーパーのホルダーです。
やりかたはこちらの記事に紹介されています。
【Fusion360小技】ホームページやブログに3Dモデルを表示する方法 | デジタルものづくりの情報サイト「メイカーズラブ」
上にこんな感じの絵が表示されていますか?
ドラッグしたりホイールを回すと3Dを拡大したり回転できます。右ドラッグで平行移動もできます。
ブラウザ上で断面をみたり距離を測ったりもできます。
初期設定だと全体的に暗くて見にくかったのですが、右下の歯車ボタン(設定)から「環境」タブで背景やライティングを変更したら見やすくなりました。
タブレット(Amazonの 旧Fire7、ブラウザは Silk)でも表示できました。最初表示されるまでに時間がかかるのですが、表示されてしまえばぐりぐり回せます。断面もとれました。
Makers Love は参考になる情報が豊富でよく見に行くのですが、全体的にブクマが少ないので意外と知られていないのでしょうか。おススメです。
1入力4出力のヘッドホンアンプ
何人かで使えるヘッドホンアンプが欲しい
住宅事情で普段ヘッドホンを使っているけど同じ音を何人かで聴きたい時があります。そんな時はヘッドホンのコードを分岐したりするのが一般的でしょうか。
しかし個別に音量を設定したいときもありますし、音質も悪くなりそうだし。
というわけで、1入力4出力のヘッドホンアンプを作ります。
回路図
電源
DCアダプターから9Vで電源供給し、三端子レギュレータで5V に降圧します。
電源ランプは手元にある2色LEDを使い、好きな方の抵抗だけ接続して色を選べるようにしておきます。回路図では10kΩになっていますが暗かったので1kΩにしました。
ミュート
アンプICのミュート端子に接続します。
ミュートは電源ON/OFF時のポップ音を抑制するために使うので、電源ON/OFF時にだけLOW,それ以外はHIGHになっていれば良いということになります。
電源の立ち上がり/立下りの最中は三端子レギュレータの入出力の電圧差が1V程度ですが、完全に立ち上がってしまえば4V程度の電圧差が発生します。そのため、三端子レギュレータの両端の電圧差が2~3V以上の時だけトランジスタをONしてミュート端子をHIGHにします。
トランジスタはあまり深く考えず、定番の2SA1015 をチップ化した 2SA1162 を使いました。
ピンジャック
2個のピンジャックを並列に接続しています。分岐ケーブルを用意しなくて済むように、というだけの理由です。テレビとアンプの間に割り込ませる形で接続する用です。
コネクタはアマゾンの激安品です。実物を測ってフットプリント作りました。
ボリューム
定番のアルプス RK09Lです。2連Aカーブ10kΩ。
アンプ
遊ぶならオペアンプ使ったほうが楽しいんでしょうけれど、今のところは専用ICで。周辺回路の定数設定とか発振とかの心配が減ります。
簡単に扱えそうなロームの BH3544F を選びました。周辺回路は(ミュート以外は)データシート通り。
出力
カップリング用のケミコン、保護抵抗、ミニジャックです。
コンデンサも本来ならこだわる所なんでしょうが、電源用、出力のカップリング用、共通で適当に選んでいます。
ニチコンのチップケミコン、UCMシリーズなのですが、体系図によると低インピーダンスを追及した品番のように見えます。
基板アートワーク
無駄にGNDが広くてビア打ちまくってます。ボリュームのノブがちょっと大きめなので、回しやすさを考えるとこれぐらいのサイズになってしまいました。
アクリルプレート
基板データをもとにプレートの外形と孔位置を決めます。
こんな感じで基板と一緒に発注します。
組立て
基板とパネル入荷
基板組立てと動作確認
パネル取り付け
アルミノブがなかなかいい味だしてくれてます。
ついでにホルダー
問題点
ボリュームノブを触るとハムが乗る
ボリュームのノブを触ると、ブーンというノイズがヘッドホン出力から聞こえます。ボリュームのボディー(固定用の端子)をGNDに接続したら解消しました。
電源ON/OFF時のポップノイズ
オシロで信号をみると、ミュートは働いているのですがもっと長く効かせないとならないようです。アンプICのデータシート通りにしておけばよかったかも。
電源OFFでもヘッドホンにノイズが乗る
スライドスイッチで電源を断っているのに、ヘッドホンからズバババババというノイズが聞こえます。電源ONしてミュートが解除されるとノイズは消えます。原因が判りませんが、ACアダプタを抜けば止まります。
スライドスイッチは2回路入っているので並列に使用していましたが、1回で電源、もう1回路でGNDをスイッチ(GNDもDCアダプタから切り離す)したらだいぶ改善しました。
パターンカットして修正。
ボリュームの回転方向が逆
今回の一番の残念ポイント。フットプリントと部品実物では1番ピンと3番ピンの位置が逆でした。なので、ボリュームを右に回すと音量が下がり左に回すと音量が上がる残念仕様になってしまいました。
基板とボリュームを配線で接続していれば配線を入れ替えるだけだったのですが、基板に直接実装しているしGNDはベタなので修正はかなり手間かかりそう。
落としたらフォーンジャックがもげた
ヘッドホンを挿したまま落としてしまい、パターンごとジャックがもげてしまいました。ここは表面実装ではなくてスルーホールピンを使うべきでした。
良かった点
アンプICの最大出力62mWというのが貧弱ではないかと気になっていたのですが、十分な音量が出ます。
音質の良し悪しを判定できるほどオーディオに詳しくないですが、音質にまったく不満はないです。
コネクタや端子類を全て基板に実装したので配線が無くスッキリしました。
部品代
- 基板:$22.28(5枚分)
- アクリルパネル:$16.55(5セット分)
- 電気部品:約6000円(予備含む)
- 機構部品:約2000円(ノブ、スペーサー、ネジ等)
合計 1万2千円ぐらい
まとめ
もう1回、再設計して作り直せば良いものができそうな気がしますが、市販品を買って済まそうと思います。
- 出版社/メーカー: BEHRINGER
- 発売日: 2018/09/01
- メディア: エレクトロニクス
- 購入: 5人 クリック: 58回
- この商品を含むブログ (10件) を見る
アクリルのタップタイト用ネジ穴の形状とサイズの最適を探す
ネジ締め千本ノック......ではないです。
結論
標準の下穴で問題なかった。ネジはBタイプが良い。
アクリルは硬くて割れやすいのでネジ孔はシビアな気がします
レーザーカットでいろんな大きさの孔を空けたアクリルを作りました。
上の2列は円ですが、下の3列は星形になっています。
レーザーカットなので寸法の精度はそれほど高くありません。
よく使うネジを3種類用意しました。
全てバインドタップタイトの 3×8 ですが、左からPタイプ、Bタイプ、Sタイプです。
簡単に説明しますと....
「バインド」は、ネジ頭の形状。ナベ頭が径が小さく高さが高めなのに対して、バインドは径が大きく高さが低くなっています。
「タップタイト」は、木ネジのように下孔だけあけたところにネジでネジ山を切りながら(タッピングしながら)締めるネジです。
「Pタイプ」は、ネジ山のピッチが長く1回転させた時の進む量が長く、プラのような柔らかい材料でネジバカになりにくい特徴があります。
「Bタイプ」は、プラや板金(バーリング)等に汎用的に使えます。
「Sタイプ」は、主に板金用ですが、ネジ山のピッチがコネジと同じなのでナットのようにネジ切りされている場所にそのまま使えます。
Pタイプ
ネジが付いて無い孔は、もともとスカスカだったり、孔が小さすぎて回しても入っていかない孔です。
締め切ったときにトルクの変化が少なくそのままネジバカになったところは、ネジを緩めて浮かせてあります。
ネジを締め切る前に、アクリルが割れそうだったり硬くて入っていかないところも、ネジを緩めて浮かせてあります。
裏から見たところ。無理に締めるとネジ孔まわりにクラックが入ります。
Bタイプ
Pタイプより幅広い孔径で安定している様子です。
裏側。思ったよりクラックが入りやすいようです。
ネジの進みの大きいPタイプよりもBのほうが回しやすいので、きつくてもネジが進んでしまうのかもしれません。
Sタイプ
入ったネジが一番少ないです。
ネジを回すとキューキュー音がします。無理してますね。
ネジのピッチが小さいので、粉状のアクリルの欠片がたくさん出ます。
ついでに Arduinoの座布団に使った 2.6×8 Pタイプ
macrochelys99.hatenablog.jp
締結感も安定していてちょうど良かったようです。
まとめ
星形のネジ孔は Amazonで買ったアクリルの基板ケースのネジ孔が星形になっており、いいアイデアだと思って真似したのがきっかけです。
アクリルは丸より星形のほうが良いと思って今回比較してみましたが、あまり違いがありませんでした。
今回使ったネジは断面がオニギリ型のタップタイトでしたので、断面が円のタッピンだとまた違ってくるかもしれません。
丸孔は無理に締めていくと突然パキンと割れますが、星形だとネジ孔まわりに小さなクラックがピキピキ入り始めるので完全に割れる前に気付きやすいというメリットはあります。
3mmネジの下穴の推奨は 2.4~2.6mm らしく結果もその通りになりましたので、推奨下穴にBタイプのタップタイトを使うのが良さそう。
ABSやPSならPタイプのほうが使いやすいですが、PとBは外観が似ており混じると(Pで一度締めた穴をBで締めなおすと)ネジバカになるのでどちらかに統一したいところです。