AutoCAD .NET二次開發(二)


今天專門講一個——CommandMethod。我們都在知道CAD操作要快,必須要熟悉掌握各種命令。在Lisp開發中,在函數后C:即可添加一個命令,非常方法,在.NET API也可以非常方便的設置命令,它需要CommandMethod屬性。

先來看CommandMethod的定義,它的構造函數很多,其中參數最全的一個如下圖所示:

groupName組名,string,命令編組名稱,一般在小項目開發中用得比較少。

globalName,全局名稱, string,即命令,它應該是唯一的,不然在調用時會發生意外。

localizedNameId, 本地名稱,string,指定語言的本地命令名稱,不知道有什么用。

flags, 命令標志,CommandFlags,定義命令的行為。詳見附表。

contextMenuExtensionType, 上下文菜單類型標志 ,Type, 定義命令處於活動狀態時的上下文菜單行為。

helpFileName, 幫助文件名string,幫助文件,含有命令活動狀態下按下F1時要顯示的幫助主題。

helpTopic ,幫助主題,string。幫助文件中的主題。

 

除上面這個構造函數外,它還有5個:

CommandMethodAttribute(string globalName)

CommandMethodAttribute(string globalName, CommandFlags flags)

CommandMethodAttribute(string groupName, string globalName, CommandFlags flags)

CommandMethodAttribute(string groupName, string globalName, string localizedNameId, CommandFlags flags)

CommandMethodAttribute(string groupName, string globalName, string localizedNameId, CommandFlags flags, string helpTopic)

CommandMethodAttribute(string groupName, string globalName, string localizedNameId, CommandFlags flags, Type contextMenuExtensionType)

 

在使用時的注意事項有:

(1)CommandMethodAttribute和CommandMethod是一個,不管使用哪一個都可以;

(2)CommandMethodAttribut的使用需要添加相關引用,包括accoremgd,acdbmgd和acmgd三個;

(3)CommandMethod后的有效行必須是一個函數。

 

附表:Command Flags命令標志

枚舉值

描述

ActionMacro

可以用動作錄制器錄制命令動作;

DocReadLock

命令執行時將被只讀鎖定;

Interruptible

提示用戶輸入時可以中斷命令;

Modal

別的命令運行時不能運行此命令;

NoActionRecording

不能用動作錄制器錄制命令動作;

NoBlockEditor

不能從塊編輯器使用該命令;

NoHistory

不能將命令添加到repeat-last-command(重復上一個命令)歷史列表;

NoPaperSpace

不能從圖紙空間使用該命令;

NoTileMode

當TILEMODE置1時不能使用該命令;

NoUndoMarker

命令不支持撤銷標記。用於不修改數據庫因而也就無需出現在撤銷記錄中的那些命令;

Redraw

不清空取回的先選擇后執行設置及對象捕捉設置;

Session

命令運行於應用程序上下文,而不是當前圖形文檔上下文;

Transparent

別的命令運行時可以運行此命令;

Undefined

只能通過全局名使用命令;

UsePickSet

清空取回的先選擇后執行設置;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM