2018年11月30日 星期五

Allegro電路板設計 - Layout時更新元件庫

(1). 先檢查Database,選擇"Tools" > "Database Check..."。

(2). 勾選"Update all DRC(including Batch)"與"Check shape outlines",按"Check",之後會產生一個報表,請檢查是否有錯誤。

(3). 更新元件庫,點選"Place" > "Update Symbols..."。

(4). 在Select definitions for update:中勾選元件庫路徑,再勾選"Update symbol padstacks",按"Refresh",更新元件庫。

2018年11月26日 星期一

Allegro電路板設計 - Via、Pad加入與刪除淚滴(Teardrop)

增加Teardrop主要是避免信號線的線寬突然變小而造成Crosstalk現象。

(1). 點選"Route" > "Gloss" > "Parameters..."。

(2). 點選"Fillet and tapered trace"左邊按鍵。

(3). 確認"Circular pads''、"Pins''、"Vias''、"T connections''有勾選,之後按"OK"。

(4). 在"Fillet and tapered trace"對應的"Run"勾選,之後按"Gloss"。

(5). 結果顯示如下圖所示。

(6). 刪除Teardrop,選擇"Route" > "Gloss" > "Delete Fillet"。

(7). 使用"滑鼠左鍵"按住,並框選PCB。

(8). "滑鼠左鍵"放開後,即可刪除Teardrop。

2018年11月13日 星期二

鍵盤事件

(1). 點選"控制項"。

(2). 在屬性視窗中點選"事件按鈕(閃電圖示)"。
(3). 選擇"KeyDown"、"KeyPress"或"KeyUP"事件"快按兩下"。
a. KeyDown事件: 鍵盤任意鍵按住不放時觸發。
b. KeyPress事件: 鍵盤字元鍵被按時觸發。
c. KeyUP事件: 鍵盤任意鍵按下放開時觸發。

(4). 輸入程式。
KeyDown範例:

if(e.KeyCode == Keys.Enter)
{
     ...............
}


KeyPress範例:

if(e.KeyCode == (char)Keys.A)
{
     ...............
}


KeyUP範例:

if(e.KeyCode == Keys.Enter)
{
     ...............
}

(5). 在Form1.cs下點選視窗外框,將"KeyPreview"改成"True"。

注意:

KeyEventArgs類別的屬性:
Alt 取得值,指出是否按下 ALT 鍵。
Control 取得值,指出是否按下 CTRL 鍵。
Handled 取得或設定值,指出是否處理事件。
KeyCode 取得 KeyDown 或 KeyUp 事件的鍵盤程式碼。
KeyData 取得 KeyDown 或 KeyUp 事件的按鍵資料。
KeyValue 取得 KeyDown 或 KeyUp 事件的鍵盤值。
Modifiers 取得 KeyDown 或 KeyUp 事件的輔助鍵旗標。 這些旗標是表示按下 CTRL、SHIFT 和 ALT 哪些按鍵組合。
Shift 取得值,指出是否按下 SHIFT 鍵。
SuppressKeyPress 取得或設定值,指出按鍵事件是否應該傳遞至基礎控制項。

Keys Enum(鍵盤列舉)
列舉常數值 KeyCode
Keys.D0~Keys.D9 48~57
Keys.A~Keys.Z 65~90
Keys.F1~Keys.F12 112~121
Keys.Left~Keys.Right 37、39
Keys.Up~Keys.Down 38、40
Keys.Enter~Keys.Space 13、32
Keys.ShiftKey 16
Keys.ControlKey 17
Keys.Escape 27