以下函式使用了文字字串。
字元轉換:CHR(<Integer>)
此功能傳回由 ASCII 十進位值相應的字元組成的字串。
格式化的執行時間:ELAPSEDEXECUTIONTIME()
此函式傳回自測量程式或迷你程式開始執行起所消耗的時間。執行時間為執行 DCC 部份執行所用的時間;它不會新增由於使用者需要注意而暫停的時間。(這些包括註釋執行期間執行暫停或 PC-DMIS 資訊等。此外,錯誤消息可能會完全停止執行。)時間以「hh:mm:ss」格式返回。
透過向變數指派以下函式,可在測量程式或迷你程式中的任何時候記錄執行時間:
ASSIGN/V1=ELAPSEDEXECUTIONTIME()
分界的子字串位置:ELEMENT(<Integer>, <String1>, <String2>)
此功能以 string1 作爲分隔 string2 中的元素的分界文字,傳回 string2 的第 n 個子字串(元素)。
若 string2 爲「6, 12, 8, 4, 5」,而 string1 爲「,」。則以元素命令「6」、「12」、「8」、「4」、「5」可單獨擷取這 5 個元素。
具大小寫敏感性的字串比較:EQUAL(<String1>, <String2>)
此功能比較兩個字串(忽略大小寫)以確定二者是否相同。如字串相同,則其傳回整數 1,否則會傳回 0。
格式化:FORMAT(<String>,<Integer,double,or point>)
此函式有兩個運算式,並傳回格式化的字串,類似於在 C++ 中使用 sprintf 函式。
運算式 1 應爲 string 型,並包含一或三個格式限定符。如爲不同類型,運算式求值器會嘗試將其強制型轉爲 string 型。如果運算式 2 爲 integer 或 double 型,字串應有一個格式限定符;如果運算式 2 爲 point 型,則應有三個格式限定符(參閱下面的段落)。
運算式 2 應爲 integer、double 或 point 型。如使用了不同的類型,運算式值將爲 0。
Format 函式的格式限定符:
此格式限定符應與 C++ 編程語言中使用的 sprintf 函式的格式限定符的語法相同。
格式限定符由可選及必填欄位組成,語法爲:
%[旗標] [寬度] [. 精確度] 類型
格式限定符的每個欄位既可是單個字元,亦可是表徵特定格式選項的數值。最簡單的格式限定符僅使用百分比符號和一個類型字元(如 %d)。如果百分比符號後跟之以無意義的字元作爲格式欄位,則該字元會被複製到 STDOUT。例如,使用 %% 列印百分比符號字元。
可選的旗標、寬度及精確度欄位,將顯示在類型字元前,它們控制格式化的其他方面。這些可選欄位在下面進行了說明:
旗標
這些可選字元控制輸出調整及符號、空格、小數點及八進位/十六進位前置字串的列印。格式限定符中可顯示多個旗標。
可能的旗標有:
–
含義:在給定的欄位寬度中靠左對齊結果。
預設:靠右對齊。
+
含義:如果輸出值爲帶有符號的類型,則將符號(+ 或 –)前置於輸出值。
預設值:僅前置帶有負號 (–) 的值的符號。
0
含義:如果寬度有前置字元 0,則會新增零,直至到達最小寬度。如果顯示 0 與 –,0 予以忽略。如果指定 0 時還指定了整數格式 (i, u, x, X, o, d),0 予以忽略。
預設值:不填。
空格 (' ')
含義:如果輸出值帶有符號且爲正,則在輸出值前前置一空格;如果同時顯示有空格與 + 旗標,則忽略此空格。
預設:不顯示空格。
#
含義 1:與 o、x、或 X 類型一同使用時,# 旗標將與 0、0x 或 0X 一同分別前置於非零輸出值。
預設 1:不顯示前置字串。
含義 2:與 e、E 或類型一同使用時,在所有情況下,# 旗標均會強制輸出值包含一個小數點。
預設 2:僅在後面跟有數位時方顯示小數點。
含義 3:與 g 或 G 格式一同使用時,在所有情況下,# 旗標均會強制輸出值包含一個小數點,並防止尾隨零的捨位。
預設 3:僅在後面跟有數位時方顯示小數點。尾隨的零被捨去。與 d、i 或 u 一同使用時予以忽略。
寬度
寬度是第二個可選欄位(或者說是引數),它控制列印的最小字元數。它是一個非負的十進位整數。
如果輸出值中的字元數小於指定的寬度 — 會依據是否指定了 – 旗標(靠左對齊)將空格新增到輸出值得左側或右側 — 直至達到最小寬度。
如果寬度有前置字元 0,則會新增零,直至到達最小寬度(對於靠左對齊的數值無用)。
寬度規範不會引致數值捨位。如果輸出值中的字元數大於指定的寬度,或者如果未給出寬度,則會列印輸出值的所有字元(受以下列出的精確度規範的影響。)
精確度
精確度是第三個可選欄位(或者說是引數),它指定了要列印的字元數、小數位數或有意義的數位數。與寬度規範不同,精確度規範可引致輸出值捨位或浮點值的四捨五入。它是一個非負的十進位整數,前面有一個句點 (.)。
類型
這是必填字元,用於確定相關引數是 integer、double 抑或是 point 型。可用的類型包括:
d - 帶符號的十進位整數
i - 帶符號的十進位整數
o - 無符號的八進位整數
u - 無符號的十進位整數
x - 使用 "abcdef" 的無符號的十六進位整數
X - 使用 "ABCDEF" 的無符號的十六進位整數
e - 指數形式,double 型 [-]d.dddd e [符號]ddd
E - 與 e 相同,除了使用 E 引入指數這點不同
f - double型 [-]dddd.dddd
g - 格式設定爲 e 或 f(視哪個更緊湊)
E - 與 g 相同,除了使用 E 引入指數這點不同
FORMAT 範例
本例示出了使用在測量常式中使用 FORMAT 函式的幾個陳述式:
ASSIGN/V1=PROBEDATA("OFFSET") |
V1 變爲表示目前測頭偏移的點。運用本例採用的測量常式的值,V1 變爲: <-1.8898, 1.8898, 5.704> |
ASSIGN/V3=FORMAT("%.5f,%.5f,%.5f",V1) |
V3 變爲 string 型。該字串采用變數 V1 的點物件格式化。現在 V3 爲: -1.88976, 1.88976, 5.70403 |
ASSIGN/V4=1.123456789 |
V4 變爲 double 型。 |
ASSIGN/V5=FORMAT("%.5f ",V4)+FORMAT("%.6f ",V4)+FORMAT("%.7f ",V4)+FORMAT("%.8f",V4) |
V5 變爲 string 型,其值爲: 1.12346 1.123457 1.1234568 1.12345679 |
ASSIGN/V6A="V4 的值為: "+FORMAT("%.8f",V4) |
V6A 變爲 string 型,其值爲: V4 的值爲:1.12345679 |
ASSIGN/V6B=FORMAT("V4 的值為: %.8f",V4) |
運算式結果與上面的 V6A 相同。 |
ASSIGN/V7=4444 |
V7 變爲double 型,因爲所有數值均假定爲 double 型,除非強制型轉爲 integer 型。 |
ASSIGN/V8=FORMAT("%o",INT(V7)) |
V8 變爲 string 型,其值爲: 10534 |
ASSIGN/V9=FORMAT("%u",INT(-1)) |
V9 變爲 string 型,其值爲: 4294967295 |
ASSIGN/V10=FORMAT("%x",INT(2143)) |
V10 變爲 string 型,其值爲: 85f |
ASSIGN/V11=FORMAT("%X",INT(9567)) |
V11 變爲 string 型,其值爲: 255F |
ASSIGN/V12=FORMAT("%e",0.0005432) |
V12 變爲 string 型,其值爲: 5.432000e-004 |
ASSIGN/V13=FORMAT("%E",145.3421) |
V13 變爲 string 型,其值爲: 1.453421E+002 |
ASSIGN/V14=FORMAT(",%6d,",INT(1)) |
V14 變爲 string 型,其值爲: , 1, |
ASSIGN/V15=FORMAT(",%-6d,",INT(1)) |
V15 變爲 string 型,其值爲: ,1 , |
此功能允許您視插入的字串參數,傳回 PC-DMIS 的各種設定值。
GETSETTING(<String>)
您可使用這些 string 參數:
「DCC 模式」 – 如果 PC-DMIS 在 DCC 模式下,傳回 1,否則傳回 0。
「手動模式」– 如果 PC-DMIS 在手動模式下,則傳回 1,否則傳回 0。
「目前坐標系」– 傳回目前坐標系的字串。
「目前工作面」– 傳回目前工作面的字串。
「工作面值」 – 傳回目前工作面的數值。
「預測點」 – 傳回目前預測點值作爲 double 型的精確度數。
「回退」 – 傳回目前回退值作爲 double 型的精確度數。
「檢查」 – 傳回目前檢察值作爲 double 型的精確度數。
「接觸速度」– 傳回目前接觸速度值作爲 double 型的精確度數。
「移動速度」 – 傳回目前移動速度值作爲 double 型的精確度數。
「飛行模式」 – 如果 PC-DMIS 使用飛行模式,傳回 1,否則傳回 0。
「有 Ph9」– 如果有 Ph9/Ph10 則傳回 1,否則傳回 0。
「手動 CMM」– 如果 CMM 爲手動 CMM,傳回 1,否則傳回 0。
"LangStr(<數值或 ID>)" – 傳回資源 ID 號或以下 ID 中某個 ID 的目前語言形式的 PC-DMIS 資源的字串:
"Yes"、"No"、"Oper"、"Rept"、"Input"、"Doc"、"YesNo"、"Readout"、"Internal"、"External"、"Rect "、"Polr "、"Out"、"In"、"Least_Sqr"、"Min_Sep"、"Max_Insc"、"Min_CircSc"、"Fixed_Rad"、"Workplane"、"Xaxis"、"YAxis"、"ZAxis"、"Xplus"、"Xminus"、"YPlus"、"YMinus"、"ZPlus"、"ZMinus"、"Point"、"Plane"、"Line"、"Circle"、"Sphere"、"Cylinder"、"Round_Slot"、"Square_slot"、"Cone" 或 "None"。
如您使用的是正數,PC-DMIS 從 resource.dll 檔案取出字串。若使用的是負數,則 PC-DMIS 從 strings.dll 檔案(字串表)取出字串。
「展開的薄壁件」 – 如果在設定選項對話方塊中選取顯示展開的薄壁件選項核取方塊,傳回 1,否則傳回 0。
"LastHitMove(X)" – 傳回最近的 HIT /BASIC 或 MOVE/POINT 命令的 X 值。爲使此生效,PC-DMIS 須處於 DCC 模式下。
"LastHitMove(Y)" – 傳回最近的 HIT /BASIC 或 MOVE/POINT 命令的 Y 值。爲使此生效,PC-DMIS 須處於 DCC 模式下。
"LastHitMove(Z)" – 傳回最近的 HIT /BASIC 或 MOVE/POINT 命令的 Z 值。爲使此生效,PC-DMIS 須處於 DCC 模式下。
要確定 PC-DMIS 是處於手動模式還是 DCC 模式下,請看以下運用 GETSETTING 函式的範例:
ASSIGN/DCCMODEVAR = GETSETTING(「DCC 模式」) - 若 PC-DMIS 采用 DCC 模式,則爲變數 DCCMODEVAR 賦值 1,否則賦值 0。
ASSIGN/MANMODEVAR = GETSETTING(「手動模式」) - 若 PC-DMIS 采用手動模式,則爲變數 MANMODEVAR 賦值 1,否則賦值 0。
要確定目前工作面,請看此例:
ASSIGN/WORKPLANE_ID = GETSETTING(「目前工作平面」) - 賦予 WORKPLANE_ID目前工作平面(Z+、Z- 等)的字串值。
ASSIGN/WORKPLANE_VALUE = GETSETTING(「工作面值」) - 爲變數 WORKPLANE_VALUE 指派一個表徵工作面的數值。此工作平面有這些相關值:Z+ = 0,Z- = 3,X+ = 1,X- = 4,Y+ = 2 或 Y- = 5。
此功能傳回指定資料欄位的目前文字:GETTEXT(<String 或 Integer>, <Integer>, <Pointer>)
此函式有三個欄位。
第一個欄位 — 資料欄位編號或說明
第一個欄位可為資料欄位的字串說明,由以下影像中的項目 (A) 表示,或為資料欄位編號,由以下影像中的項目 (C) 表示。
以下圖像中的項目 (B) 未在此功能中使用,但有時會用於自動或報告運算式。
爲獲取這些值:
將 PC-DMIS 置於命令模式下。 在「編輯」視窗中的任意位置點按滑鼠右鍵。將出現一個捷徑功能表。
從快顯功能表選取變更彈跳顯示,然後再選取資料類型資訊。
將滑鼠置於「編輯」視窗中的某個資料欄位。會顯示該資料項目的類型說明、類型編號及類型索引。
不同語言的類型說明可能有所不同。若在使用不同語言運行的 PC-DMIS 上執行測量程式,則使用類型編號。
資料類型資訊樣本顯示 (A) 類型說明、(B) 類型字串識別符號,(C) 類型編號,以及 (D) 類型索引
第二個欄位 — 類型索引
第二個欄位是類型索引,由以上影像中的 (D) 表示。此欄位通常為零,除非相同的命令中具有多個相同類型欄位的實例,如以上影像所示的多個目錄欄位。可採用與說明的第一個欄位相同的方式,來獲取第二個欄位的正確值。
第三個欄位 — 命令指標
第三個欄位是命令指標。它指向的是包含有要獲取其文字的欄位的命令。可使用命令指標表示法(即 {F15})或使用 GetCommand 運算式指定此欄位(如下例所示)。
ASSIGN/V1 = GETTEXT(「最佳擬合數學類型」、0、{F15}) - 此命令爲 V1 指派特徵 F15 之最佳擬合數學類型切換的目前值。
ASSIGN/V2 = GETCOMMAND(「註解」、"TOP"、1) - V2 被指派測量程式頂部第一條註解的指標。
ASSIGN/V3 = GETTEXT(「註解類型」、1、V2) - V3 被指派「註解類型」切換欄位之值。若測量程式中的第一條註解係對操作員顯示的註解,則 V3 之值將爲字串「OPER」。
有關用於設定命令指標的 GETCOMMAND 運算式的資訊,請參閱「指標函數」。
此功能依據傳入的參數傳回測量常式資訊:GETPROGRAMINFO(<String>, <Optional String>)
此函式最多有兩個字串作為參數。對於大多數項目,僅需使用第一個參數。字串欄位不區分大小寫。
第一個欄位—字串
第一個欄位係詳述傳回資訊的字串輸入。
DATE - 傳回目前日期
TIME - 傳回目前時間
PARTNAME - 傳回測量常式標頭中定義的工件名稱
PARTPATH - 傳回測量常式檔案的完整路徑
REVISION - 傳回標題中定義的修訂編號
DRAWING - 如 REVISION 一樣,亦傳回標題中定義的修訂編號
SERIALNUM - 傳回標題中定義的序號
STATSCOUNT - 傳回目前統計計數
SEQNUM - 如 STATSCOUNT 一樣,亦傳回目前統計計數
SHRINK - 傳回全域縮放比例
NUMMEAS - 傳回執行的尺寸數
NUMOOT - 傳回執行的超出公差尺寸數
ELAPSEDTIME - 傳回從執行開始起所用的時間
FILENAME - 傳回測量常式的檔名 (.prg)
CADMODELNAME - 返回匯入到測量常式中的CAD模型的檔案名的完整路徑。
CADMODELFILENAME - 僅返回匯入到測量常式中的CAD模型(不是路徑)的名稱。
REPORTNAME - 傳回目前輸出檔案名稱
TEMP - 傳回可選的第二個輸入字串的溫度。請參閱下文的「第二個欄位 — 可選字串」。
PRGVERSION - 傳回測量常式檔案中 string 型的 PC-DMIS 修訂編號。您可儲存與特定版本相容的測量常式檔案。更多資訊,請參閱「使用基本檔案選項」一章中的「另存新檔」。
PRGSCHEMA - 傳回測量常式檔案中 integer 型的 PC-DMIS 結構描述編號。此值是 PC-DMIS 所用的內部值,用於指示序列化的命令和選項。
PCDMISVERSION - 傳回 string 型 PC-DMIS 軟體的實際安裝版本。
第二個欄位—可選字串
第二個欄位係可選字串輸入。僅在第一個輸入欄位中使用 TEMP 時需要此欄位。以下字串來自「溫度補償」命令。更多資訊,請參考「設定喜好設定一章中的「補償溫度」。
TEMPP - 傳回工件感應器的溫度
TEMPX - 傳回 X 軸感應器的溫度
TEMPY - 傳回 Y 軸感應器的溫度
TEMPZ - 傳回 Z 軸感應器的溫度
REF_TEMP - 傳回參照溫度
HIGH_THRESHOLD - 傳回高閾值溫度
LOW_THRESHOLD - 傳回低閾值溫度
範例
$$ NO,此代碼樣本顯示總尺寸數和超出公差尺寸數。
ASSIGN/V1=GETPROGRAMINFO("NUMMEAS")
ASSIGN/V2=GETPROGRAMINFO("NUMOOT")
COMMENT/REPT
「總尺寸:」+ V1
「總超出公差:」+ V2
$$ NO,此代碼樣本傳回 Z 軸感應器的溫度。
ASSIGN/V3=GETPROGRAMINFO("TEMP", "TEMPZ")
COMMENT/REPT
「Z 軸溫度:」+ V3
讀取跟踪值:GETTRACEVALUE(<string>)
該函數取單個字串參數。它從測量常式中的 TRACEFIELD 命令返回一個值。
<string> 表示要返回的值的跟蹤名稱的區分大小寫的字串。
如果具有多個具有相同跟蹤名稱的跟蹤欄位,則此函數會返回此函數上方最近跟蹤欄位的值。如果跟蹤欄位不包含值,則此函數返回值為 0。
ASSIGN/V2=GETTRACEVALUE("Operator")
其中「運算子」是測量常式中的跟蹤欄位名稱。
子字串位置:INDEX(<String>, <String>)
此功能傳回第二個字串在第一個字串中的位置。字串的第一個字母爲 1。傳回值 0 表示在此字串中未找到子字串。
格式化的上次執行時間:LASTEXECUTIONTIME()
此函式傳回 PC-DMIS 在<測量程式的名稱>.MiniRoutines.xml 檔案中記錄和儲存的上次執行時間。上次執行時間顯示在執行對話方塊中。時間將以 "hh:mm:ss" 格式傳回。
字串左側的字元數:LEFT(<String>, <n>)
此功能傳回由最左側的 n 個字元組成的字串,這些字串由第二個運算式從第一個運算式中指定的字串指定。
第一個表達式(字符串)被強制轉換為字符串類型。第二個表達式 (n) 設定類型整數。
字串長度:LEN(<String>)
此功能傳回字串中的字元數。
建立小寫字串:LOWERCASE(<String>)
此功能傳回表達式字串相應小寫的字串。
MID 字串中間的 n 個字元:MID(<String>, <Integer>, <Optional Integer>)
此功能傳回第一個參數指定的字串中,從第二個參數指定的位置開始的、長度爲 n(由第三個參數指定)的子字串。如果未提供第三個參數,則傳回字串的其餘部份。
有關此函式的範例,請參考「使用檔案輸入/輸出」一章中的「讀取行的代碼範例」主題。
序數轉換:ORD(<String>)
此功能傳回字串第一個字母的 integer 型 ASCII 值 (0-255)。
全路徑顯示:PCDMISAPPLICATIONPPATH()
此功能傳回含有安裝 PC-DMIS 所在應用程式目錄之全路徑的字串值。此目錄包含執行 PC-DMIS 的主要可執行程式檔以及其他必要的程式檔。
全路徑顯示:PCDMISUSERHIDDENDATAPATH()
此功能傳回含有 PC-DMIS 所用的隱藏使用者資料目錄之全路徑的字串值。如需瞭解此目錄中包含的檔案,請參閱「瞭解檔案位置」。
全路徑顯示:PCDMISUSERHIDDENDATAPATH()
此功能傳回含有 PC-DMIS 所用的可見使用者資料目錄之全路徑的字串值。如需瞭解此目錄中包含的檔案,請參閱「瞭解檔案位置」。
全路徑顯示:PCDMISSYSTEMHIDDENDATAPATH()
此功能傳回含有 PC-DMIS 所用的隱藏系統資料目錄之全路徑的字串值。如需瞭解此目錄中包含的檔案,請參閱「瞭解檔案位置」。
全路徑顯示:PCDMISSYSTEMVISIBLEDATAPATH()
此功能傳回含有 PC-DMIS 所用的可見系統資料目錄之全路徑的字串值。如需瞭解此目錄中包含的檔案,請參閱「瞭解檔案位置」。
全路徑顯示:PCDMISSYSTEMREPORTINGPATH()
此功能傳回含有 PC-DMIS 所用的報告目錄之全路徑的字串值。此目錄中包含報告視窗所用的報告和標籤範本。
字串右側的 n 個字元:RIGHT(<String>, <Integer>)
此功能傳回由最右側的 n 個字元組成的字串,這些字串由某個整數指定。
系統日期:SYSTEMDATE(<日期格式字串>)
此功能傳回具有目前日期詳細資訊的設定了特定格式的日期字串。例如,若目前日期爲 2014 年 2 月 12 日,命令 SYSTEMDATE("MM’/’dd’/’yy") 將傳回字串 "02/12/14"。
利用以下字串元素建立日期字串。元素的大小寫必須與以下所示的相同(是 MM 而非 mm)。日期格式字串元素中的非日期字元(如空格)將作爲輸入字串,顯示在輸出字串中的相同位置。輸入字串中由單引號分界的字元將顯示在輸出字串中的相同位置,但不會顯示單引號。
d - 月份的日期(數位形式)。單數位的日期不使用前置零。
dd – 月份的日期(數位形式)。單數位的日期使用前置零。
ddd – 一周中某日的三個字母的縮寫。
dddd – 一周中當日的全稱。
M – 單數位的月份不使用前置零。
MM – 單數位的月份使用前置零。
MMM – 三個字母的月份縮寫。
MMMM – 月份的全稱。
y – 單數位的年份不使用前置零。
yy – 單數位的月份使用前置零。
yyyy – 用四數位表示年份。
設定了格式的系統時間:SYSTEMTIME(<時間格式字串>)
此功能傳回具有目前時間詳細資訊的設定了特定格式的時間字串。例如,命令 SYSTEMTIME("hh:mm:ss tt") 將傳回設定了格式的字串的時間,如 "11:29:40 PM"。
利用以下字串元素建立時間字串。元素的大小寫必須與以下所示的相同(是 tt 而非 TT)。時間格式字串元素之間的非時間字元(如空格)將作爲輸入字串,顯示在輸出字串中的相同位置。輸入字串中由單引號分界的字元將顯示在輸出字串中的相同位置,但不會顯示單引號。
h - 單數位的小時不使用前置零;12 小時制時鐘
hh – 單數位的小時使用前置零;12 小時制時鐘
H – 單數位的小時不使用前置零;24 小時制時鐘。
HH – 單數位的小時使用前置零;24 小時制時鐘
m – 單數位的分鐘不使用前置零
mm – 單數位的分鐘使用前置零
s – 單數位的秒不使用前置零
ss – 單數位的秒使用前置零
t – 單個字元的時間標記字串,如 A 或 P
tt – 多個字元的時間標記字串,如 AM 或 PM
系統時間:SYSTIME()
此功能傳回目前系統時間的字串。此函式有別於上述的 SYSTEMTIME 函式。這個函式自動傳回日、日期、時間、年。
範例:「2014 年 2 月 12 日星期三 13:50:21」
傳回的字串顯示的是目前系統時間,該時間已調整爲本地時區設定。
建立大寫字母的字串:UPPERCASE(<String>)
此功能傳回字串相應大寫的字串。
PC-DMIS 2019 R1
著作權 © 2019 Hexagon Manufacturing Intelligence – Metrology Software, Inc.
上次生成說明系統是在21 January 2019