class AcEdJig: public AcRxObject{..
AcEdJig的enum: | |
---|---|
UserInputControls | 用户输入控制:鼠标点击、键盘按键、键盘输入 |
DragStatus | 用户输入的响应结果(如按ESC键返回kCancel) |
CursorType | 鼠标形状 |
JIG执行的一般步骤:
// 启动JIG
start()
// 获取第一个对象,常用选择集获取。
getFirst()
// 创建动态显示的实体,同时加入到指定的AcDbDatabase
Create()
// 添加动态标注,如角度、坐标
addDimData()
while(1)
{
// 提示输入
setDispPrompt(..);
// JIG动态处理
DragStatus ds = drag();
// 业务代码..
}
// 结束JIG
endJig()
drag() 期间循环调用sample()->update()->entity()
sample() 中设置快捷命令setKeywordList(…)、获取用户输入acquirePoint(…)等
update() 中更新标注updateDimData()、更新其他动态绘制(先删除再新增)
entity() 返回实体指针
提示: setDispPrompt(…); 常在JIG操作的wihle循环中调用。
按键输入: setKeywordList(…); 命令以字符串形式传入,多个命令以空格分隔,如 “A B C”,命令外部不可见,用setDispPrompt显示提示信息。 常在sample中调用。
按键返回: 从kw1开始。 如setKeywordList(L"A B C"), 按A返回kw1,按B返回kw2。常在sample中获取。
绘制自定义实体,需要在自定义实体内重载渲染函数subWorldDraw
virtual Adesk::Boolean subWorldDraw(AcGiWorldDraw*);