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