实现运行时行为
您可以在工具的例程中定义工具的运行时行为。此函数由 的实现调用。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, 2024-12-15 12:41
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.