吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何從ZPL宏中調(diào)用另一個(gè)ZPL宏?

LD18688690737 ? 來(lái)源:光電資訊 ? 2023-02-25 15:19 ? 次閱讀

通常,在單獨(dú)的代碼段中執(zhí)行計(jì)算的每個(gè)步驟是一種很好的編程實(shí)踐,本文介紹如何從另一個(gè)宏中調(diào)用 ZPL 宏,以及如何在宏之間來(lái)回傳遞數(shù)據(jù)。

介紹

在編寫執(zhí)行許多步驟的ZPL宏時(shí),通常在單獨(dú)的代碼段中執(zhí)行每個(gè)步驟是一種良好的編程做法。這可以通過(guò)ZPL子例程來(lái)完成,使用GOSUB,SUB,RETURN和END關(guān)鍵字。但是,在某些情況下,在單獨(dú)的宏中執(zhí)行每個(gè)步驟,然后從主(父)宏調(diào)用這些單獨(dú)的(子)宏中的每一個(gè)可能更容易。例如,如果要在許多不同的宏中執(zhí)行相同的計(jì)算,則在隨后由各個(gè)父宏調(diào)用的子宏中執(zhí)行此計(jì)算會(huì)更有效。這可以在OpticStudio中使用關(guān)鍵字CALLMACRO來(lái)完成。

從一個(gè)宏中調(diào)用另一個(gè)宏

可以在本文附帶的.ZIP文件中找到調(diào)用兩個(gè)單獨(dú)子宏的父宏的示例。這些宏文件應(yīng)放在{Zemax}Macros 目錄下,并用于位于{Zemax}SamplesObjectives 目錄中的文件“Cooke 40 degree field.zmx”。

poYBAGP5tpOAUzjtAADBSL7F5BI957.jpg

在這種情況下,數(shù)值和字符串值是簡(jiǎn)單的測(cè)試值,用于演示在父宏和子宏之間來(lái)回傳遞數(shù)據(jù)的方法。

然后,父宏使用關(guān)鍵字CALLMACRO調(diào)用第一個(gè)子宏(CALLMACRO_TEST_CHILD1.ZPL)。在子宏中,存儲(chǔ)在宏緩沖區(qū)中的值使用CALD和$CALLSTR數(shù)字函數(shù)打印到輸出窗口:

pYYBAGP5trCAGPEfAACU5OYiwWE135.jpg

然后,該宏使用RAYTRACE關(guān)鍵字和OPDC函數(shù)計(jì)算弧矢方向光瞳坐標(biāo) (Px = 0)和固定視場(chǎng)坐標(biāo) (Hx = Hy = 0) 處的各個(gè)子午光瞳坐標(biāo) (Py)的光程差:

poYBAGP5tsqAHVGjAACz2PzwSTg116.jpg

在此子宏中,光瞳坐標(biāo)的值(存儲(chǔ)在x數(shù)組中)使用以下方法傳遞回父宏:

poYBAGP5tuOADRs4AADVFI6Ze2Q697.jpg

新字符串值也作為測(cè)試放置在宏緩沖區(qū)中,以確保將此數(shù)據(jù)傳遞回父宏。子宏完成后,OpticStudio 將返回到父宏,并且光瞳坐標(biāo)的值將存儲(chǔ)在相應(yīng)的數(shù)組中:

poYBAGP5tv-AUzjaAACL29wA2kE135.jpg

然后,父宏調(diào)用第二個(gè)子宏 (CALLMACRO_TEST_CHILD2.ZPL)。此宏與第一個(gè)子宏相同,唯一的區(qū)別是OPD數(shù)據(jù)(存儲(chǔ)在y數(shù)組中)而不是光瞳坐標(biāo)被傳遞回父宏:

pYYBAGP5tyOAXqUmAADpyu7McuE589.jpg
poYBAGP5tyyAUhhMAAEKv4xenqU411.jpg

作為測(cè)試新的字符串值再次放置在宏緩沖區(qū)中,以確保將此數(shù)據(jù)傳遞回父宏。然后將數(shù)字OPD 數(shù)據(jù)存儲(chǔ)到父宏的數(shù)組中:

pYYBAGP5t1eAZ6T_AAB-pD2ri_k930.jpg

最后,父宏使用關(guān)鍵字PLOT繪制 OPD 與光瞳坐標(biāo)數(shù)據(jù):

pYYBAGP5t2uAPGFDAADJVQqWSHk118.jpg
PLOT GO 然后將結(jié)果打印到圖形窗口:

8fd69dce-b2c2-11ed-bfe3-dac502259ad0.jpg







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    585

    瀏覽量

    20604
  • ZEMAX
    +關(guān)注

    關(guān)注

    3

    文章

    34

    瀏覽量

    11396
  • sub
    sub
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    2275

原文標(biāo)題:Zemax光學(xué)設(shè)計(jì)技術(shù):如何從ZPL宏中調(diào)用另一個(gè)ZPL宏

