CATIA二次開發 CAA實現狀態機

2021-07-30 17:32:36 字數 2777 閱讀 5683

1.command初始化:agent、catdialogstate、transition實現狀態機

agent:catpathelementagent可獲取元素;catindicationagent可實現滑鼠單擊雙擊行為。

catdialogstate狀態機

addtransition狀態機跳轉條件:islastmodifiedagentcondition只要agent變化就觸發,action可不短響應agent變化;isoutputsetcondition只要agent值變化一次,就完成該action。

2.command初始化:buildgraph中使用andcondition實現跳轉邏輯

下面兩個transition,按照順序來執行,若執行了第乙個action,就不執行第二個action;若第乙個action沒有執行,則執行第二個action。下面兩行**可實現pfirstate到【pchangeannotationdirstate或psecstate】的邏輯操作。

第乙個transition:

addtransition( pfirstate, pchangeannotationdirstate,

andcondition(isoutputsetcondition(m_selcannotationelmagt),

condition((conditionmethod) & steelbargroupannotationcmd::getannodirmode)),

action ((actionmethod) &steelbargroupannotationcmd::annotationelmselected));

說明:andcondition中的兩個條件,isoutputsetcondition(m_selcannotationelmagt)和condition((conditionmethod) & steelbargroupannotationcmd::getannodirmode),都為真時,執行action ((actionmethod) &steelbargroupannotationcmd::annotationelmselected);若condition((conditionmethod) & steelbargroupannotationcmd::getannodirmode)返回false,則不執行action,跳轉到下面的transition。

第二個transition:

addtransition( pfirstate, psecstate,

isoutputsetcondition (m_selcannotationelmagt),

action ((actionmethod) &steelbargroupannotationcmd::annotationelmselected));

說明:從pfirstate跳轉到psecstate

1.command初始化:agent、catdialogstate、transition實現狀態機

agent:catpathelementagent可獲取元素;catindicationagent可實現滑鼠單擊雙擊行為。

catdialogstate狀態機

addtransition狀態機跳轉條件:islastmodifiedagentcondition只要agent變化就觸發,action可不短響應agent變化;isoutputsetcondition只要agent值變化一次,就完成該action。

2.command初始化:buildgraph中使用andcondition實現跳轉邏輯

下面兩個transition,按照順序來執行,若執行了第乙個action,就不執行第二個action;若第乙個action沒有執行,則執行第二個action。下面兩行**可實現pfirstate到【pchangeannotationdirstate或psecstate】的邏輯操作。

第乙個transition:

addtransition( pfirstate, pchangeannotationdirstate,

andcondition(isoutputsetcondition(m_selcannotationelmagt),

condition((conditionmethod) & steelbargroupannotationcmd::getannodirmode)),

action ((actionmethod) &steelbargroupannotationcmd::annotationelmselected));

說明:andcondition中的兩個條件,isoutputsetcondition(m_selcannotationelmagt)和condition((conditionmethod) & steelbargroupannotationcmd::getannodirmode),都為真時,執行action ((actionmethod) &steelbargroupannotationcmd::annotationelmselected);若condition((conditionmethod) & steelbargroupannotationcmd::getannodirmode)返回false,則不執行action,跳轉到下面的transition。

第二個transition:

addtransition( pfirstate, psecstate,

isoutputsetcondition (m_selcannotationelmagt),

action ((actionmethod) &steelbargroupannotationcmd::annotationelmselected));

說明:從pfirstate跳轉到psecstate

二次開發 將CATIA嵌入到Winform窗體中

由於專案需要,我們需要將catia嵌入到我們的軟體之中,要求在軟體啟動後,同時呼叫並啟動catia軟體,並能夠遮蔽掉軟體自身的選單和按鈕。通過在網上查閱資料,實現了這一功能。public string getcatiainstallpath dllimport user32.dll setlaste...

postek二次開發 POSTEK二次開發介面

例項簡介 例項截圖 核心 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using ...

mcms二次開發 YzmCMS二次開發手冊

摘要 yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有一.yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口...