CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2020 开发者帮助

实现运行时行为

2024-5-18 18:27| 发布者: admin| 查看: 68| 评论: 0|原作者: admin|来自: AutoCAD

实现运行时行为

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

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

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

在下面的示例中,该方法使用实例 创建新实体。 派生自 template 类,而 template 类又继承 .实例化对象时,它会创建一个驻留在数据库中的对象。因为继承 ,可用于提示用户以交互方式指定属性。该代码使用指向对象的指针来设置其特定于工具的属性。用户指定剩余的属性值后,对象将这些设置应用于对象。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   苏公网安备32011402011833)

GMT+8, 2024-12-15 12:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部