文章出處:【微信號(hào):光電資訊,微信公眾號(hào):光電資訊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    個(gè)vi調(diào)用另一個(gè)vi,并將數(shù)據(jù)傳給被調(diào)用vi

    我想在個(gè)vi調(diào)用另一個(gè)vi比如說(shuō),在這個(gè)vi1,我獲得了
    發(fā)表于 03-28 13:57

    C語(yǔ)言定義#和##的作用

    : helloworld , 就可以通過(guò)這樣的的調(diào)用, printf( str(helloworld) );2. ## : 在定義,將其前后的兩個(gè)變量拼接在
    發(fā)表于 08-23 18:22

    C語(yǔ)言中的

    我們對(duì)定義的使用更加的常江,下面我們個(gè)方面來(lái)了解下函數(shù)的使用。1.函數(shù)的書寫#def
    發(fā)表于 12-13 15:32

    擴(kuò)展問(wèn)題

    MPLAB IDIDV3.65和XC8HI,“擴(kuò)展工具”是個(gè)方便的工具來(lái)查看在項(xiàng)目文件的擴(kuò)展(右鍵單擊
    發(fā)表于 04-14 09:57

    【原創(chuàng)文章】程序的調(diào)試和使用的技巧

    的dprint)會(huì)自動(dòng)根據(jù)程序中表達(dá)式的內(nèi)容,生成一個(gè)字符串的(示例的#expr)。這樣同樣可以在程序中表示一個(gè)字符串。②進(jìn)
    發(fā)表于 08-18 17:27

    ios的使用注意點(diǎn)

    使用的時(shí)候, 其中會(huì)有很多的注意點(diǎn), 如果不小心被忽略, 那么將會(huì)帶來(lái)完全不想要的結(jié)果。 所以要想靈活的使用它, 那么還是先了解些比較好。 而且在iOS開發(fā)如果你是使用OC, 那么你可能經(jīng)常會(huì)使用到#define(swift當(dāng)前不支持
    發(fā)表于 09-25 17:30 ?0次下載
    ios<b class='flag-5'>中</b><b class='flag-5'>宏</b>的使用注意點(diǎn)

    excel的使用方法、技巧和步驟

    excel的使用方法如下: 、建立 二、執(zhí)行 三、編輯和刪除
    發(fā)表于 11-19 10:16 ?11.7w次閱讀
    excel<b class='flag-5'>中</b><b class='flag-5'>宏</b>的使用方法、技巧和步驟

    什么是,excel的作用

    所謂,就是些命令組織在起,作為個(gè)單獨(dú)命令完成個(gè)
    發(fā)表于 11-19 10:36 ?5.5w次閱讀

    QuartusⅡ功能模塊的使用

    QuartusⅡ軟件針對(duì)常用的功能,提供了參數(shù)化(Parameterized)的功能(megafunctions)模塊,通過(guò)調(diào)用功能模塊,可以減少工作量,加快設(shè)計(jì)的進(jìn)程。 用戶可以通過(guò)向?qū)Чぞ?/div>
    發(fā)表于 04-03 15:34 ?12次下載

    工程師避免這些誤區(qū)才能讓【】削鐵如泥

    括號(hào),可以創(chuàng)建個(gè)主體內(nèi)部開始但在主體外部結(jié)束的調(diào)用
    的頭像 發(fā)表于 10-23 15:15 ?1791次閱讀

    幾種特殊的函數(shù)封裝方式介紹

    : #defineINT_SWAP(a,b) inttmp=a; a=b; b=tmp但上述的具有個(gè)明顯的缺點(diǎn):當(dāng)遇到 if、while 等語(yǔ)句且不使用花括號(hào)僅調(diào)用
    的頭像 發(fā)表于 11-03 16:03 ?2135次閱讀

    當(dāng)使用參數(shù)調(diào)用時(shí),會(huì)將參數(shù)替換為主體

    在大多數(shù)定義示例,每次出現(xiàn)的參數(shù)名稱都帶有括號(hào),并且另一對(duì)括號(hào)通常會(huì)包圍整個(gè)定義,這是編寫
    的頭像 發(fā)表于 11-16 16:41 ?2383次閱讀

    函數(shù)的三種封裝方式

    : #define INT_SWAP(a,b) \ int tmp = a; \ a = b; \ b = tmp 但上述的具有個(gè)明顯的缺點(diǎn):當(dāng)遇到 if、while 等語(yǔ)句且不使用花括號(hào)僅
    的頭像 發(fā)表于 12-22 15:49 ?3713次閱讀

    如何才能避免【】的這七個(gè)誤區(qū)

    當(dāng)使用參數(shù)調(diào)用時(shí),會(huì)將參數(shù)替換為主體,并與其他輸入文件起檢查結(jié)果,以進(jìn)行更多的調(diào)用,可以
    的頭像 發(fā)表于 12-24 14:29 ?438次閱讀

    c語(yǔ)言定義可以嵌套嗎?

    c語(yǔ)言定義可以嵌套嗎? C語(yǔ)言定義可以嵌套,也就是個(gè)定義可以包含另一個(gè)
    的頭像 發(fā)表于 09-04 17:38 ?3281次閱讀
    网络博彩| 豪门娱乐| 沙龙国际网址| 威尼斯人娱乐城简介| 大发888娱乐城亚付宝| 网上的百家乐怎么才能赢| 顶级赌场网址| 百家乐官网出租平台| 凯旋门百家乐官网游戏| 缅甸百家乐官网网络赌博解谜| 鹿泉市| 百家乐官网龙虎台布价格| 澳门百家乐官网娱乐平台| 百家乐官网是否能赢| 澳门百家乐必杀技| 太阳城百家乐的分数| 威尼斯人娱乐城老品牌| 特克斯县| 中国百家乐官网软件| 旅百家乐官网赢钱律| 深圳百家乐的玩法技巧和规则 | 棋牌游戏易发| 明升百家乐官网QQ群| 真人百家乐官网体验金| 网上百家乐洗码技巧| 大发888中文版| 网上百家乐官网哪里开户| 百家乐官网游戏机破解方法| 如何打百家乐官网的玩法技巧和规则| 不规则地形做生意风水好吗| 百家乐双峰县| 大发888手机登录平台| 百家乐官网怎么赢博彩正网| 百家乐类游戏网站| 百家乐游戏什么时间容易出| 丰镇市| 百家乐隔一数打法| 顶级赌场是真的吗| 百家乐官网娱乐真钱游戏| 最新百家乐网评测排名| 大发888怎么赢钱|