版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
變量
變量的定義變量變量主要分類位姿變量
實(shí)型變量
字符串變量變量主要分類位姿變量2位姿變量定義:
描述位姿信息的變量被稱為位姿變量。位姿變量僅在有賦值時(shí)才被定義。它會(huì)保持未定義狀態(tài)直到被賦予數(shù)值,如果執(zhí)行了含未定義變量的程序,會(huì)報(bào)出錯(cuò)。位姿變量定義:3位姿變量位姿變量在以下的情況中很有用:
相同的位姿數(shù)據(jù)被重復(fù)利用而沒有必要每次示教其位姿。
一個(gè)已定義的位姿變量可在不同的程序中使用。
一個(gè)已定義位姿變量可以被用來或被改變來定義一個(gè)不同的位姿。
計(jì)算值可被用作為位姿信息,以取代使用示教器對(duì)機(jī)器人進(jìn)行耗時(shí)的示教工作。
位姿變量可以自由命名,使程序變得更易讀。位姿變量位姿變量在以下的情況中很有用:4位姿變量的三種定義方法-監(jiān)控指令定義1)HERE指令把機(jī)器人的當(dāng)前位姿數(shù)據(jù)存儲(chǔ)在指定名稱下。示例1:使用關(guān)節(jié)位移值
變量名以#開頭,以區(qū)別于變換值。緊跟在指令后面,顯示當(dāng)前位姿的關(guān)節(jié)位移值:
>HERE#pose?JT1JT2JT3JT4JT5JT6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
變化嗎?(放棄請(qǐng)按RETURN鍵)?>
位姿變量的三種定義方法-監(jiān)控指令定義1)HERE指令把機(jī)器人5位姿變量的三種定義方法-監(jiān)控指令定義示例2:使用變換值
緊跟在指令后面,顯示當(dāng)前位姿的變換值:>HEREpose?X[mm]Y[mm]Z[mm]O[deg]A[deg]T[deg]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
變化嗎?(放棄請(qǐng)按RETURN鍵)?>
位姿變量的三種定義方法-監(jiān)控指令定義示例2:使用變換值6位姿變量的三種定義方法-監(jiān)控指令定義2)POINT指令用另一個(gè)已定義的位姿變量來定義一個(gè)位姿,或通過終端輸入數(shù)值來定義它。示例1:使用關(guān)節(jié)位移值
(定義一個(gè)新的、未定義過的變量)>POINT#pose?JT1JT2JT3JT4JT5JT60.0000.0000.0000.0000.0000.000變化嗎?(放棄請(qǐng)按RETURN鍵)?>
輸入新值,各值之間以逗號(hào)為分隔:xxx,xxx,xxx,xxx,xxx,xxx位姿變量的三種定義方法-監(jiān)控指令定義2)POINT指令用另一7位姿變量的三種定義方法-監(jiān)控指令定義示例2:使用關(guān)節(jié)位移值(改變一個(gè)已定義變量的值)>POINT#pose?JT1JT2JT3JT4JT5JT610.00020.00030.00040.00050.00040.000變化嗎?(放棄請(qǐng)按RETURN鍵)?
輸入要改變的值:
30,,,,20?
將JT1和JT5的值改變?yōu)?0和20。位姿變量的三種定義方法-監(jiān)控指令定義示例2:使用關(guān)節(jié)位8位姿變量的三種定義方法-監(jiān)控指令定義示例3:替換一個(gè)已定義變量的值>POINTpose_1=pose_2?JT1JT2JT3JT4JT5JT610.00020.00030.00040.00050.00040.000變化嗎?(放棄請(qǐng)按RETURN鍵)?>
顯示要定義給pose_1的值(Pose_2的最新值),按?鍵,將這個(gè)值設(shè)置給pose_1。位姿變量的三種定義方法-監(jiān)控指令定義示例3:替換一9位姿變量的三種定義方法-程序命令定義1)HERE命令將機(jī)器人的當(dāng)前位姿數(shù)據(jù)存儲(chǔ)到指定名稱下。
HEREpose注意:如果是關(guān)節(jié)位移值變量,變量名以#開始,如:#pick,#start。如果是變換值變量,變量名沒有前綴#,如:pick,start。2)POINT命令可用一個(gè)已定義的位姿來替代一個(gè)位姿變量。
POINTpose_1=pose_2
變量“pose_1”被已定義的變量“pose_2”的值代替,如果“pose_2”未定義則報(bào)出錯(cuò)。位姿變量的三種定義方法-程序命令定義1)HERE命令將機(jī)器10位姿變量的三種定義方法-使用復(fù)合變換值
復(fù)合變換值或相對(duì)變換值,即在兩個(gè)坐標(biāo)系之間的變換值,用在兩個(gè)或多個(gè)過渡坐標(biāo)系之間的變換值的組合來表達(dá)。
如“plate”是相對(duì)于基礎(chǔ)坐標(biāo)系的變換值的變量名,描述了平板上的坐標(biāo)系。如果有個(gè)相對(duì)于位置“plate””的物體的位姿被定義為“object”,那么該物體object相對(duì)于機(jī)器人基礎(chǔ)坐標(biāo)系的復(fù)合變換值,可以用“plate+object”來描述。位姿變量的三種定義方法-使用復(fù)合變換值復(fù)合變換11位姿變量的三種定義方法-使用復(fù)合變換值示例:
位姿變量的三種定義方法-使用復(fù)合變換值示例:
12位姿變量的三種定義方法-使用復(fù)合變換值(1)用示教器將機(jī)器人工具點(diǎn)動(dòng)到要命名為“plate”的位姿,然后輸入以下指令將此位姿定義為plate。
>HEREplate?(2)將機(jī)器人工具點(diǎn)動(dòng)到要命名為“object”的位姿,并輸入:
>HEREplate+object?
變換值“object”現(xiàn)在定義為相對(duì)于“plate”的當(dāng)前位姿(如果“plate”在此時(shí)仍未定義,“object”將不能被定義并且報(bào)出錯(cuò))。(3)將機(jī)械手移動(dòng)到撿起取出object的位姿,并輸入:
>HEREplate+object+pickup?(4)最后的命令定義相對(duì)于變換值“object”的位姿變量“pickup”。位姿變量的三種定義方法-使用復(fù)合變換值(1)用示教器將機(jī)器人13位姿變量的三種定義方法-使用復(fù)合變換值注意:
復(fù)合變換值通過幾個(gè)獨(dú)立變換值的“+”結(jié)合來定義。請(qǐng)?jiān)凇?”和變換值之間不要留任何空格。
用這種方法,你可以結(jié)合任意多的變換值。
如果機(jī)器人要在指定為相對(duì)于“object”的“pickup”位姿處撿起object,程序應(yīng)該這樣寫:
JMOVEplate+object+pickup
或
LMOVEplate+object+pickup位姿變量的三種定義方法-使用復(fù)合變換值注意:14位姿變量的三種定義方法-使用復(fù)合變換值說明:1.不要改變相對(duì)變換值表達(dá)式中的變換值變量的順序。
例如,如果變換值變量“b”被定義為相對(duì)于變換值變量“a”,表達(dá)式應(yīng)該為“a+b”,而不是“b+a”。2.上例中的位姿數(shù)據(jù)“object”和“pickup”被定義為了相對(duì)于其他位姿數(shù)據(jù)。因此,不要使用“JMOVEobject”或“LMOVEpickup”指令,除非確信它在程序中的目的和影響。位姿變量的三種定義方法-使用復(fù)合變換值說明:15位姿變量的三種定義方法-使用復(fù)合變換值
在重復(fù)使用復(fù)合變換值時(shí),請(qǐng)使用POINT命令來減少計(jì)算復(fù)合變換值的時(shí)間。
例如,要接近位姿“pickup”,然后向“pickup”位姿移動(dòng),可能輸入:JAPPROplate+object+pickup,100/接近“pickup”上方100 mmLMOVEplate+object+pickup/直線運(yùn)動(dòng)到“pickup”
然而,如果輸入以下命令,將可以節(jié)省計(jì)算時(shí)間:POINTx=plate+object+pickup/計(jì)算目標(biāo)位姿JAPPROx,100/接近目標(biāo)上方100mmLMOVEx/直線運(yùn)動(dòng)到目標(biāo)
這兩個(gè)程序的結(jié)果動(dòng)作相同,但是后者計(jì)算一次混合轉(zhuǎn)換,因此執(zhí)行時(shí)間更短。在這個(gè)非常簡單例子中,執(zhí)行時(shí)間的差異是很小的,但是在更復(fù)雜的程序中,它可產(chǎn)生很大的差異,并且可以縮短整個(gè)循環(huán)時(shí)間。位姿變量的三種定義方法-使用復(fù)合變換值在重復(fù)使用16實(shí)型變量的定義實(shí)型變量用賦值命令(=)來定義,給實(shí)型變量賦值的格式是:
Real_variable_name=numeric_value示例:a=10.5count=i*2+8Z[2]=Z[1]+5.2
左側(cè)的變量可以是數(shù)量變量(如計(jì)數(shù)),也可以是數(shù)組元素(如Z[2])。變量僅在賦值時(shí)定義。在賦值前,它一直處于未定義狀態(tài),如果執(zhí)行了含有未定義變量的程序,將報(bào)出錯(cuò)。
右側(cè)的數(shù)值可以是一個(gè)常數(shù)、一個(gè)變量或者是一個(gè)數(shù)學(xué)表達(dá)式。在處理賦值命令時(shí),先計(jì)算賦值命令的右側(cè)值,然后把這個(gè)值賦給左側(cè)的變量。實(shí)型變量的定義實(shí)型變量用賦值命令(=)來定義,給實(shí)型變量賦值17實(shí)型變量的定義如果命令左側(cè)的變量是一個(gè)新變量或以前從未被賦值過,右邊的值將被自動(dòng)賦值給該變量。如果左側(cè)變量是個(gè)已定義的變量,這個(gè)新值將替換此變量的當(dāng)前值。
例如,指令“x=3”賦值3給變量“x”。它讀作“賦值3給x”,而不是“x等于3”。下面的例子將清晰地解釋其處理過程:
x=x+1
如果此例是一個(gè)數(shù)學(xué)等式,讀作“x等于x加1”,但它沒有意義,作為賦值命令,它應(yīng)該讀作“賦值x加1給x”。這樣,先計(jì)算“x”的當(dāng)前值和1的和,然后把結(jié)果值作為一個(gè)新的數(shù)值賦值給“x”。因此,這個(gè)等式要求首先定義x,如下所示:x=3x=x+1
這時(shí),“x”的結(jié)果值為4。實(shí)型變量的定義如果命令左側(cè)的變量是一個(gè)新變量或18字符串變量的定義
字符串變量用賦值命令(=)定義,給字符串變量賦值的格式是:$string_variable=string_value示例:$a1=$a2$errormess[2]=“timeover”
左邊的字符變量可以是一個(gè)變量(如$name),也可以是數(shù)組元素(如$line[2])。只有當(dāng)變量在被創(chuàng)建了名字并被賦予數(shù)值時(shí),它才被定義。在賦值前,它一直處于未定義狀態(tài),如果執(zhí)行了含有未定義變量的程序,將報(bào)出錯(cuò)。字符串變量的定義字符串變量用賦值命令(=)定義,給字19字符串變量的定義
右邊的字符串可以是字符串常數(shù)、字符串變量或者是字符表達(dá)式。在處理賦值命令時(shí),先計(jì)算賦值命令右側(cè)的值,然后把這個(gè)值賦給左側(cè)的變量。$name=“KAWASAKIHEAVYINDUSTRIESLTD.”
在上述命令中,把“”括起來的的字符串賦值給變量“$name”,如果指令左側(cè)的變量以前未被用過,此字符串將被自動(dòng)賦值。如果左側(cè)的變量是個(gè)已定義的變量,這個(gè)命令將用右側(cè)的新字符串替換當(dāng)前的字符串。字符串變量的定義右邊的字符串可以是字符串常數(shù)、20TheEnd!TheEnd!21變量
變量的定義變量變量主要分類位姿變量
實(shí)型變量
字符串變量變量主要分類位姿變量23位姿變量定義:
描述位姿信息的變量被稱為位姿變量。位姿變量僅在有賦值時(shí)才被定義。它會(huì)保持未定義狀態(tài)直到被賦予數(shù)值,如果執(zhí)行了含未定義變量的程序,會(huì)報(bào)出錯(cuò)。位姿變量定義:24位姿變量位姿變量在以下的情況中很有用:
相同的位姿數(shù)據(jù)被重復(fù)利用而沒有必要每次示教其位姿。
一個(gè)已定義的位姿變量可在不同的程序中使用。
一個(gè)已定義位姿變量可以被用來或被改變來定義一個(gè)不同的位姿。
計(jì)算值可被用作為位姿信息,以取代使用示教器對(duì)機(jī)器人進(jìn)行耗時(shí)的示教工作。
位姿變量可以自由命名,使程序變得更易讀。位姿變量位姿變量在以下的情況中很有用:25位姿變量的三種定義方法-監(jiān)控指令定義1)HERE指令把機(jī)器人的當(dāng)前位姿數(shù)據(jù)存儲(chǔ)在指定名稱下。示例1:使用關(guān)節(jié)位移值
變量名以#開頭,以區(qū)別于變換值。緊跟在指令后面,顯示當(dāng)前位姿的關(guān)節(jié)位移值:
>HERE#pose?JT1JT2JT3JT4JT5JT6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
變化嗎?(放棄請(qǐng)按RETURN鍵)?>
位姿變量的三種定義方法-監(jiān)控指令定義1)HERE指令把機(jī)器人26位姿變量的三種定義方法-監(jiān)控指令定義示例2:使用變換值
緊跟在指令后面,顯示當(dāng)前位姿的變換值:>HEREpose?X[mm]Y[mm]Z[mm]O[deg]A[deg]T[deg]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
變化嗎?(放棄請(qǐng)按RETURN鍵)?>
位姿變量的三種定義方法-監(jiān)控指令定義示例2:使用變換值27位姿變量的三種定義方法-監(jiān)控指令定義2)POINT指令用另一個(gè)已定義的位姿變量來定義一個(gè)位姿,或通過終端輸入數(shù)值來定義它。示例1:使用關(guān)節(jié)位移值
(定義一個(gè)新的、未定義過的變量)>POINT#pose?JT1JT2JT3JT4JT5JT60.0000.0000.0000.0000.0000.000變化嗎?(放棄請(qǐng)按RETURN鍵)?>
輸入新值,各值之間以逗號(hào)為分隔:xxx,xxx,xxx,xxx,xxx,xxx位姿變量的三種定義方法-監(jiān)控指令定義2)POINT指令用另一28位姿變量的三種定義方法-監(jiān)控指令定義示例2:使用關(guān)節(jié)位移值(改變一個(gè)已定義變量的值)>POINT#pose?JT1JT2JT3JT4JT5JT610.00020.00030.00040.00050.00040.000變化嗎?(放棄請(qǐng)按RETURN鍵)?
輸入要改變的值:
30,,,,20?
將JT1和JT5的值改變?yōu)?0和20。位姿變量的三種定義方法-監(jiān)控指令定義示例2:使用關(guān)節(jié)位29位姿變量的三種定義方法-監(jiān)控指令定義示例3:替換一個(gè)已定義變量的值>POINTpose_1=pose_2?JT1JT2JT3JT4JT5JT610.00020.00030.00040.00050.00040.000變化嗎?(放棄請(qǐng)按RETURN鍵)?>
顯示要定義給pose_1的值(Pose_2的最新值),按?鍵,將這個(gè)值設(shè)置給pose_1。位姿變量的三種定義方法-監(jiān)控指令定義示例3:替換一30位姿變量的三種定義方法-程序命令定義1)HERE命令將機(jī)器人的當(dāng)前位姿數(shù)據(jù)存儲(chǔ)到指定名稱下。
HEREpose注意:如果是關(guān)節(jié)位移值變量,變量名以#開始,如:#pick,#start。如果是變換值變量,變量名沒有前綴#,如:pick,start。2)POINT命令可用一個(gè)已定義的位姿來替代一個(gè)位姿變量。
POINTpose_1=pose_2
變量“pose_1”被已定義的變量“pose_2”的值代替,如果“pose_2”未定義則報(bào)出錯(cuò)。位姿變量的三種定義方法-程序命令定義1)HERE命令將機(jī)器31位姿變量的三種定義方法-使用復(fù)合變換值
復(fù)合變換值或相對(duì)變換值,即在兩個(gè)坐標(biāo)系之間的變換值,用在兩個(gè)或多個(gè)過渡坐標(biāo)系之間的變換值的組合來表達(dá)。
如“plate”是相對(duì)于基礎(chǔ)坐標(biāo)系的變換值的變量名,描述了平板上的坐標(biāo)系。如果有個(gè)相對(duì)于位置“plate””的物體的位姿被定義為“object”,那么該物體object相對(duì)于機(jī)器人基礎(chǔ)坐標(biāo)系的復(fù)合變換值,可以用“plate+object”來描述。位姿變量的三種定義方法-使用復(fù)合變換值復(fù)合變換32位姿變量的三種定義方法-使用復(fù)合變換值示例:
位姿變量的三種定義方法-使用復(fù)合變換值示例:
33位姿變量的三種定義方法-使用復(fù)合變換值(1)用示教器將機(jī)器人工具點(diǎn)動(dòng)到要命名為“plate”的位姿,然后輸入以下指令將此位姿定義為plate。
>HEREplate?(2)將機(jī)器人工具點(diǎn)動(dòng)到要命名為“object”的位姿,并輸入:
>HEREplate+object?
變換值“object”現(xiàn)在定義為相對(duì)于“plate”的當(dāng)前位姿(如果“plate”在此時(shí)仍未定義,“object”將不能被定義并且報(bào)出錯(cuò))。(3)將機(jī)械手移動(dòng)到撿起取出object的位姿,并輸入:
>HEREplate+object+pickup?(4)最后的命令定義相對(duì)于變換值“object”的位姿變量“pickup”。位姿變量的三種定義方法-使用復(fù)合變換值(1)用示教器將機(jī)器人34位姿變量的三種定義方法-使用復(fù)合變換值注意:
復(fù)合變換值通過幾個(gè)獨(dú)立變換值的“+”結(jié)合來定義。請(qǐng)?jiān)凇?”和變換值之間不要留任何空格。
用這種方法,你可以結(jié)合任意多的變換值。
如果機(jī)器人要在指定為相對(duì)于“object”的“pickup”位姿處撿起object,程序應(yīng)該這樣寫:
JMOVEplate+object+pickup
或
LMOVEplate+object+pickup位姿變量的三種定義方法-使用復(fù)合變換值注意:35位姿變量的三種定義方法-使用復(fù)合變換值說明:1.不要改變相對(duì)變換值表達(dá)式中的變換值變量的順序。
例如,如果變換值變量“b”被定義為相對(duì)于變換值變量“a”,表達(dá)式應(yīng)該為“a+b”,而不是“b+a”。2.上例中的位姿數(shù)據(jù)“object”和“pickup”被定義為了相對(duì)于其他位姿數(shù)據(jù)。因此,不要使用“JMOVEobject”或“LMOVEpickup”指令,除非確信它在程序中的目的和影響。位姿變量的三種定義方法-使用復(fù)合變換值說明:36位姿變量的三種定義方法-使用復(fù)合變換值
在重復(fù)使用復(fù)合變換值時(shí),請(qǐng)使用POINT命令來減少計(jì)算復(fù)合變換值的時(shí)間。
例如,要接近位姿“pickup”,然后向“pickup”位姿移動(dòng),可能輸入:JAPPROplate+object+pickup,100/接近“pickup”上方100 mmLMOVEplate+object+pickup/直線運(yùn)動(dòng)到“pickup”
然而,如果輸入以下命令,將可以節(jié)省計(jì)算時(shí)間:POINTx=plate+object+pickup/計(jì)算目標(biāo)位姿JAPPROx,100/接近目標(biāo)上方100mmLMOVEx/直線運(yùn)動(dòng)到目標(biāo)
這兩個(gè)程序的結(jié)果動(dòng)作相同,但是后者計(jì)算一次混合轉(zhuǎn)換,因此執(zhí)行時(shí)間更短。在這個(gè)非常簡單例子中,執(zhí)行時(shí)間的差異是很小的,但是在更復(fù)雜的程序中,它可產(chǎn)生很大的差異,并且可以縮短整個(gè)循環(huán)時(shí)間。位姿變量的三種定義方法-使用復(fù)合變換值在重復(fù)使用37實(shí)型變量的定義實(shí)型變量用賦值命令(=)來定義,給實(shí)型變量賦值的格式是:
Real_variable_name=numeric_value示例:a=10.5count=i*2+8Z[2]=Z[1]+5.2
左側(cè)的變量可以是數(shù)量變量(如計(jì)數(shù)),也可以是數(shù)組元素(如Z[2])。變量僅在賦值時(shí)定義。在賦值前,它一直處于未定義狀態(tài),如果執(zhí)行了含有未定義變量的程序,將報(bào)出錯(cuò)。
右側(cè)的數(shù)值可以是一個(gè)常數(shù)、一個(gè)變量或者是一個(gè)數(shù)學(xué)表達(dá)式。在處理賦
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度柑橘滯銷產(chǎn)品線上推廣與“搶購”銷售合同3篇
- 2024瑜伽館瑜伽教練勞動(dòng)合同范本及教練休息時(shí)間規(guī)定3篇
- 2024版雞蛋簡單購銷合同
- 2025年度養(yǎng)老設(shè)施建設(shè)承包合同范本權(quán)威版4篇
- 2025年度智能交通信號(hào)控制系統(tǒng)研發(fā)與推廣合同4篇
- 2024知識(shí)產(chǎn)權(quán)許可使用合同許可人和被許可人
- 2025年度漁業(yè)生態(tài)循環(huán)承包經(jīng)營合同4篇
- 2024版魚苗的購銷合同范本
- 2025年度智慧能源管理系統(tǒng)承包合作協(xié)議范文4篇
- 2025年度醫(yī)院手術(shù)室設(shè)備供應(yīng)及承包運(yùn)營協(xié)議4篇
- 車險(xiǎn)理賠全解析
- 微粒貸逾期還款協(xié)議書范本
- Unit10l'mten!(練)新概念英語青少版StarterA
- 產(chǎn)業(yè)園區(qū)開發(fā)全流程實(shí)操解析
- NBT 47013.4-2015 承壓設(shè)備無損檢測 第4部分:磁粉檢測
- 羽毛球比賽對(duì)陣表模板
- 2024年上海市中考數(shù)學(xué)真題試卷及答案解析
- 2024年全國卷1高考理綜試題及答案
- 初中語文現(xiàn)代文閱讀訓(xùn)練及答案二十篇
- 農(nóng)村開荒土地承包權(quán)轉(zhuǎn)讓協(xié)議書
- 牙科門診病歷
評(píng)論
0/150
提交評(píng)論