Exemple #1
0
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.
}