实现运行时行为
您可以在工具的例程中定义工具的运行时行为。此函数由 的实现调用。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 父主题: |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-10-31 06:16
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.