So-net無料ブログ作成

シルクの文字を45度回転するには Part.6 [Altium VB Scripts]

マウント図として使えるようにTOPとBOTにある部品のDesignatorをシルクレイヤから
メカニカルレイヤに移動し45度回転させるスクリプトの話の続きです。

文字数ではなく部品のセンター位置と文字の基準位置との関係で処理をしています。
sin、cos、アークtanを使用すればXY方向のオフセット計算ができますが
半田面では一部分の計算が異なるので絶対値Absも使用しています。
どれも関数があるか心配でしたが、アークTan(タンジェント)はAtnという呼び名で
Altiumでも利用可能な関数でした。

三角関数がラジアンで処理されるので45度回転させる場合はそれに足算をしたいのですが
変換してからなので複雑なコーディングになります。

CompDes_Pos.png

基準位置が中心ではないディスクリートの抵抗アレーなどは計算したオフセット値が
大幅に異なるのでREF番号シルクが大幅に離れた位置になります。
そこでオフセット値の絶対値が1.5mmを超えた場合は実験的に決めたオフセット値を
数式に置き換えたもので対応しました。
文字数の増加とオフセット値は線形ではないので一部分にべき乗を使って調整しました。
また文字高さが0.6mmと0.8mmではその値も異なりXY方向でも異なるので複雑です。
その部分だけを示しておきます。

Checkbox3がチェックされるのは0.6mmのことで、DLnは文字数です。

If Checkbox3.checked then
 OFx = 0.08 + 0.1 * (DLn ^1.2)
OFy = OFx
Else
OFx = 0.18 + 0.1 * (DLn ^1.2)
OFy = OFx + 0.05
End if

Silk_Rot6.png

これでプログラミングは一応、終わりました。

nice!(0)  コメント(0)