CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

实现运行时行为

2022-12-31 08:53| 发布者: admin| 查看: 254| 评论: 0|来自: AutoCAD

您可以在其例程中定义工具的运行时行为。此函数由实现调用。executeCallback()AcadToolImplIAcadTool::Execute()

工具可以执行在AutoCAD中以编程方式实现的任何操作。例如,命令工具启动AutoCAD命令和宏。如果使用 theclass 创建命令工具,则只需在调用时指定命令或宏字符串。在内部,宏字符串存储在常用工具的 ATC 文件中的特殊 XML 节点中。在此最简单的情况下,您无需提供任何其他执行代码。AcadToolImplCreateCommandToolATC()<Macro>

非命令工具经常创建自定义实体的预配置实例,例如,提供自定义实体的多个预配置版本的工具选项板。然后,当执行工具时,用户仅提供工具的插入点和尺寸。可以设置其他属性以匹配内置的行业标准。

在下面的示例中,该方法使用 aninstance,, 创建一个新的实体。派生自模板类,而模板类又继承。实例化对象时,它会创建一个驻留数据库的对象。因为继承,可以用来提示用户交互地指定属性。该代码使用指向对象的指针来设置其特定于工具的属性。用户指定其余属性值后,对象将这些设置应用于对象。executeCallback()AsdkBoltJigPromptObjectAsdkBoltJigAsdkPromptBaseAcEdJigAsdkBoltJigasdkBoltAsdkPromptBaseAcEdJigPromptObjectexecuteCallback()asdkBoltAsdkBoltJig

下面是一个示例函数:executeCallback()

STDMETHODIMP CBoltTool::executeCallback()
{
CComObject <AsdkBoltJig> PromptObject; // Instantiate a Prompt
                                       // for the Employee.
// Set the color, layer, Material and Part Number.
asdkBolt *pBolt =     (asdkBolt*)asdkBolt::cast(PromptObject.m_pDbrObject);
if (pBolt)
{
    // Color, Color Name and Book Name
    AcCmColor color;
    color.setColor(m_Color.color());
    color.setNames(m_Color.colorName(),m_Color.bookName());
    pBolt->setColor(color);
    pBolt->setLayer(CT2A(m_szLayer));
    pBolt->setMaterialName(CT2A(m_MaterialName));
    pBolt->setPartNumber(CT2A(m_PartNumber));
}
else
    return E_FAIL;
// Specify that we're setting the Tool's properties to the 
// Prompt so they are not jigged.
PromptObject.bSetFromTool=true;
PromptObject.m_HeadSides=m_HeadSides;
PromptObject.m_HeadHeight=m_HeadHeight;
PromptObject.m_ShaftLength=m_ShaftLength;
PromptObject.m_ShaftDiameter=m_ShaftDiameter;
PromptObject.m_ThreadLength=m_ThreadLength;
PromptObject.m_ThreadWidth=m_ThreadWidth;
PromptObject.m_HeadDiameter=m_HeadDiameter;
// Enter the prompt loop.
AcDbObjectId PromptId=PromptObject.promptLoop();
return S_OK;
}

帮助程序模板类是 ObjectARX SDK 的一部分。它在\inc\asdkPromptBase.h文件中定义。AsdkPromptBase


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 16:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部