① 法拉克數控銑床的g代碼。g代碼的格式
FANUC 銑床編程--G 代碼命令
1 G 代碼組及其含義
「模態代碼」 的功能在它被執行後會繼續維持,而 「一般代碼」 僅僅在收到該命令
時起作用。定義移動的代碼通常是「模態代碼」,像直線、圓弧和循環代碼。反之,像原點
返回代碼就叫「一般代碼」。
每一個代碼都歸屬其各自的代碼組。在「模態代碼」里,當前的代碼會被載入的同組代
碼替換。
[表 5.2-1] G 代碼組及解釋
( 帶 * 者表示是開機時會初始化的代碼。)
2 G 代碼解釋
快速定位(G00)
1. 格式
這個命令把刀具從當前位置移動到命令指定的位置 (在絕對坐標方式下), 或者移動到
某個距離處 (在增量坐標方式下)。
2. 非直線切削形式的定位
我們的定義是:採用獨立的快速移動速率來決定每一個軸的位置。刀具路徑不是直線,
根據到達的順序,機器軸依次停止在命令指定的位置。
3. 直線定位
刀具路徑類似直線切削(G01) 那樣,以最短的時間(不超過每一個軸快速移動速率)定
位於要求的位置。
圖5.2-1
4. 舉例
N10 G00 X-100 Y-100 Z65
直線切削進給(G01)
1. 格式
這個命令將刀具以直線形式,按F代碼指定的速率,從它的當前位置移動到程序要求的
位置。F 的速率是程序中指定軸速率的復合速率。
圖5.2-2
2. 舉例
G01 G90 X-50. F100;或
G01 G91 X30. F100;
G01 G90 X-50. Y30. F100;或
G01 G91 X30. Y15. Z0 F100;
G01 G90 X-50. Y30. Z15. F100;
圓弧切削 (G02/G03 G17/G18/G19)
1. 格式
圓弧所在的平面用G17, G18 和G19 指令來指定。但是,只要已經在先前的程序塊里定
義了這些命令,也能夠省略。圓弧的回轉方向像下圖表示那樣,由 G02/G03 來指定。在圓弧回轉方向指定後,指派切削終點坐標。 G90 是指定在絕對坐標方式下使用此命令;而 G91
是在指定在增量坐標方式下使用此命令。另外,如果G90/G91 已經在先前程序塊里給出過,
可以省略。圓弧的終點用包含在命令施加的平面里的兩個軸的坐標值指定 ( 例如,在 XY
平面里,G17 用 X, Y 坐標值 ) 。 終點坐標能夠像 G00 和 G01 命令一樣地設置。圓弧中
心的位置或者其半徑應當在設定圓弧終點之後設置。圓弧中心設置為從圓弧起點的相對距
離,並且對應於 X,Y 和Z 軸表示為 I、 J 和 K。圓弧中心坐標值減去圓弧起點坐標值得
到的結果對應分配給 I、J、K。
2. 舉例
圖5.2-3
圓弧起點的 X 坐標值 ------------ 30.
圓弧中心的 X 坐標值 ------------ 10.
因此,「I」 就是 -20. (10 - 30 = -20)
圓弧起點的 Y 坐標值 ------------ 10.
圓弧中心的 Y 坐標值------------ 5.
因此,「J」 就是 -5. (5–10=-5)
結果,這個情況下圓弧編程指令如下所列:
G17 G03 G90 X5. Y25. I-20. J-5.;或者,
G17 G03 G91 X-25. Y15. I-20. J-5.;
或圓弧半徑編程指令:
G17 G03 G90 X5. Y25. R20.616.;或者,
G17 G03 G91 X-25. Y15. R20.616;
注意 1)把圓弧中心設置為 「I」, 「J」 和 「K」時,必須設置為圓弧起點到圓弧中心的
增量值。
注意 2)命令里的「I0」, 「J0」 和 「K0」 可以省略。偏移值指定要求。
自動原點返回 (G28/G30)
1. 格式
第一原點返回:
第二、三和四原點返回:
#P2, P3, P4: 選擇第二、第三和第四原點返回(如果被省略,系統自動選擇第二原點返
回)。
由 X, Y 和 Z 設定的位置叫做中間點。機床先移動到這個點,而後回歸原點。省略了
中間點的軸不移動;只有在命令里指派了中間點的軸執行其原點返回命令。在執行原點返回
命令時,每一個軸是獨立執行的,這就像快速移動命令(G00)一樣; 通常刀具路徑不是直
線。因此,要求對每一個軸設置中間點,以免機床在原點返回時與工件碰撞等意外發生。
2. 舉例
圖5.2-4
G28 (G30) G90 X150. Y200.;或者
G28 (G30) G91 X100. Y150.;
注意:在所給例子里, 去中間點的移動就像下面的快速移動命令一樣。
G00 G90 X150. Y200.;或者
G00 G91 X100. Y150.;
如果中間點與當前的刀具位置一致(例如,發出的命令是 - G28 G91 X0 Y0 Z0;),機
床就從其當前位置返回原點。如果是在單程序塊方式下運行,機床就會停在中間點;當中間
點與當前位置一致,它也會暫時停在中間點(即,當前位置)。
刀具半徑偏置功能 (G40/G41/G42)
1. 格式
當處理工件 (「A」) 時,就像下圖所示,刀具路徑 (「B」) 是基本路徑,與工件
(「A」)的距離至少為該刀具直徑的一半。此處,路徑 「B」 叫做由 A 經 R 補償的路徑。
因此,刀具半徑偏置功能自動地由編程給出的路徑 A 以及由分開設置的刀具偏置值,計算
出補償了的路徑B。就是說,用戶能夠根據工件形狀編制加工程序,同時不必考慮刀具直徑。
因此,在真正切削之前把刀具直徑設置為刀具偏置值;用戶能夠獲得精確的切削結果,就是
因為系統本身計算了精確補償的路徑。
圖5.2-5
在編程時用戶只要插入偏置向量的方向 (舉例說, G41:左側, G42: 右側)和偏置地
址 (例如, D2: 在「D」 後面是從 01 到 32 的兩位數字)。所以用戶只要輸入偏移號碼 D
(根據 MDI),只不過是由精確計算刀具直徑得出的半徑。
2. 偏置功能
表5.2-1
刀具長度偏置 (G43/G44/G49)
1. 格式
2. 偏置功能
首先用一把銑刀作為基準刀,並且利用工件坐標系的 Z 軸,把它定位在工件表面上,
其位置設置為 Z0。 (☼ 見 G92:坐標系設置)
請記住,如果程序所用的刀具較短,那麼在加工時刀具不可能接觸到工件,即便機床移
動到位置 Z0。反之,如果刀具比基準刀具長,有可能引起與工件碰撞損壞機床。為了防止
出現這種情況,把每一把刀具與基準刀具的相對長度差輸入到刀具偏置內存,並且在程序里
讓機床執行刀具長度偏置功能。
表5.2-2
在設置偏置的長度時,使用正/負號。如果改變了 (+/-) 符號, G43 和 G44 在執行時
會反向操作。因此,該命令有各種不同的表達方式。舉例說:
首先,遵循下列步驟測量刀具長度:
1.把工件放在工作台上。
2.更換要測量的刀具
3.調整基準刀具軸線,使它接近工件;把該刀具的前端調整到工件表面上。
4.此時 Z 軸的相對坐標系的坐標作為刀具偏置值輸入偏置菜單。
通過這么操作,如果刀具短於基準刀具時偏置值被設置為負值;如果長於基準刀具則為
正值。因此,在編程時僅有 G43 命令允許您做刀具長度偏置。
3. 舉例
G00 ZO;
G00 G43 Z0 H01;
G00 G43 Z0 H03;或者
G00 G44 Z0 H02; 或者
G00 G44 Z0 H02;
G43, G44 或 G49 命令一旦被發出,它們的功能會保持著,因為它們是 「模態命令」。
因此, G43 或 G44 命令在程序里緊跟在刀具更換之後一旦被發出;那麼 G49 命令可能在
該刀具加工結束,更換刀具調用。
注意 1) 在用 G43 (G44) H 或者用 G 49 命令的指派來省略 Z 軸移動命令時,, 偏置操作
就會像 G00 G91 Z0 命令指派的那樣執行。也就是說,用戶應當時常小心謹慎,因為它就像
有刀具長度偏置值那樣移動。
注意 2) 用戶除了能夠用 G49 命令來取消刀具長度補償,還能夠用偏置號碼 H0 的設置
(G43/G44 H0) 來獲得同樣效果。
注意 3) 若在刀具長度補償期間修改偏置號碼,先前設置的偏置值會被新近賦予的偏置值替
換。
選擇機床坐標系 (G53)
1. 格式
2. 功能
刀具根據這個命令執行快速移動到機床坐標系裡的 X_Y_Z 位置。由於 G53 是 「一般」
G 代碼命令,僅僅在程序塊里有 G53 命令的地方起作用。
此外,它在絕對命令 (G90) 里有效,在增量命令里 (G91) 無效。為了把刀具移動到機
床固有的位置,像換刀位置,程序應當用 G53 命令在機床坐標系裡開發。
注意 (1) 刀具直徑偏置、刀具長度偏置和刀具位置偏置應當在它的 G53 命令調用之前提前
取消。否則,機床將依照設置的偏置值移動。
注意 (2) 在執行G53 指令之前,必須手動或者用G28 命令讓機床返回原點。這是因為機床
坐標系必須在G53 命令發出之前設定。
工件坐標系選擇(G54~G59)
1. 格式
2. 功能
圖5.2-6
通過使用 G54~G59 命令,最多可設置六個工件坐標系(1~6)。
在接通電源和完成了原點返回後,系統自動選擇工件坐標系 1 (G54) 。它們均為模態
指令,執行某個坐標系命令後將保持其有效性,直到其它坐標系指令發出。
圖5.2-7
高速深孔鑽循環(G73)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
Q_:每次切削進給的切削深度(無符號,增量)
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
進給孔底快速退刀。
圖5.2-8
3. 例題
圖5.2-9
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鑽頭,
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50
N040 G98 G73 Z-30 R1 Q2 F200 ;深孔鑽削,離工件表面1MM 處開始進給
每次切削2MM
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
攻左牙循環(G74)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
P_:暫停時間 (單位:毫秒)
F_:切削進給速度
K_:重復次數 (如果需要的話)
2. 功能
進給孔底主軸暫停正轉快速退刀。
圖5.2-10
3. 例題
如圖5.2-10
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鑽頭
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50
N040 G74 Z-30 R1 Q2 P2000 F200 ;攻牙循環
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
精鏜孔循環(G76)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
Q_:孔底的偏移量
P_:暫停時間 (單位:毫秒)
F_:切削進給速度
K_:重復次數 (如果需要的話)
2. 功能
進給孔底主軸定位停止快速退刀。
3. 例題
如圖5.2-9
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鑽頭
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50
N040 G98 G76 Z-30 R1 Q2 P2000 F200 ;鏜孔循環
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
取消固定循環進程 (G80)
1. 格式
2. 功能
這個命令取消固定循環,機床回到執行正常操作狀態。孔的加工數據,包括 R 點, Z 點
等等,都被取消;但是移動速率命令會繼續有效。
注意: 要取消固定循環方式,用戶除了發出G80 命令之外,還能夠用 G 代碼 01 組 (G00,
G01, G02, G03 等等) 中的任意一個命令。
定點鑽孔循環(G81)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
圖5.2-11
G81 命令可用於一般的孔加工。
3. 例題
如圖5.2-11
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鑽頭
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50
N040 G98 G81 Z-30 R1 F200 ;鑽孔循環
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
鑽孔循環(G82)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
P_:在孔底的暫停時間 (單位:毫秒)
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
圖5.2-12
G82 鑽孔循環,反鏜孔循環
3. 例題
圖5.2-13
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鑽頭
N030 G43 H1 Z50
N040 G98 G82 Z-30 R1 P2000 F200 ;鑽孔循環
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
深孔鑽削循環(G83)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
Q_:每次切削進給的切削深度
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
圖5.2-14
G83 中間進給孔底快速退刀。
3. 例題
如圖5.2-14
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鑽頭
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50
N040 G98 G83 Z-30 R1 Q2 F200 ;深孔鑽循環,每次鑽2MM
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
攻牙循環(G84)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
P_:暫停時間(單位:毫秒)
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
圖5.2-15
G84 進給孔底主軸反轉快速退刀。
3. 例題
圖5.2-16
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 絲攻
N010 G55 ;調用G55 工件坐標系
N020 M03 S800
N030 G43 H1 Z50 ;調用長度補償
N040 G84 Z-30 R5 P2000 F2 ;攻牙循環
N050 G80 Z50 ;取消固定循環
N060 M05
N070 M30
鏜孔循環(G85)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
圖5.2-17
G85 中間進給孔底快速退刀。
3. 例題
如圖5.2-17
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鏜刀
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50 ;調用長度補償
N040 G85 Z-30 R1 F200 ;鏜孔循環
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
鏜孔循環(G86)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
圖5.2-18
G86 進給孔底主軸停止快速退刀。
3. 例題
如圖5.2-18
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鏜刀
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50 ;調用長度補償
N040 G86 Z-30 R1 F200 ;鏜孔循環
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
反鏜孔循環(G81)
1. 格式
X_ Y:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
Q_:刀具偏移量
P_:暫停時間(單位:毫秒)
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
圖5.2-19
G87 進給孔底主軸正轉快速退刀。
3. 例題
如圖5.2-19
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鏜刀
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50 ;調用長度補償
N040 G87 Z-30 R1 Q2 P2000 F200 ;反鏜孔循環
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
定點鑽孔循環(G88)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
P_:孔底的暫停時間(單位:毫秒)
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
圖5.2-20
G88 進給孔底暫停,主軸停止快速退刀。
3. 例題
如圖5.2-20
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鑽頭
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50 ;調用長度補償
N040 G88 Z-30 R1 P2000 F200 ;定點鑽孔循環
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
鏜孔循環(G89)
1. 格式
X_ Y_:孔位數據
Z_:孔底深度(絕對坐標)
R_:每次下刀點或抬刀點 (絕對坐標)
P_:孔底的停刀時間(單位:毫秒)
F_:切削進給速度
K_:重復次數(如果需要的話)
2. 功能
圖5.2-21
G89 進給孔底暫停快速退刀。
3. 例題
如圖5.2-21
N005 G80 G90 G0 X0 Y0 M06 T1 ;換 Ø20 鏜刀
N010 G55 ;調用G55 工件坐標系
N020 M03 S1000
N030 G43 H1 Z50 ;調用長度補償
N040 G89 Z-30 R1 P2000 F200 ;鏜孔循環
N050 G80 G0 Z50 ;取消固定循環
N060 M05
N070 M30
絕對命令/增量命令 (G90/G91)
此命令設定指令中的 X, Y 和 Z 坐標是絕對值還是相對值,不論它們原來是絕對命令
還是增量命令。含有 G90 命令的程序塊和在它以後的程序塊都由絕對命令賦值; 而帶 G91
命令及其後的程序塊都用增量命令賦值。
② 起重機重量限制器如何設定
首先,需要有個知道重量的重物,清零。
1、按住設置鍵3秒,顯示為H0,按確認;
2、同時按住3秒,0000;
3、長按確認鍵;吊起重物;
4、按設置鍵3秒,顯示H0;
5、按 +鍵 ,H2,按確認;
6、用來調整重量;
7、長按確認鍵;
8、完畢。
③ 常見的無脊椎動物有什麼
常見的無脊椎動物有:
1、原生動物,如草履蟲、變形蟲等單細胞動物。
原生動物門(Protozoa)是動物界的1門,為最原始、最簡單、最低等的動物。
2、腔腸動物,如水螅、海葵、海蜇等。
刺胞動物門(Cnidaria)又稱刺細胞動物門,過去稱為腔腸動物門(Coelenterata),因為它的含義適用於刺胞動物及櫛水母動物,所以現多已廢棄不用;刺胞動物體呈輻射或兩輻射對稱,僅具二胚層,是最原始的後生動物。
3、扁形動物,如渦蟲、絛蟲、血吸蟲等。
扁形動物門是動物界的一個門,無脊椎動物,是一類兩側對稱,三胚層,無體腔,無呼吸系統、無循環系統,有口無肛門的動物。
4、線形動物,如蛔蟲、線蟲等。
Nemathelminthes 舊稱「圓形動物門」,動物界的一門。大部分為小形的蠕形動物,體通常呈長圓柱形,兩端尖細,不分節,具原體腔,消化道不彎曲,前端為口,後端為肛門,雌雄異體。
5、環節動物,如蚯蚓、沙蠶等。
環節動物門(學名:Annelida)在動物進化上發展到一個較高的階段,是高等無脊椎動物的開始,約有9,000種。體外有由表皮細胞分泌的角質膜,體壁有一外環肌層和一內縱肌層。通常有幾丁質的剛毛,按節排列。
擴展材料:
地球上無脊椎動物的出現至少早於脊椎動物1億年。大多數無脊椎動物化石見於古生代寒武紀,當時已有節肢動物的三葉蟲及腕足動物。隨後發展了古頭足類及古棘皮動物的種類。到古生代末期,古老類型的生物大規模絕滅。
中生代還存在軟體動物的古老類型(如菊石),到末期即逐漸絕滅,軟體動物現代屬、種大量出現。到新生代演化成現代類型眾多的無脊椎動物,而在古生代盛極一時的腕足動物至今只殘存少數代表(如海豆芽)。
④ 拉法拉利是什麼車
LaFerrari是法拉利推出的一款旗艦級超級跑車。
於2013年3月在日內瓦車展首次亮相,以取代法拉利Enzo車型,僅限量499台。LaFerrari擁有超凡極致的性能表現、空氣動力效率以及操控性,為超級跑車樹立了新的標桿。
LaFerrari採用被稱為HY-KERS的混合動力系統,一台6.3升V12自然吸氣引擎可輸出588千瓦的最大功率,電動機獨立輸出120千瓦動力,使得LaFerrari的聯合輸出功率高達708千瓦。LaFerrari的0-100km/h加速時間<3 秒,0-200km/h加速<7 秒,0-300km/h更只需15秒,極速高達350km/h以上。
laferrari由來:
「La」是義大利語里的定冠詞,跟英語中「the」一樣,所以LaFerrari按照字面上來說就是theFerrari的意思,法拉利的人說,之所以起這個名字,是因為他們認為法拉利就該是這個樣子,所以這就是法拉利,這是法拉利的代表。
就像是國外稱呼某某一家人,比如說詹姆斯一家人,他們會說「the James」,所以LaFerrari的意思自然就是代表了法拉利整個家族,LaFerrari就是法拉利,不僅僅只是一個車型而已。
⑤ 各晶系晶體定向、單形及聚形分析舉例
1.等軸晶系
等軸晶系晶體的對稱特點是皆有4L3;在不同的晶類中,分別選擇相互垂直且彼此相等的三個 L 4 或或L2 為晶軸。晶體常數特點是 a=b=c,α=β=γ=90°。
(1)六八面體晶類(m3 m):其對稱要素的赤平投影如圖 5-15。投影圖的最小重復單位是以 L4、L3、L2 為角頂的三角形(圖中以斜線標出)。據此,可以看出單形原始晶面與對稱要素和晶軸的相對位置共有7種(三角形的3個角頂、3條邊上和三角形內),從而可導出7種單形。當原始晶面垂直 L4、L3 和L 2時,可分別導出立方體{100}、八面體{111}和菱形十二面體{110},它們在固定的投影位置(分別在重復三角形的 3 個角頂)和具有固定的晶面指數,為定形。原始晶面垂直一個對稱面時,其位置可能有3種,它們的投影點分別位於三角形的3個邊上,所導出的單形為四六面體{hk 0}、四角三八面體{hkk}和三角三八面體{hhl},這三種單形的投影點的位置可分別沿著最小重復三角形的3條邊移動,從而使單形的面角和晶面指數也相應地改變,為變形。如四角三八面體{hkk}的投影點可以沿 L 4 和 L 3 為端點的三角形的一個邊移動,晶面指數可以為{211}、{311}(見圖 5-16)等等,面角也相應地改變,如211∧21=48°11′30″,211∧121=33°33′30″;311∧31=35° 5′45″,311∧131=50°28′45″。晶面指數{hkk}和形態的變化介於立方體{100}和八面體{111}(該兩單形的投影點位於此三角形邊的兩個端點)之間,當指數 k 值逐漸增大至 k=h 時,形號變為{111}即八面體,當 k 值逐漸縮小至 k=0時,形號變為{100}即立方體。同理,三角三八面體{hhl}在菱形十二面體{110}和八面體{111}之間變化,四六面體{hk 0}在立方體{100}和菱形十二面體{110}之間變化。投影點位於三角形之中的六八面體{hkl},當然也是變形,它的晶面指數和面角有更廣泛的變化范圍,晶面不與任何要素垂直或平行,為本晶類的一般形。
圖5-15 六八面體晶類對稱要素及單形的赤平投影
(2)六四面體晶類:與六八面體晶類相比,取消了相互垂直並分別平行(100)、(010)和(001)的3個對稱面。由赤平投影圖(圖5-17)不難看出,由於這3個對稱面的取消,則由它們分割成的8個象限的晶面將相間發育。這樣,除投影點位於象限界面上(即晶面垂直被取消的對稱面)的3處單形立方體{100}、菱形十二面體{110}和四六面體{hk 0}保持不變外,其餘四個單形都只能發育為半面象,即形號為{111}、{hkk}、{hhl}、{hkl}的單形,原來的六八面體晶類為八面體、四角三八面體、三角三八面體、六八面體,現發育成它們的半面象四面體、四角三四面體、三角三四面體、六四面體,並均有正負形之分。如八面體{111}具有8個晶面,而它的半面象正四面體{111}和負四面體各有4個晶面(圖5-18)。值得指出的是正負形與左右形不同的是它們只有定向上的不同而沒有形態上的差異。有時在同一晶體上可以有正形和負形同時存在而組成聚形 〔圖4-1(a)〕,但兩者晶面的性質不同,即正負四面體的聚形,不與八面體等同。
圖5-16 四角三八面體(示兩個變形)
圖5-17 六四面體晶類對稱要素及單形的赤平投影
(3)偏方復十二面體晶類(m3):與六八面體晶類對比,取消了 6 個軸間(二晶軸之間)對稱面和6個兩次軸,從而使作為晶軸的原3個四次軸變為兩次軸。從赤平投影圖(表 4-2)不難看出,晶面與所取消的對稱面垂直的立方體{100}、八面體{111}、菱形十二面體{110}和六八面體{hkl}的晶面是分布在本晶類所取消的對稱面兩側,只能發育半面象,即出現五角十二面體{hk 0}和偏方復十二面體{hkl},且它們都有正負形之分。圖5-11繪出了五角十二面體的正形與負形。
圖5-18 正四面體(a)、負四面體(b)、八面體與四面體晶面對比(c)
聚形分析舉例 在圖5-19中列舉了六八面體晶類(a)、(b)、(c)、偏方復十二面體晶類(d)、(e)和六四面體晶類(f)的聚形。
2.四方晶系
以惟一的四次軸做 Z 軸,以垂直 Z 軸並相互垂直的二次軸或對稱面法線或晶棱方向為 X、Y 軸。晶體常數的特點是 a=b≠c,α==γ=90°。
復四方雙錐晶類(4/mmm):本晶類對稱要素和單形原始晶面的赤平投影如圖5-20,陰影標出了最小重復單位,即以 L4 和兩個 L2 的出露點為角頂的三角形。單形原始晶面投影點有 7 種可能位置,它們是重復三角形的三個角頂{001}、{110}、{100},三條邊{hk 0}、{hhl}、{h 0 l}和三角形內{hkl}。垂直Z 軸的晶面的投影點位於基圓中心,導出單形平行雙面{001};垂直做為 X、Y軸夾角分角線的 L 2的晶面導出第一四方柱{110};垂直 X 軸(或 Y 軸)的晶面導出第二四方柱{100};這3種單形的投影點固定在重復三角形的角頂上是為定形。平行 Z 軸,其投影點位於四方柱{110}和{100}之間的基圓上的晶面導出單形復四方柱{hk 0};與 Z 軸斜交,投影點位於第一四方柱{110}和平行雙面{001}之間的直線上的晶面導出第一四方雙錐{hhl}(包括{111});與 Z 軸斜交,投影點位於第二四方柱{100}與平行雙面{001}之間的直線上的晶面導出第二四方雙錐{h 0 l}(包括{101});與 X、Y、Z 軸均斜交,不與任何對稱要素平行或垂直、投影點位於重復三角形之內的晶面,導出單形復四方雙錐{hkl},它是本晶類的一般形,以上4種單形為變形。
圖5-19 等軸晶系聚形舉例
四方晶系共有7個晶類,復四方雙錐晶類對稱程度最高。在其他晶類中由於對稱要素相對地減少,從而所導出的某些單形可視為上述單形的半面象。如在水平對稱面和 L2被取消的晶類(4、4 mm)中,出現了與上述雙錐對應的單錐,與上述平行雙面對應的單面;在只有對稱軸的組合而無對稱面的晶類(42)中,出現了復四方雙錐的半面象———四方偏方面體{hkl},它有左右形之分;在 Z 軸為的晶類中,8個象限(由晶軸劃分)的晶面相間地出現,從而形成了四方雙錐的半面象———正負四方四方體,在對稱型中出現了復四方雙錐的半面象———復四方偏三角面體{hkl};在無平行 Z 軸的對稱面的晶類(4/m)中出現復四方柱的半面象———第三四方柱{hk 0},復四方雙錐的半面象———第三四方雙錐{hkl},第一、第二、第三四方柱橫切面方位的對比見圖5-21;同理,在對稱型4中出現第三四方柱{hk 0},對稱型中出現第三四方柱{hk 0}和復四方雙錐的四分之一面象———第三四方四面體{hkl}。
依據各對稱型對稱要素赤平投影圖(表4-2)和各晶類單形表(表5-4),可進行四方晶系各晶類單形推導。
圖5-20 復四方雙錐晶類對稱要素及單形的赤平投影
圖5-21 三種四方柱的橫切面對比
從上述赤平投影的重復三角形的分析,我們獲得了四方晶系單形的7種可能形號。對四方晶系單形表(表5-4)進行橫向觀察,可總結出各形號可能代表的單形。{001}:平行雙面、單面;{110}:(第一)四方柱;{100}:(第二)四方柱;{hk 0}:復四方柱、(第三)四方柱;{hhl}:(第一)四方雙錐、(第一)四方單錐、(第一)四方四面體;{h0 l}:(第二)四方雙錐、(第二)四方單錐、(第二)四方四面體;{hkl}:復四方雙錐、復四方單錐、四方偏方面體、(第三)四方雙錐、(第三)四方單錐、(第三)四方四面體、復四方偏三角面體。
聚形分析舉例 圖5-22列出復四方雙錐晶類的4個聚形。
3.三方晶系及六方晶系
三方晶系有一個 L3;六方晶系有一個 L6 或。根據晶體對稱的特點,三、六方晶系要選擇四個晶軸,以惟一的高次軸(L3、L6、)為 Z 軸,另以垂直Z 軸並彼此相交的三個 L2或 P 的法線或平行晶棱的方向為 X、Y、U 軸。Z 軸直立,X 軸斜向觀察者的左前方(前端為正),U 軸斜向觀察者的右前方(後端為正),Y 軸呈左右方向。三個水平軸的正端交角均為120°,它們所居的平面與Z 軸垂直。晶體常數特點為 a=b≠c,α=β=90°,γ=120°。
圖5-22 四方晶系聚形舉例
圖5-23是復六方雙錐晶類(6/mmm)對稱要素的赤平投影圖,陰影標出了其重復三角形,三角形系以晶軸 Z和做為 X 與夾角分角線的 L2 的出露點為角頂的。根據三角形的3個角頂、3條邊和三角形內等7種單形原始晶面的投影位置,從而導出了三方晶系和六方晶系單形的7種可能形號。
根據表4-2所列的赤平投影圖和單形名稱表(表5-5、表5-6),用上述同樣的方法,可以導出三方和六方晶系各晶類所屬單形。概略說來,在對稱型中若為高次軸與垂直它的對稱面或二次軸組合時,可以導出雙錐;若高次軸單獨出現或只與平行它的對稱軸組合時,將導出單錐;若高次軸只與垂直它的二次軸組合時,導出偏方面體;在含有的對稱型中,出現菱面體,若有對稱麵包含,還可以導出復三方偏三角面體。
對表5-5、表5-6進行橫向觀察,可以總結出三方、六方晶系7種可能形號可能代表的單形。
(1)晶面垂直 Z 軸,即形號為{0001}的單形為平行雙面或單面。
晶面平行Z軸的位置有以下3種,它們導出3種形號的單形:
(2)晶面平行Z軸和一個水平軸,此時,晶面截另兩水平軸必定等長,形號為。單形可能為:第一六方柱、第一三方柱。
(3)晶面平行Z軸並垂直一個水平軸,此時晶面截另兩水平軸亦必定等長,形號為。可能導出的單形為:第二六方柱、第二三方柱。
圖5-23 復六方雙錐晶類對稱要素及單形的赤平投影圖
(4)晶面平行 Z 軸並截三個水平軸不等長,形號為。可能導出的單形為:第三六方柱、第三三方柱、復六方柱、復三方柱。
第一、第二和第三六方柱的相對位置如圖5-24所示。
圖5-24 三種六方柱橫切面的對比
與上述柱面的3種位置相應,而與Z軸斜交的晶面也有如下3種位置:
(5)晶面與Z軸斜交,與一個水平軸平行,此時晶面截另兩個水平軸必定等長,形號為}(包括。單形可能為:第一六方雙錐、第一六方單錐、第一三方雙錐、第一三方單錐、第一菱面體。
(6)晶面與Z軸斜交,並截兩個水平軸相等,設其截距為1,則在另一水平軸上的截距為1/2,形號為(包括)。可能的單形為:第二六方雙錐、第二六方單錐、第二三方雙錐、第二三方單錐、第二菱面體。
(7)晶面與 Z 軸斜交,並截3水平軸不等長,形號為。可能的單形為:第三六方雙錐、第三六方單錐、第三三方雙錐、第三三方單錐、第三菱面體、復六方雙錐、復六方單錐、復三方雙錐、復三方單錐、復三方偏三角面體、六方偏方面體、三方偏方面體,共12種單形。它們是其所屬晶類的一般形。
聚形分析舉例 圖5-25列出了復六方雙錐晶類(a)和復三方偏三角面體晶類(b)、(c)、(d)的4種聚形。
圖5-25 三方、六方晶系聚形舉例
4.斜方晶系
斜方晶系無高次軸,L2或P多於一個。以相互垂直的3L2為X、Y、Z軸;對於L22P對稱型,以L2為Z軸,P的法線為X、Y軸。晶體常數特點是:a≠b≠c,α=β=γ=90°
應當指出對屬於 mmm和222兩個對稱型的晶體來說,符合上述原則的定向方法可以有六種。如圖5-26所示,同樣一斜方晶胞,可以出現6種不同的定向。定向不同,a、b、c 相互顛倒,軸率數字不同(一般軸率以 b 做為1),晶面符號各異。以重晶石為例,圖 5-27 表示了它的兩種定向和形號,在第一種定向(a)中,軸率 a∶b∶c=1.6304∶1∶1.3136;在第二種定向(b)中,軸率 a∶b∶c=1.2412∶1∶0.7612。
圖5-26 斜方晶系中的6種不同定向
圖5-27 重晶石的兩種定向
圖5-28 斜方晶系聚形舉例
斜方晶系單形及形號,它們在各晶類中的分布參看錶5-3。各對稱型對稱要素及一般形的赤平投影見表4-2。
單面{001}、雙面{0 kl}或{h 0 l}:在本晶系只見於斜方單錐(mm)晶,類。
圖5-29 單斜晶系聚形舉例
圖5-30 三斜晶系聚形舉例
平行雙面{100}、{010}、{001}:可以垂直於任一晶軸出現。它可以在本晶系所有晶類中出現。
斜方柱{0 kl}、{h 0 l}、{hk 0}:可以平行於任一晶軸出現,亦見於本晶系所有晶類。柱面角不定,相間地相等,橫切面呈菱形。
斜方雙錐、斜方單錐和斜方四面體:它們的形號皆為{hkl},為一般形:分別僅見於本晶系斜方雙錐晶類(mmm)、斜方單錐晶類(mm)和斜方四面體晶類(222)。
聚形分析舉例 圖5-28列出了斜方雙錐晶類的三種聚形。
5.單斜晶系
單斜晶系無高次軸,L2和P不多於一個。以L2或P的法線為Y軸,以垂直Y軸的兩晶棱方向為X、Z軸。晶體常數特點是:a≠b≠c,α=γ=90°,β>90°。
單斜晶系單形及形號在各晶類的分布見表5-2。各對稱型對稱要素及一般形的赤平投影見表4-2。在 L2 和 P 對稱型中有許多種方位的單面、雙面和平行雙面;在 L 2 PC 對稱型中則僅有斜方柱{hkl}、{0 kl}、{hk 0}和平行雙面{h 0 l}、{100}、{010}、{001}。
聚形分析舉例 圖5-29列出了斜方柱晶類的3種聚形。
6.三斜晶系
三斜晶系無對稱軸和對稱面。單面晶類從晶體外形來看不對稱,但它內部具有格子構造,從這種意義來說,本類晶體還是具有對稱性的。選不在一個平面上,且近於垂直的3個晶棱的方向為X、Y、Z軸。晶體常數特點是:a≠b≠c,α≠β≠γ≠90°。
單形及形號在各晶類中的分布見表5-1。對稱要素和一般形的赤平投影見表4-2。
單面僅見於單面晶類(1);平行雙面僅見於平行雙面晶類。
如圖5-30列出了平行雙面晶類的兩個聚形。
⑥ 現澆箱梁底板混凝土標高怎麼控制措施
焊鋼筋,拉線控制,或者激光水平儀控制。
⑦ 如何效驗雙法蘭液位變送器
要確定這個雙法蘭變送器的零點、量程是否准確,這個校準比較好辦,零點就是液位為零的時候差壓變送器的差壓也就是負壓側毛細管產生的壓力,這個只要在現場把正負壓側切出排污通大氣即可知道。滿程的校準這個要根據被測介質的密度及最高液位產生的壓力把其與零點相加的出得差壓值,這個可以用太高正壓側法蘭的辦法進行校準,也可以用壓力校準儀器進行。
變送器(transmitter)是把感測器的輸出信號轉變為可被控制器識別的信號(或將感測器輸入的非電量轉換成電信號同時放大以便供遠方測量和控制的信號源)的轉換器。感測器和變送器一同構成自動控制的監測信號源。不同的物理量需要不同的感測器和相應的變送器。變送器的種類很多,用在工控儀表上面的變送器主要有溫度變送器、壓力變送器、流量變送器、電流變送器、電壓變送器等等。
⑧ 前端說的MDN是什麼意識,全稱是什麼
Mozilla 開發者社區(MDN)是一個完整的學習平台,你可以在這里深入學習Web技術以及能夠驅動Web的軟體,包括:
網路標准(例如:CSS、HTML 和 JavaScript)
開發開放網路應用
開發 Firefox 附加組件。
前端即網站前台部分,運行在PC端,移動端等瀏覽器上展現給用戶瀏覽的網頁。隨著互聯網技術的發展,HTML5,CSS3,前端框架的應用,跨平台響應式網頁設計能夠適應各種屏幕解析度,合適的動效設計,給用戶帶來極高的用戶體驗。
HTML、CSS、JavaScript這三個是前端開發中最基本也是最必須的三個技能。前端的開發中,在頁面的布局時, HTML將元素進行定義,CSS對展示的元素進行定位,再通過JavaScript實現相應的效果和交互。雖然表面看起來很簡單,但這裡面需要掌握的東西絕對不會少。在進行開發前,需要對這些概念弄清楚、弄明白,這樣在開發的過程中才會得心應手。
HTML
指的是超文本標記語言 (Hyper Text Markup Language),這個也是我們網頁最常用普通的語言了,經歷了多個版本的發展,已經發展到5.0版了,得力於W3C建立的標准和規范
⑨ 七年級下冊英語語法知識人教版
1,,, http://wenku..com/view/96ed37225901020207409c2b.html12, 七年級下冊英語語法點總結(1)
七年級下冊英語語法點總結(1)
分類:英語學習
Unit 1 Where』s your pen pal from?
一.短語:
1 .be from = come from 來自於----
2. live in 居住在---
3. on weekends 在周末
4 .write to sb = write a letter to sb 給某人寫信;寫信給某人
5 .in the world 在世界上 in China 在中國
6.pen pal 筆友 14 years old 14歲 favorite subject 最喜歡的科目
7.the United States 美國 the United Kingdom 英國 New York 紐約
8.speak English 講英語 like and dislike 愛憎
9.go to the movies 去看電影 play sports 做運動
二.重點句式:
1 Where』s your pen pal from? = Where does your pen pal from/
2 Where does he live?
3 What language(s) does he speak?
4 I want a pen pal in China.
5 I can speak English and a little French.
6 Please write and tell me about yourself.
7 Can you write to me soon?
8 I like going to the movies with my friends and playing sports.
三.本單元的國家,人民、語言對應。
1 Canada---- Canadian---- English / French
2 France------ French------French
3 Japan------Japanese----Japanese
4 Australia----Australian----- English
5 the United States------ American---- English
6 the United Kingdom---British----- Enghish
Unit 2 Where』s the post office?
一. Asking ways: (問路)
1. Where is (the nearest) ……? (最近的)……在哪裡?
2. Can you tell me the way to ……? 你能告訴我去……的路嗎?
3. How can I get to ……? 我怎樣到達……呢?
4. Is there …… near here / in the neighborhood? 附近有……嗎?
5. Which is the way to ……? 哪條是去……的路?
二.Showing the ways: (指路)
1. Go straight down / along this street. 沿著這條街一直走。
2. Turn left at the second turning. 在第二個路口向左轉。
3. You will find it on your right. 你會在你右手邊發現它。
4. It is about one hundred metres from here. 離這里大約一百米遠。
5. You』d better take a bus. 你最好坐公交車去。(You』d better+動詞原形)
三.片語
1. across from …… 在……的對面 across from the bank 在銀行的對面
2. next to…… 緊靠…… next to the supermarket 緊靠超市
3. between……and…… 在……和……之間
between the park and the zoo 在公園和動物園之間
among 表示位於三者或三者以上之間
4. in front of…… 在……前面 There is a tree in front of the classroom.
課室前面有棵樹。
in the front of…… 在……(內)的前部 There is a desk in the front of the classroom.
課室內的前部有張桌子。
5. behind…… 在……後面 behind my house 在我家後面
6. turn left/ right 向左/右拐
on the left/right of…… 在某物的左/右邊 on the left of our school 在我們學校的左邊
on one』s left/right 在某人的左/右邊 on my left 在我左邊
7. go straight 一直走
8. down /along…… 沿著……(街道) down/along Center Street 沿著中央街
9. in the neighborhood=near here 在附近
10 welcome to…… 歡迎來到……
11. take /have a walk 散步
12. the beginning of…… ……的開始,前端
at the beginning of…… 在……的開始,前端
in the beginning 起初,一開始
13. have fun=have a good time=enjoy oneself 玩得開心,過得愉快
我昨天玩得很開心。 I had fun yesterday.
I had a good time yesterday.
I enjoyed myself yesterday.
14. have a good trip 旅途愉快
15. take a taxi 坐計程車
16. 到達:get to +地方 get here/ there/ home 到這/那/家
arrive in +大地方 I arrive in Beijing.
arrive at +小地方 I arrive at the bank.
reach +地方
17.go across 從物體表面橫過 go across the street 橫過馬路
go through 從空間穿過 go through the forest 穿過樹林
18.on + 街道的名稱。 Eg: on Center Street
at + 具體門牌號+街道的名稱 Eg: at 6 Center Street
三.重難點解析
1.enjoy doing sth 享受做某事的樂趣,喜愛做某事
I enjoy reading. 我喜愛讀書。
到目前為止,我們學了兩個特殊的動詞finish和enjoy,都是要帶 doing.
I finish cleaning the room. 我掃完了這間屋子。
2.hope to do sth 希望做某事 I hope to pass this exam. 我希望通過這次考試。
hope +從句 I hope tomorrow will be fine. 我希望明天將會晴朗。
(從句即是一個小句子,這個小句子又放在大句子中,從屬於大句子,所以叫從句。如tomorrow will be fine是一個從句,它又放在I hope 的後面,形成句中有句。)
3. if 引導一個表示假設的句子。
If I have much money, I will go to the moon. 如果我有許多錢,我就會去月球。
If you are hungry, you can buy some food in the supermarket.
如果你餓了的話,你可以在超市買一些食物。
四.本單元的反義詞、近義詞配對
1new—old 2 quiet--- busy 3 dirty--- clean 4 big---- small
Unit 3 Why do you like koala bears?
一.重點片語
eat grass eat leaves be quiet very shy very smart very cute
play with her friends kind of South Africa other animals
at night in the day every day ring the day
二. 交際用語
1. Why do you like pandas? Because they』re very clever.
2. Why does he like koalas? Because they』re kind of interesting.
3. Where are lions from? They are from South Africa.
4. What other animals do you like?
I like dogs, too.
Why?
Because they』re friendly and clever.
5. Molly likes to play with her friends and eat grass.
6. She』s very shy.
7. He is from Australia.
8.He sleeps ring the day, but at night he gets up and eats leaves.
9.He usually sleeps and relaxes 20 hours every day.
10.Let』s see the pandas first.
11.They』re kind of interesting.
12.What other animals do you like?
13.Why do you want to see the lions?
三. 重點難點釋義
1、kind of 有點,稍微
Koala bears are kind of shy. 考拉有點害羞。
kind 還有「種類」的意思
如:各種各樣的 all kinds of
We have all kinds of beautiful flowers in our school.
2、China n. 中國 Africa n. 非洲
China 和Africa都是專有名詞,首字母都應該大寫,而且和介詞in連用。
There are many kinds of tigers in China.
There are many kinds of scary animals in Africa.
3、friendly adj. 友好的,和藹可親的
它是名詞friend的形容詞形式,常常和be動詞連用, be friendly。
The people in Cheng are very friendly.
4、with prep. 跟,同,和…在一起
I usually play chess with my father.
注意區別與and的用法,and通常用於連接主語或賓語,連接主語時,
如果有I, I通常放在 and 之後,如:
My father and I usually play chess together.
Play with 「和…一起玩耍」「玩…」
I often play with my pet dog.
Don』t play with water!
5、day和night 是一對反義詞,day 表示白天或一天,night表示夜或夜晚。
通常說in the day, ring the day, at night。
Koala bears often sleep ring the day and eat leaves at night.
6、leaf n. 葉子
復數形式為:leaves, 類似的變化還有:wife—wives, wolf—wolves,
knife—knives等。
7、hour n. 小時;點鍾
hour前邊通常加上冠詞an 表示「一個小時」, 即:an hour。
There are 24 hours in a day and 60minutes in an hour.
8、be from 來自…
be from = come from
Pandas are from China. = Pandas come form China.
9、meat n. (食用的)肉,為不可數名詞,表示「許多」時,使用much來修
飾,即:much meat
He eats much meat every day.
10、grass n. 草,為不可數名詞,表示「許多」時,使用much來修飾,即:much grass。
There is much grass on the playground.
四. 語法知識
特殊疑問句通常以「what」、「who」、「which」、「when」、「where」、「how」、「how old」、「how many」等開頭,對某一具體問題進行提問。
特殊疑問句的基本構成有兩種情況:
1. 疑問句+一般疑問句結構。這是最常見的情況。例如:
What』s your grandfather』s telephone number? 你爺爺的電話號碼是多少?
Who is that boy with big eyes? 那個大眼睛的男孩是誰?
Which season do you like best? 你最喜歡哪個季節?
When is he going to play the piano? 他什麼時候彈鋼琴?
Where does he live? 他住在哪兒?
How are you? 你好嗎?
How old are you? 你多大了?
How many brothers and sisters do you have? 你有幾個兄弟姐妹?
2. 疑問句+陳述句結構。這時疑問詞作主語或修飾主語。例如:
Who is on ty today?
今天誰值日?
Which man is your teacher?
哪位男士是你的老師?
我們學過的What/How about+名詞/代詞+其他?也是特殊疑問句,它是一種省略結構。
例如:
I like English. What/How about you? 我喜歡英語。你呢?
What about playing basketball? 打籃球怎麼樣?
Unit 4 I want to be an actor.
一.短語:
1 want to do sth 想要作某事
2 give sb sth = give sth to sb 給某人某物 / 把某物給某人
3 help sb do sth 幫助某人作某事 Eg: I want to help my mother do some housework at home.
4 help sb with sth 幫助某人謀事 Eg: I want to help my mother with some housework at home
5 in the day 在白天
6 at night 在晚上
7 talk with/ to sb 和----談話
8 be busy doing sth 忙於做某事 Eg: He is busy listening to the teacher.
9 in a hospital 在醫院l
10 work/ study hard 努力工作
11 Evening Newspaper 晚報
二.重點句式及注意事項:
1 詢問職業的特殊疑問詞是what;有三種主要句式
① What + is / are + sb?
② What + does/ do + sb + do?
③ What + is/ are + 名詞所有格/ 形容詞性物主代詞 + job?
2 People give me their money or get their money from me.
3 Sometimes I work in the day and sometimes at night.
4 I like talking to people.
5 I work late. I』m very busy when people go out to dinners.
6 Where does your sister work?
7 then we have a job for you as a waiter.
8 Do you want to work for a magazine? Then come and work for us as a reporter.
9 Do you like to work evenings and weekends?
10 We are an international school for children of 5-12.
⑩ 如何用PyTorch實現遞歸神經網路
從 Siri 到谷歌翻譯,深度神經網路已經在機器理解自然語言方面取得了巨大突破。這些模型大多數將語言視為單調的單詞或字元序列,並使用一種稱為循環神經網路(recurrent neural network/RNN)的模型來處理該序列。但是許多語言學家認為語言最好被理解為具有樹形結構的層次化片語,一種被稱為遞歸神經網路(recursive neural network)的深度學習模型考慮到了這種結構,這方面已經有大量的研究。雖然這些模型非常難以實現且效率很低,但是一個全新的深度學習框架 PyTorch 能使它們和其它復雜的自然語言處理模型變得更加容易。
雖然遞歸神經網路很好地顯示了 PyTorch 的靈活性,但它也廣泛支持其它的各種深度學習框架,特別的是,它能夠對計算機視覺(computer vision)計算提供強大的支撐。PyTorch 是 Facebook AI Research 和其它幾個實驗室的開發人員的成果,該框架結合了 Torch7 高效靈活的 GPU 加速後端庫與直觀的 Python 前端,它的特點是快速成形、代碼可讀和支持最廣泛的深度學習模型。
開始 SPINN
鏈接中的文章(https://github.com/jekbradbury/examples/tree/spinn/snli)詳細介紹了一個遞歸神經網路的 PyTorch 實現,它具有一個循環跟蹤器(recurrent tracker)和 TreeLSTM 節點,也稱為 SPINN——SPINN 是深度學習模型用於自然語言處理的一個例子,它很難通過許多流行的框架構建。這里的模型實現部分運用了批處理(batch),所以它可以利用 GPU 加速,使得運行速度明顯快於不使用批處理的版本。
SPINN 的意思是堆棧增強的解析器-解釋器神經網路(Stack-augmented Parser-Interpreter Neural Network),由 Bowman 等人於 2016 年作為解決自然語言推理任務的一種方法引入,該論文中使用了斯坦福大學的 SNLI 數據集。
該任務是將語句對分為三類:假設語句 1 是一幅看不見的圖像的准確標題,那麼語句 2(a)肯定(b)可能還是(c)絕對不是一個准確的標題?(這些類分別被稱為蘊含(entailment)、中立(neutral)和矛盾(contradiction))。例如,假設一句話是「兩只狗正跑過一片場地」,蘊含可能會使這個語句對變成「戶外的動物」,中立可能會使這個語句對變成「一些小狗正在跑並試圖抓住一根棍子」,矛盾能會使這個語句對變成「寵物正坐在沙發上」。
特別地,研究 SPINN 的初始目標是在確定語句的關系之前將每個句子編碼(encoding)成固定長度的向量表示(也有其它方式,例如注意模型(attention model)中將每個句子的每個部分用一種柔焦(soft focus)的方法相互比較)。
數據集是用句法解析樹(syntactic parse tree)方法由機器生成的,句法解析樹將每個句子中的單詞分組成具有獨立意義的短語和子句,每個短語由兩個詞或子短語組成。許多語言學家認為,人類通過如上面所說的樹的分層方式來組合詞意並理解語言,所以用相同的方式嘗試構建一個神經網路是值得的。下面的例子是數據集中的一個句子,其解析樹由嵌套括弧表示:
( ( The church ) ( ( has ( cracks ( in ( the ceiling ) ) ) ) . ) )
這個句子進行編碼的一種方式是使用含有解析樹的神經網路構建一個神經網路層 Rece,這個神經網路層能夠組合詞語對(用詞嵌入(word embedding)表示,如 GloVe)、 和/或短語,然後遞歸地應用此層(函數),將最後一個 Rece 產生的結果作為句子的編碼:
X = Rece(「the」, 「ceiling」)
Y = Rece(「in」, X)
... etc.
但是,如果我希望網路以更類似人類的方式工作,從左到右閱讀並保留句子的語境,同時仍然使用解析樹組合短語?或者,如果我想訓練一個網路來構建自己的解析樹,讓解析樹根據它看到的單詞讀取句子?這是一個同樣的但方式略有不同的解析樹的寫法:
The church ) has cracks in the ceiling ) ) ) ) . ) )
或者用第 3 種方式表示,如下:
WORDS: The church has cracks in the ceiling .
PARSES: S S R S S S S S R R R R S R R
我所做的只是刪除開括弧,然後用「S」標記「shift」,並用「R」替換閉括弧用於「rece」。但是現在可以從左到右讀取信息作為一組指令來操作一個堆棧(stack)和一個類似堆棧的緩沖區(buffer),能得到與上述遞歸方法完全相同的結果:
1. 將單詞放入緩沖區。
2. 從緩沖區的前部彈出「The」,將其推送(push)到堆棧上層,緊接著是「church」。
3. 彈出前 2 個堆棧值,應用於 Rece,然後將結果推送回堆棧。
4. 從緩沖區彈出「has」,然後推送到堆棧,然後是「cracks」,然後是「in」,然後是「the」,然後是「ceiling」。
5. 重復四次:彈出 2 個堆棧值,應用於 Rece,然後推送結果。
6. 從緩沖區彈出「.」,然後推送到堆棧上層。
7. 重復兩次:彈出 2 個堆棧值,應用於 Rece,然後推送結果。
8. 彈出剩餘的堆棧值,並將其作為句子編碼返回。
我還想保留句子的語境,以便在對句子的後半部分應用 Rece 層時考慮系統已經讀取的句子部分的信息。所以我將用一個三參數函數替換雙參數的 Rece 函數,該函數的輸入值為一個左子句、一個右子句和當前句的上下文狀態。該狀態由神經網路的第二層(稱為循環跟蹤器(Tracker)的單元)創建。Tracker 在給定當前句子上下文狀態、緩沖區中的頂部條目 b 和堆棧中前兩個條目 s1\s2 時,在堆棧操作的每個步驟(即,讀取每個單詞或閉括弧)後生成一個新狀態:
context[t+1] = Tracker(context[t], b, s1, s2)
容易設想用你最喜歡的編程語言來編寫代碼做這些事情。對於要處理的每個句子,它將從緩沖區載入下一個單詞,運行跟蹤器,檢查是否將單詞推送入堆棧或執行 Rece 函數,執行該操作;然後重復,直到對整個句子完成處理。通過對單個句子的應用,該過程構成了一個大而復雜的深度神經網路,通過堆棧操作的方式一遍又一遍地應用它的兩個可訓練層。但是,如果你熟悉 TensorFlow 或 Theano 等傳統的深度學習框架,就知道它們很難實現這樣的動態過程。你值得花點時間回顧一下,探索為什麼 PyTorch 能有所不同。
圖論
圖 1:一個函數的圖結構表示
深度神經網路本質上是有大量參數的復雜函數。深度學習的目的是通過計算以損失函數(loss)度量的偏導數(梯度)來優化這些參數。如果函數表示為計算圖結構(圖 1),則向後遍歷該圖可實現這些梯度的計算,而無需冗餘工作。每個現代深度學習框架都是基於此反向傳播(backpropagation)的概念,因此每個框架都需要一個表示計算圖的方式。
在許多流行的框架中,包括 TensorFlow、Theano 和 Keras 以及 Torch7 的 nngraph 庫,計算圖是一個提前構建的靜態對象。該圖是用像數學表達式的代碼定義的,但其變數實際上是尚未保存任何數值的佔位符(placeholder)。圖中的佔位符變數被編譯進函數,然後可以在訓練集的批處理上重復運行該函數來產生輸出和梯度值。
這種靜態計算圖(static computation graph)方法對於固定結構的卷積神經網路效果很好。但是在許多其它應用中,有用的做法是令神經網路的圖結構根據數據而有所不同。在自然語言處理中,研究人員通常希望通過每個時間步驟中輸入的單詞來展開(確定)循環神經網路。上述 SPINN 模型中的堆棧操作很大程度上依賴於控制流程(如 for 和 if 語句)來定義特定句子的計算圖結構。在更復雜的情況下,你可能需要構建結構依賴於模型自身的子網路輸出的模型。
這些想法中的一些(雖然不是全部)可以被生搬硬套到靜態圖系統中,但幾乎總是以降低透明度和增加代碼的困惑度為代價。該框架必須在其計算圖中添加特殊的節點,這些節點代表如循環和條件的編程原語(programming primitive),而用戶必須學習和使用這些節點,而不僅僅是編程代碼語言中的 for 和 if 語句。這是因為程序員使用的任何控制流程語句將僅運行一次,當構建圖時程序員需要硬編碼(hard coding)單個計算路徑。
例如,通過詞向量(從初始狀態 h0 開始)運行循環神經網路單元(rnn_unit)需要 TensorFlow 中的特殊控制流節點 tf.while_loop。需要一個額外的特殊節點來獲取運行時的詞長度,因為在運行代碼時它只是一個佔位符。
# TensorFlow
# (this code runs once, ring model initialization)
# 「words」 is not a real list (it』s a placeholder variable) so
# I can』t use 「len」
cond = lambda i, h: i < tf.shape(words)[0]
cell = lambda i, h: rnn_unit(words[i], h)
i = 0
_, h = tf.while_loop(cond, cell, (i, h0))
基於動態計算圖(dynamic computation graph)的方法與之前的方法有根本性不同,它有幾十年的學術研究歷史,其中包括了哈佛的 Kayak、自動微分庫(autograd)以及以研究為中心的框架 Chainer和 DyNet。在這樣的框架(也稱為運行時定義(define-by-run))中,計算圖在運行時被建立和重建,使用相同的代碼為前向通過(forward pass)執行計算,同時也為反向傳播(backpropagation)建立所需的數據結構。這種方法能產生更直接的代碼,因為控制流程的編寫可以使用標準的 for 和 if。它還使調試更容易,因為運行時斷點(run-time breakpoint)或堆棧跟蹤(stack trace)將追蹤到實際編寫的代碼,而不是執行引擎中的編譯函數。可以在動態框架中使用簡單的 Python 的 for 循環來實現有相同變數長度的循環神經網路。
# PyTorch (also works in Chainer)
# (this code runs on every forward pass of the model)
# 「words」 is a Python list with actual values in it
h = h0
for word in words:
h = rnn_unit(word, h)
PyTorch 是第一個 define-by-run 的深度學習框架,它與靜態圖框架(如 TensorFlow)的功能和性能相匹配,使其能很好地適合從標准卷積神經網路(convolutional network)到最瘋狂的強化學習(reinforcement learning)等思想。所以讓我們來看看 SPINN 的實現。
代碼
在開始構建網路之前,我需要設置一個數據載入器(data loader)。通過深度學習,模型可以通過數據樣本的批處理進行操作,通過並行化(parallelism)加快訓練,並在每一步都有一個更平滑的梯度變化。我想在這里可以做到這一點(稍後我將解釋上述堆棧操作過程如何進行批處理)。以下 Python 代碼使用內置於 PyTorch 的文本庫的系統來載入數據,它可以通過連接相似長度的數據樣本自動生成批處理。運行此代碼之後,train_iter、dev_iter 和 test_itercontain 循環遍歷訓練集、驗證集和測試集分塊 SNLI 的批處理。
from torchtext import data, datasets
TEXT = datasets.snli.ParsedTextField(lower=True)
TRANSITIONS = datasets.snli.ShiftReceField()
LABELS = data.Field(sequential=False)train, dev, test = datasets.SNLI.splits(
TEXT, TRANSITIONS, LABELS, wv_type='glove.42B')TEXT.build_vocab(train, dev, test)
train_iter, dev_iter, test_iter = data.BucketIterator.splits(
(train, dev, test), batch_size=64)
你可以在 train.py中找到設置訓練循環和准確性(accuracy)測量的其餘代碼。讓我們繼續。如上所述,SPINN 編碼器包含參數化的 Rece 層和可選的循環跟蹤器來跟蹤句子上下文,以便在每次網路讀取單詞或應用 Rece 時更新隱藏狀態;以下代碼代表的是,創建一個 SPINN 只是意味著創建這兩個子模塊(我們將很快看到它們的代碼),並將它們放在一個容器中以供稍後使用。
import torchfrom torch import nn
# subclass the Mole class from PyTorch』s neural network package
class SPINN(nn.Mole):
def __init__(self, config):
super(SPINN, self).__init__()
self.config = config self.rece = Rece(config.d_hidden, config.d_tracker)
if config.d_tracker is not None:
self.tracker = Tracker(config.d_hidden, config.d_tracker)
當創建模型時,SPINN.__init__ 被調用了一次;它分配和初始化參數,但不執行任何神經網路操作或構建任何類型的計算圖。在每個新的批處理數據上運行的代碼由 SPINN.forward 方法定義,它是用戶實現的方法中用於定義模型向前過程的標准 PyTorch 名稱。上面描述的是堆棧操作演算法的一個有效實現,即在一般 Python 中,在一批緩沖區和堆棧上運行,每一個例子都對應一個緩沖區和堆棧。我使用轉移矩陣(transition)包含的「shift」和「rece」操作集合進行迭代,運行 Tracker(如果存在),並遍歷批處理中的每個樣本來應用「shift」操作(如果請求),或將其添加到需要「rece」操作的樣本列表中。然後在該列表中的所有樣本上運行 Rece 層,並將結果推送回到它們各自的堆棧。
def forward(self, buffers, transitions):
# The input comes in as a single tensor of word embeddings;
# I need it to be a list of stacks, one for each example in
# the batch, that we can pop from independently. The words in
# each example have already been reversed, so that they can
# be read from left to right by popping from the end of each
# list; they have also been prefixed with a null value.
buffers = [list(torch.split(b.squeeze(1), 1, 0))
for b in torch.split(buffers, 1, 1)]
# we also need two null values at the bottom of each stack,
# so we can from the nulls in the input; these nulls
# are all needed so that the tracker can run even if the
# buffer or stack is empty
stacks = [[buf[0], buf[0]] for buf in buffers]
if hasattr(self, 'tracker'):
self.tracker.reset_state()
for trans_batch in transitions:
if hasattr(self, 'tracker'):
# I described the Tracker earlier as taking 4
# arguments (context_t, b, s1, s2), but here I
# provide the stack contents as a single argument
# while storing the context inside the Tracker
# object itself.
tracker_states, _ = self.tracker(buffers, stacks)
else:
tracker_states = itertools.repeat(None)
lefts, rights, trackings = [], [], []
batch = zip(trans_batch, buffers, stacks, tracker_states)
for transition, buf, stack, tracking in batch:
if transition == SHIFT:
stack.append(buf.pop())
elif transition == REDUCE:
rights.append(stack.pop())
lefts.append(stack.pop())
trackings.append(tracking)
if rights:
reced = iter(self.rece(lefts, rights, trackings))
for transition, stack in zip(trans_batch, stacks):
if transition == REDUCE:
stack.append(next(reced))
return [stack.pop() for stack in stacks]
在調用 self.tracker 或 self.rece 時分別運行 Tracker 或 Rece 子模塊的向前方法,該方法需要在樣本列表上應用前向操作。在主函數的向前方法中,在不同的樣本上進行獨立的操作是有意義的,即為批處理中每個樣本提供分離的緩沖區和堆棧,因為所有受益於批處理執行的重度使用數學和需要 GPU 加速的操作都在 Tracker 和 Rece 中進行。為了更干凈地編寫這些函數,我將使用一些 helper(稍後將定義)將這些樣本列表轉化成批處理張量(tensor),反之亦然。
我希望 Rece 模塊自動批處理其參數以加速計算,然後解批處理(unbatch)它們,以便可以單獨推送和彈出。用於將每對左、右子短語表達組合成父短語(parent phrase)的實際組合函數是 TreeLSTM,它是普通循環神經網路單元 LSTM 的變型。該組合函數要求每個子短語的狀態實際上由兩個張量組成,一個隱藏狀態 h 和一個存儲單元(memory cell)狀態 c,而函數是使用在子短語的隱藏狀態操作的兩個線性層(nn.Linear)和將線性層的結果與子短語的存儲單元狀態相結合的非線性組合函數 tree_lstm。在 SPINN 中,這種方式通過添加在 Tracker 的隱藏狀態下運行的第 3 個線性層進行擴展。
圖 2:TreeLSTM 組合函數增加了第 3 個輸入(x,在這種情況下為 Tracker 狀態)。在下面所示的 PyTorch 實現中,5 組的三種線性變換(由藍色、黑色和紅色箭頭的三元組表示)組合為三個 nn.Linear 模塊,而 tree_lstm 函數執行位於框內的所有計算。圖來自 Chen et al. (2016)。