在示例项目中,用于创建工具的命令处理程序将浮出控件技术与工具创建相结合。它创建一个默认工具、两个工具和一个命令工具,并将每个工具添加到其形状包中。此示例通过调用函数来设置工具的默认值。然后,它通过提供覆盖这些默认值的专用属性值来创建新工具。以下清单显示了创建螺栓工具目录的命令的完整定义:New() void asdkCreateTools() { CComObject<CBoltTool> tool; // Create the stock tool (definition) AcTcCatalog *pCatalog=tool.CreateStockToolATC(_T("BoltCatalog")); if(!pCatalog) { acutPrintf("\nFailed to create the Stock Tool\n"); return; } // Create the 'BoltPalette' AcTcPalette *pPalette=tool.CreatePaletteATC(pCatalog,_T("BoltPalette")); if(!pPalette) { acutPrintf("\nFailed to create the Palette\n"); return; } // Create the shape package to hold the flyout tool definitions AcTcPackage* pShapePackage=tool.CreateShapeCatalogATC(_T("Bolt Flyout Catalog")); if(!pShapePackage) { acutPrintf("\nFailed to create the Shape Catalog\n"); return; } if(pShapePackage->GetChildCount()==0) { // Add two tools to this package tool.New(); //Set Default Values specified in the New //override for this tool. if(!tool.CreateToolATC(pShapePackage,_T("Stainless Bolt"), _T("IDB_BOLTIMAGE"))) acutPrintf("\nFailed to create a Tool instance\n"); // Now, create additional tools with different parameters: tool.m_HeadSides=6; tool.m_HeadHeight=2.5f; tool.m_ShaftLength=12.0f; tool.m_ShaftDiameter=3.0f; tool.m_ThreadLength=3.5f; tool.m_ThreadWidth=0.1f; tool.m_HeadDiameter=7.0f; tool.m_Color.setColorIndex(2); _tcscpy(tool.m_MaterialName,_T("Aluminum")); _tcscpy(tool.m_PartNumber,_T("Unassigned")); if(!tool.CreateToolATC(pShapePackage,_T("Aluminum Bolt"), _T("IDB_BOLTALUMINUM"))) acutPrintf("\nFailed to create a Tool instance\n"); // A separate galvanized tool. tool.m_HeadSides=6; tool.m_HeadHeight=3.5f; tool.m_ShaftLength=15.0f; tool.m_ShaftDiameter=5.0f; tool.m_ThreadLength=5.5f; tool.m_ThreadWidth=0.3f; tool.m_HeadDiameter=9.0f; tool.m_Color.setColorIndex(4); _tcscpy(tool.m_MaterialName,_T("Galvanized")); _tcscpy(tool.m_PartNumber,_T("Unassigned")); if(!tool.CreateToolATC(pShapePackage, _T("Galvanized"), _T("IDB_BOLTGALVANIZED"))) acutPrintf("\nFailed to create a Tool instance\n"); if(!tool.CreateCommandToolATC(pShapePackage, _T("BoltJig"), _T("IDB_BOLTJIG"), _T("^C^CBOLTJIG"))) acutPrintf("\nFailed to create the Command Tool instance\n"); } // Now create a flyout tool, a regular tool, and a command // tool on the palette. tool.New();//reset the properties... if(!tool.CreateFlyoutToolATC(pPalette, pShapePackage, "Bolt Flyout")) acutPrintf("\nFailed to create a Flyout Tool instance\n"); if(!tool.CreateToolATC(pPalette, _T("Stainless Tool"), _T("IDB_BOLTIMAGE"))) acutPrintf("\nFailed to create a Shape Tool instance\n"); if(!tool.CreateCommandToolATC(pPalette, _T("BoltJig"), _T("IDB_ BOLTJIG"),_T("^C^CBOLTJIG"))) acutPrintf("\nFailed to create a Shape Command Tool instance\n"); // Refresh the Tool Palette with the above changes. AcTcGetManager()->LoadCatalogs(); // Refresh the Palette in the // AutoCAD UI. } 在上面的代码中,请注意专用属性设置如何创建铝螺栓工具,然后创建镀锌钢示例。唯一的形状表示弹出菜单上的每个工具。这些形状是通过为每个工具的函数调用提供单独的位图 ID 来指定的。CreateToolATC() |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:08
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.