Z80でのDAA命令によるHEX変換テクニック [Z80]
Z80 等で BCD 演算のための補正命令である DAA を使ってバイナリ(00H..0FH)をヘキサの文字コード('0'..'9','A'..'F')に巧妙に変換する処理が知られています。
今回はこのバイナリ to HEX 変換処理でヘキサ文字を小文字にしたい場合の処理を考えたのでブログに記録しておきたいと思います。
最初に結論から書いてしまうと今回考えた下記のコードで 00H..0FH のバイナリを '0'..'9','a'..'f' に変換できます。
それでは上記のコードに辿り着いた経緯について以下に書きます。
★追記 2023/05/26
その後も少し気になったので下記のパターンで自動スキャンしてみました。xxとyyは 00H..FFH の範囲でフルスキャンし、ニーモニックの部分はそれぞれのパタンの全組合せを自動チェックしています。
CP/OR/ADD/SUB xx; NOP/DAA; ADC/SBC yy; NOP/DAA
結果は下図の通りで上記で既に記述したもの以外はありませんでした。「*** Find!!」以降の部分が見つけた解を表示している部分でそれ以外の表示はスキャンの進捗が判るように表示しているものです。
尚、各ニーモニックのオペコードは
CP:FE,OR:F6,ADD:C6,SUB:D6,NOP:00,DAA:27,ADC:CE,SBC:DE
です。
2バイト分のフルスキャンとオペコード切替えなので全チェックパターンは 210 万(=4*256*2*2*256*2)程ですが、上記の画面で最後に表示されているようにほぼ4分でスキャンが完了しました。環境は Z80 20MHz で GAME コンパイラを使用しています。ソースはこれです。
★追記 2023/05/26
ヘキサ文字への変換は最小単位としては1バイトを2桁のヘキサ文字に変換するケースが殆どなのではないかと思います。下位のニブルを取り出す時に AND 0FH を使用するとハーフキャリーが立ってしまうので厄介なのですが、OR 0F0H であればハーフキャリーが立たない(当然キャリーもゼロ)ので最初から DAA が使えます。入力データが F0H、FAH の場合、DAA 後は期待通りにそれぞれが 50H、60H になります。後は下記の様にキャリーを立てて加算/減算で調整すれば実質5バイトのコードで変換できます。
以上より、現時点ではヘキサ文字に変換する5バイトコードは3通りあるということが判りました。
OR 0F0H method 1
OR 0F0H method 2
★追記 2023/08/18
Twitter(X?)で関連するメッセージを見かけたのでこのページを紹介して、自分でも再度見てみました。最初に OR する方式で AND 方式の様に CP から始めるパターンもできることに気が付きました。
OR 0F0H method 3
今回はこのバイナリ to HEX 変換処理でヘキサ文字を小文字にしたい場合の処理を考えたのでブログに記録しておきたいと思います。
最初に結論から書いてしまうと今回考えた下記のコードで 00H..0FH のバイナリを '0'..'9','a'..'f' に変換できます。
|
---|
それでは上記のコードに辿り着いた経緯について以下に書きます。
- DAA 使用の一般的なヘキサ変換
例えば居酒屋ガレージ日記の「プログラムテクニック「DAA」」の記事に書かれているように
ADD A,90H DAA ADC A,40H DAA
の6バイトのコードで 00H..0FH を '0'..'9','A'..'F' に変換できます。
入力が 0AH 以上の場合は 最初の DAA で上位ニブルに桁上りし、更に上位ニブルが桁上りして 0 になり、キャリーが立つので2回目の DAA で上位ニブルは 4 となり、下位ニブルには キャリーも加算されるので最初の値から 9 が引かれた値になります。
入力が 09H 以下の場合は最初の DAA では上位ニブルが 9 となることで 2回目の DAA で上位ニブルが 4-1=3 になります。
BCD の桁上りとキャリーの効果を巧妙に組み合わせた処理ですね。
★追記 2023/05/24 {
このような6バイトの変換コードは他にも存在します。例えば先頭の"ADD A,90H"は"OR 90H"でもいいし、"ADC A,40H"が"ADC A,3AH"でも結果は同じです。
下記は今回考えたコードで引き算方式にしたもので、ここ以外では多分見かけないのではないかと思います。
my idea 1
SUB 0AH DAA SBC A,59H DAA
my idea 2 }
※追記 2023/05/27 CCFではハーフキャリーが不定なので上記は環境依存性があります
SUB 0AH SBC A,25H CCF DAA
★追記 2023/05/26 {
最初に OR を実行してハーフキャリーをクリアすれば普通に変換できます。
my idea 3
OR A DAA CP 10 SBC 0CFH
my idea 4 }
OR A DAA ADD A,0F0H ADC A,40H
- 更に短いコード
上記の様なヘキサ変換で必要な処理の要素を列挙すると
- 下位ニブルの桁上り
入力が 0AH 以上の場合は下位ニブルから上位ニブルに桁上りが発生するようにして上位ニブルを +1 する。
- 下位ニブルへの+1
入力が 0AH 以上の場合は下位ニブルに +1 されるようにする('A'のアスキーコードは 41H なので xAH を x1H にする)
例えば Twitterのタイムラインで見つけた
CP 10 SBC A,69H DAA
の5バイトのコードでもヘキサ変換が可能です。SBC を絶妙に組み合わせることで上記の2つの必要な要素が実現されています。
キャリーを加算することで同じようなことが出来ないか考えてみました。入力が 0AH 以上の場合にキャリーを発生させる必要があるので
ADD A,0F6H ADC A,3AH DAA
としてみましたが、ADC 後も入力が 0AH以上の場合と 09H 以下の場合でキャリーの値が異なるので DAA の作用が不統一になり破城しましたw
CP 命令は減算処理はするが A-reg は変更しないという命令ですが加算でも同様にフラグは更新するが A-reg を変更しない命令があればいいのですが・・・
1バイト増えてしまいますが下記の様にキャリーの操作を加えると上手く行きました(処理内容も判り易いですね)。
CP 10 CCF ADC A,30H DAA
- 下位ニブルの桁上り
- 小文字のヘキサ変換
上記の様に ADD や SUB でキャリーを操作した場合、次の加算または減算で 入力が 0AH 以上の場合と 09H 以下の場合でどちらかがバイトのバウンダリーを超えるので、キャリーが不一致な状態となり、DAA で不要に +6 や -6 されるので、5バイトでのヘキサ変換処理は上記の方法以外は無いのではないかと推測します。
と言うわけで趣向を変えて小文字のヘキサ変換について挑戦してみました。DAA 命令の複雑な挙動に関しては「Zilog Z80 DAA実行結果」にまとめられているのを見つけたので、これを参考にして辿り着いたのが冒頭に書いたコードになります。
下記のような検証用のプログラムで全てのケースについて確認を行いました。
1バイトの小文字ヘキサ変換試験プログラム(Z80アセンブラ) ;+++++++++++++++++++++++++++++++++++++++++++++++ ; translate 0x00-0x0f to hex ascii code '0'-'f' ; Ver 0.01 2023/05/22 by skyriver ;+++++++++++++++++++++++++++++++++++++++++++++++ 000D CR EQU 13 000A LF EQU 10 0001 SMALL EQU 1 ; lower case ToHex macro if SMALL EQ 0 CP 10 SBC A,069H DAA else SUB 10 DAA DAA DAA SBC A,09FH endif endm 0000' ASEG ORG 0100H 0100 AF XOR A 0101 F5 LOOP: PUSH AF 0102 CD 0116 CALL TRAN 0105 3E 20 LD A,' ' 0107 CD 0135 CALL PUTC 010A F1 POP AF 010B 3C INC A 010C F5 PUSH AF 010D E6 0F AND 0FH 010F CC 013C CALL Z,NEWLN 0112 F1 POP AF 0113 20 EC JR NZ,LOOP 0115 C9 RET ; translate to hex ascii code ; A <- data(00-0f) 0116 F5 TRAN: PUSH AF 0117 0F RRCA 0118 0F RRCA 0119 0F RRCA 011A 0F RRCA 011B E6 0F AND 0FH ToHex 011D D6 0A + SUB 10 011F 27 + DAA 0120 27 + DAA 0121 27 + DAA 0122 DE 9F + SBC A,09FH 0124 CD 0135 CALL PUTC 0127 F1 POP AF 0128 E6 0F AND 0FH ToHex 012A D6 0A + SUB 10 012C 27 + DAA 012D 27 + DAA 012E 27 + DAA 012F DE 9F + SBC A,09FH 0131 CD 0135 CALL PUTC 0134 C9 RET ; put chara on screen ; A <- data 0135 PUTC: 0135 5F LD E,A 0136 0E 02 LD C,2 0138 CD 0005 CALL 0005H 013B C9 RET ; new line 013C 3E 0D NEWLN: LD A,CR 013E CD 0135 CALL PUTC 0141 3E 0A LD A,LF 0143 CD 0135 CALL PUTC 0146 C9 RET END Macros: TOHEX Symbols: 000D CR 000A LF 0101 LOOP 013C NEWLN 0135 PUTC 0001 SMALL 0116 TRAN No Fatal error(s)
実機の CP/M-80 環境での確認結果が下図になります。
CP/M-80 環境での確認結果(OK)
ところが Windows の DOS 窓での CPM エミュ環境では下図のように NG でした。尚、プロンプトで表示されているパス情報はわざとぼかしています。
CP/M エミュ環境での確認結果(NG)
CP/M エミュでは DAA を実行した後のフラグの挙動が Z80 と違うことが原因の様です。下図は Z80 の実機(Z84C0020PEC)を使って CP/M 環境で ZSID でステップ動作した結果です。
Z80 実機でのステップ動作
下図が CP/M エミュでのステップ動作になります。DAA 命令での 'I'フラグの挙動が上記の実機と違いますね。尚、'I'フラグはハーフキャリーです。
CP/M エミュでのステップ動作(NG)
GAME 言語を使って 00H..0FH のどの範囲が NG なのか確認してみた結果が下図になります。上記の結果からも判っていましたが、00H..09H の範囲がNGの様です。
CP/M エミュ環境での確認結果(NG)
エミュということで試しに MSXPen 環境で確認した結果が下図になります。MSXPen 環境では流石に問題無いようです。
MSXPen 環境での確認結果(OK)
★追記 2023/05/26
その後も少し気になったので下記のパターンで自動スキャンしてみました。xxとyyは 00H..FFH の範囲でフルスキャンし、ニーモニックの部分はそれぞれのパタンの全組合せを自動チェックしています。
結果は下図の通りで上記で既に記述したもの以外はありませんでした。「*** Find!!」以降の部分が見つけた解を表示している部分でそれ以外の表示はスキャンの進捗が判るように表示しているものです。
尚、各ニーモニックのオペコードは
です。
変換コードパターンのスキャン結果 |
|
2バイト分のフルスキャンとオペコード切替えなので全チェックパターンは 210 万(=4*256*2*2*256*2)程ですが、上記の画面で最後に表示されているようにほぼ4分でスキャンが完了しました。環境は Z80 20MHz で GAME コンパイラを使用しています。ソースはこれです。
★追記 2023/05/26
ヘキサ文字への変換は最小単位としては1バイトを2桁のヘキサ文字に変換するケースが殆どなのではないかと思います。下位のニブルを取り出す時に AND 0FH を使用するとハーフキャリーが立ってしまうので厄介なのですが、OR 0F0H であればハーフキャリーが立たない(当然キャリーもゼロ)ので最初から DAA が使えます。入力データが F0H、FAH の場合、DAA 後は期待通りにそれぞれが 50H、60H になります。後は下記の様にキャリーを立てて加算/減算で調整すれば実質5バイトのコードで変換できます。
以上より、現時点ではヘキサ文字に変換する5バイトコードは3通りあるということが判りました。
|
---|
|
---|
★追記 2023/08/18
Twitter(X?)で関連するメッセージを見かけたのでこのページを紹介して、自分でも再度見てみました。最初に OR する方式で AND 方式の様に CP から始めるパターンもできることに気が付きました。
|
---|
電動ドライバの購入 [購入]
AliExpress で「スーパーセール」が常時表示されるようになり、結構安くなっている商品があります。特に残り数が表記されているものは割引率が高い傾向にあり、品切れになった場合でも暫くすると復活しがちですw
小型の電動ドライバが安かったので購入してみました。本体だけなら千円以下でドライバ先端(Bit)のセットを付けても 1,373 円でした。
このままではドライバ先端を直ぐに無くしそうなので、3Dプリンタでホルダーを作ることにしました。
最初は六角穴を並べた単純な構造を考えましたが、3Dプリンタで出力すると端の部分と中央の部分の六角穴のサイズが微妙に異なりドライバ先端を上手くホールドするようにするのが難しい状況でした。手持ちのフレキシブルなフィラメント(TPU)を使おうかとも思いましたが、勉強も兼ねて PETG フィラメントを使い、構造を工夫してみることにしました。また、設計ポリシーとしてなるべく小型になるように考えました。
何度か試行錯誤した末に辿り着いたものが下図になります。バネの部分は ABS フィラメントの場合は強度的に没ですが、PETG であれば大丈夫だと思います。
透明の PETG フィラメントで出力したものが下の写真です。40 分程度で出力できました。サポート無しの構造で奇麗に出力できています。
Bit を格納した状態が下の写真です。必要十分な最小限の幅になっていますね。
ホールド具合は緩くも無く、きつくも無く丁度いい感じです^^
小型の電動ドライバが安かったので購入してみました。本体だけなら千円以下でドライバ先端(Bit)のセットを付けても 1,373 円でした。
購入した電動ドライバセット |
|
このままではドライバ先端を直ぐに無くしそうなので、3Dプリンタでホルダーを作ることにしました。
最初は六角穴を並べた単純な構造を考えましたが、3Dプリンタで出力すると端の部分と中央の部分の六角穴のサイズが微妙に異なりドライバ先端を上手くホールドするようにするのが難しい状況でした。手持ちのフレキシブルなフィラメント(TPU)を使おうかとも思いましたが、勉強も兼ねて PETG フィラメントを使い、構造を工夫してみることにしました。また、設計ポリシーとしてなるべく小型になるように考えました。
何度か試行錯誤した末に辿り着いたものが下図になります。バネの部分は ABS フィラメントの場合は強度的に没ですが、PETG であれば大丈夫だと思います。
ドライバ Bit ホルダー(CAD 画面) |
|
透明の PETG フィラメントで出力したものが下の写真です。40 分程度で出力できました。サポート無しの構造で奇麗に出力できています。
3Dプリンタで出力した Bit ホルダー |
|
Bit を格納した状態が下の写真です。必要十分な最小限の幅になっていますね。
ホールド具合は緩くも無く、きつくも無く丁度いい感じです^^
Bit ホールド中の Bit ホルダー |
|
★追記 2023/12/12
最近始まった AliExpress さんの「百円ショップ」が滅茶苦茶安くてつい買ってしまうw
六角レンチのビットセットが 270 円だったので購入しました。ケースは無かったのですが3Dプリンタでちょちょいとやれば出来上がり^^
最近始まった AliExpress さんの「百円ショップ」が滅茶苦茶安くてつい買ってしまうw
六角レンチのビットセットが 270 円だったので購入しました。ケースは無かったのですが3Dプリンタでちょちょいとやれば出来上がり^^
六角ビットホルダ(CAD画面) |
|
ホルダに収めた六角ビット |
|
CP/M-80でのBIOSエミュレートによるMBASICの起動 [Z80]
Twitter のタイムラインで CP/M-80 版 MBASIC は BIOS のコンソール入出力機能のみでも基本動作はするという情報を見かけたので確認して見ました。
最近使っている 20MHz 動作の Z80PicCompactの開発機は CP/M が自動起動する設定にしているので、「CP/M用hexローダーの製作」の記事で紹介した HexLoader を使ってヘキサファイルをロードして実験しました。
MBASICを起動するためにはBIOS のコンソール関連の実装以外に下記の項目への対応が必要でした。
上記の項目を対応することで無事 MBASIC が起動するようになりました。
殆ど処理が無いですが、ソースは下記になります。
Twitter に投稿した動画付きメッセージを貼っておきます。上記の BIOS エミュレータ+ MBASIC 本体のHEXファイルをロードすることで MBASIC を起動しています。
BIOS エミュレータの WBOOT は HALT するようにしてあるので CP/M に戻るために元々の WBOOT(0xfa03)をコールしています。
最近使っている 20MHz 動作の Z80PicCompactの開発機は CP/M が自動起動する設定にしているので、「CP/M用hexローダーの製作」の記事で紹介した HexLoader を使ってヘキサファイルをロードして実験しました。
MBASICを起動するためにはBIOS のコンソール関連の実装以外に下記の項目への対応が必要でした。
- BDOS コールアドレスの設定
MBASIC は BDOS コール(0005H)部分の BDOS アドレスを参照して、BDOSCCP 領域も使用するので BDOS コール用のジャンプ命令を設定する必要がある。
★修正 2023/05/17
MBASIC はディスクアクセス機能が必要なので BDOS 領域は壊さないことを確認しました。
- コマンドパラメータ無しの設定
MBASIC は起動時に 0080H 部分にあるコマンドパラメータを参照してパラメータがある場合、ソースをロードしようとします。0080H を 00H に設定することでパラメータが無い状態にします(この部分は上記の HexLoader が使用するメモリなのでこのために HexLoader をアップデートしました)
上記の項目を対応することで無事 MBASIC が起動するようになりました。
殆ど処理が無いですが、ソースは下記になります。
CP/M BIOS エミュレータのソース |
|
Twitter に投稿した動画付きメッセージを貼っておきます。上記の BIOS エミュレータ+ MBASIC 本体のHEXファイルをロードすることで MBASIC を起動しています。
BIOS エミュレータの WBOOT は HALT するようにしてあるので CP/M に戻るために元々の WBOOT(0xfa03)をコールしています。
CP/M-80版MBASICはBIOSのコンソール入出力機能のみでも基本動作はするようなので実験してみました
— skyriver (@wcinp) May 16, 2023
BIOSのソースが手元にあるので環境構築は容易です
BDOSコールアドレスを参照して再利用している点と0080Hを00Hにしてアーギュメント無し状態にする必要があることに対応することで立ち上がりました pic.twitter.com/e60gH9sgE6
超小型Z80マイコン(その14)開発機のケース製作 [Z80]
前回の記事で書いたようにユニバーサル基板を用いてポリウレタン線で手配線した開発用基板が 20MHz で動作しハード弄りは一段落しました。Z80 を使った簡単な実験を行う場合はやはり速い方がいいのでこの開発機を結構使っています。
基板の裏面はカバーで保護していますが、今後も安定した状態で使っていきたいのでケースを作ることにしました。
開発機なのであまり凝らずに下図のような3ピース構成にしてみました。右側面の穴は USB コネクタと TF カード用のものです。
各ピースの間隔を空けると下図のようになります。各パーツは下の方からベースプレート、サイドパーツ、トッププレートと呼ぶことにします。
下図はスケルトン表示になります。ベースプレートとトッププレートはネジでサイドパーツに固定します。
今までとほとんど同じ状態ですがベースプレートに開発基板を取り付けた状態が下の写真です。TF カードは外した状態です。今回ケースを作成する際にTF コネクタを汎用基板に直付けしようと試みたのですが、失敗してコネクタを1個壊してしまったので従来通り市販のコネクタ基板を使うことにしました。
下の写真はサイドパーツを取り付けた後の状態です。汎用基板は四隅がベースプレートとサイドパーツで固定されます。
左下の写真は TF カード基板を取り付けた状態のものでサイドパーツで支えられています。右下はベースプレート面の写真でネジの頭部が出っ張らないように頭部用のホールを設けています。
トッププレートを取り付けた状態が下の写真です。本来であればアクリル板を CNC で加工して透明で文字入りのパネルにしたいのですが手抜きでトッププレートもFDM式の3Dプリンタで出力しました。以前、実験的にSLA式の3Dプリンタでパネル作成したこともありましたが、レジンは強度的にケース等には適さないということが判りました。
しかし、基板に実装した部品が全く見えないのも面白くないので今回使用しているフィラメントである透明の PETG での造形物を透明化する簡単な実験を行いました。
実験は次の二通りでやってみました。両者共に溶剤は手持ちのノルマルプロピルアルコール(NPA)を使い2倍程度に薄めて使いました。
不要になったサイドパーツ部品にコーティングし評価しました。評価方法はペン型テスタのパネルに表示された "Auto" の文字の見え方で効果を判断しました(コーティング物からピンセットを使って約 1cm 離した状態で目視)。一応写真も撮りましたが、写真では目視での感覚をあまり表現できていません。
結果を下表に示します。評価は5段階で数字が大きい程、良い結果ということにしています。
上記表の結果から No5 の手法でトッププレートをコーティングしてみました。片面はベッドに接している平らな面なのでベッドと反対側のみコーティングしました。結果が下の写真です。
評価で用いたサイドパーツと違いトッププレートはメッシュ状に積層されているのでメッシュ状に細かい気泡がありなかなか透明度は上がりませんでしたが、ICチップの位置が見えるようになりました。
「Pic24MC68Kマイコン(その8)ケース作成」の記事の最後の方に書いたように以前、透明の PETG フィラメントで作ったケースにエアブラシで UV カット塗料を塗布したことがあります。同じ材料で比較できていませんが効果は同レベルなのでは無いかと思います。今回の手法はエアブラシで塗料を塗布するよりはお手軽なので今後活用できる場面があるのではないかと思います。
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]
基板の裏面はカバーで保護していますが、今後も安定した状態で使っていきたいのでケースを作ることにしました。
開発機なのであまり凝らずに下図のような3ピース構成にしてみました。右側面の穴は USB コネクタと TF カード用のものです。
Z80PicCompact開発機のケース設計01(CAD画面) |
|
各ピースの間隔を空けると下図のようになります。各パーツは下の方からベースプレート、サイドパーツ、トッププレートと呼ぶことにします。
Z80PicCompact開発機のケース設計02(CAD画面) |
|
下図はスケルトン表示になります。ベースプレートとトッププレートはネジでサイドパーツに固定します。
Z80PicCompact開発機のケース設計03(CAD画面) |
|
今までとほとんど同じ状態ですがベースプレートに開発基板を取り付けた状態が下の写真です。TF カードは外した状態です。今回ケースを作成する際にTF コネクタを汎用基板に直付けしようと試みたのですが、失敗してコネクタを1個壊してしまったので従来通り市販のコネクタ基板を使うことにしました。
ベースプレートに取付けた開発基板 |
|
下の写真はサイドパーツを取り付けた後の状態です。汎用基板は四隅がベースプレートとサイドパーツで固定されます。
サイドパーツを取り付けた開発基板01 | サイドパーツを取り付けた開発基板02 |
|
|
左下の写真は TF カード基板を取り付けた状態のものでサイドパーツで支えられています。右下はベースプレート面の写真でネジの頭部が出っ張らないように頭部用のホールを設けています。
TF カード基板装着後 | ベースプレート面 |
|
|
トッププレートを取り付けた状態が下の写真です。本来であればアクリル板を CNC で加工して透明で文字入りのパネルにしたいのですが手抜きでトッププレートもFDM式の3Dプリンタで出力しました。以前、実験的にSLA式の3Dプリンタでパネル作成したこともありましたが、レジンは強度的にケース等には適さないということが判りました。
トッププレート取付け後 |
|
しかし、基板に実装した部品が全く見えないのも面白くないので今回使用しているフィラメントである透明の PETG での造形物を透明化する簡単な実験を行いました。
実験は次の二通りでやってみました。両者共に溶剤は手持ちのノルマルプロピルアルコール(NPA)を使い2倍程度に薄めて使いました。
- 2液式エポキシ接着剤でのコーティング
参考:「これは超便利!何でも強力にコーティングできる激安エポキシクリアの自作実験をご紹介します!」 - 透明のUVレジンでのコーティング
不要になったサイドパーツ部品にコーティングし評価しました。評価方法はペン型テスタのパネルに表示された "Auto" の文字の見え方で効果を判断しました(コーティング物からピンセットを使って約 1cm 離した状態で目視)。一応写真も撮りましたが、写真では目視での感覚をあまり表現できていません。
結果を下表に示します。評価は5段階で数字が大きい程、良い結果ということにしています。
上記表の結果から No5 の手法でトッププレートをコーティングしてみました。片面はベッドに接している平らな面なのでベッドと反対側のみコーティングしました。結果が下の写真です。
トッププレートをコーティング後の状態 |
|
評価で用いたサイドパーツと違いトッププレートはメッシュ状に積層されているのでメッシュ状に細かい気泡がありなかなか透明度は上がりませんでしたが、ICチップの位置が見えるようになりました。
「Pic24MC68Kマイコン(その8)ケース作成」の記事の最後の方に書いたように以前、透明の PETG フィラメントで作ったケースにエアブラシで UV カット塗料を塗布したことがあります。同じ材料で比較できていませんが効果は同レベルなのでは無いかと思います。今回の手法はエアブラシで塗料を塗布するよりはお手軽なので今後活用できる場面があるのではないかと思います。
★追記 2023/05/14 {
UV レジンをコーティングしたものはベトツキ感がなかなか取れない(レジンにも依存すると思いますが)という短所があったのでエポキシを使ってリベンジしてみました。
前回からの変更点は
更にエポキシの場合、乾くのが早いし、コーティング面がすぐにサラサラな状態になるというメリットがあります。
尚、筆を駄目にしたくないので割り箸と爪楊枝を使って塗布しています。
}
UV レジンをコーティングしたものはベトツキ感がなかなか取れない(レジンにも依存すると思いますが)という短所があったのでエポキシを使ってリベンジしてみました。
前回からの変更点は
- 濃度は高め
上記では2倍(エポキシと溶剤を等分)に希釈していましたが、コーティングで効果を上げるため少し濃いめ(エポキシ:溶剤=3:2程度)にし、塗布回数は1回にしました。
- 積層パターン
外面(一番下面と一番上面)の積層パターンをメッシュから同心円に変更しました。
- コーティング対象面
前回はベッド面はコーティングしていませんでしたが、今回はベッド面も含め両面にコーティングしました。
更にエポキシの場合、乾くのが早いし、コーティング面がすぐにサラサラな状態になるというメリットがあります。
エポキシでのトッププレートコーティング結果 |
|
尚、筆を駄目にしたくないので割り箸と爪楊枝を使って塗布しています。
}
[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]