' ' LoadConfigForMaterial.bas ' ' Author: Paul T. Shilton ' Organization: Engineering Geometry Systems ' Date: 1/16/03 ' Copyright (c) 2003, Engineering Geometry Systems ' ' Required FeatureCAM Version: 9.4.0.01 (for the FMConfiguration object, and other things) ' ' General Description ' ' When the material is changed, the macro looks for a matching configuration file. These ' files must be created by the user for each material. The files are loaded from the ' FeatureCAM directory structure, typically "C:\Program Files\FeatureCAM\Configurations ' Option Explicit Private Sub LoadConfigForMaterial( Doc As FeatureCAM.FMDocument, new_material As String) Dim configs As FMConfigurations Dim new_config As FMConfiguration Dim doc_config As FMConfiguration Dim file As String Dim path As String Set configs = Application.Configurations Set doc_config = configs.Item( Doc.Name) Set new_config = configs.Item( new_material) If ( Not new_config Is Nothing ) Then doc_config.CopyConfiguration ( new_config.Name ) Else path = Application.InstallPath file = path + "\Configurations\" + new_material + ".cdb" If (Not FileExists(file)) Then MsgBox "Unable to load material configuration from " + file + ". File doesn't exist" Exit Sub End If configs.Import( file ) Set new_config = configs.Item( new_material ) If( new_config Is Nothing) Then MsgBox "Failed to load material configuration from " + file Else doc_config.CopyConfiguration ( new_config.Name ) new_config.Delete End If End If End Sub Private Sub Application_DocumentNew(Doc As FeatureCAM.FMDocument) Dim material As String Dim stock As FMStock Set stock = Doc.Stock material = stock.Material LoadConfigForMaterial Doc, material End Sub Private Sub Application_StockMaterialChanged(Doc As FeatureCAM.FMDocument, ByVal old_material As String, ByVal new_material As String) LoadConfigForMaterial Doc, new_material End Sub Public Function FileExists(ByVal fpath As String ) Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") FileExists = IIf(fso.FileExists(fpath), True, False) Set fso = Nothing End Function