static void Main(string[] args) { SolidEdgeFramework.Application application = null; SolidEdgeAssembly.AssemblyDocument document = null; SolidEdgeAssembly.Configurations configurations = null; SolidEdgeAssembly.Configuration configuration = null; try { // Register with OLE to handle concurrency issues on the current thread. SolidEdgeCommunity.OleMessageFilter.Register(); // Connect to or start Solid Edge. application = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true); // Get a reference to the active assembly document. document = application.GetActiveDocument <SolidEdgeAssembly.AssemblyDocument>(false); if (document != null) { // Get a reference to the Configurations collection. configurations = document.Configurations; // Configuration name has to be unique so for demonstration // purposes, use a random number. Random random = new Random(); string configName = String.Format("Configuration {0}", random.Next()); configuration = configurations.Item(1); object configList = new string[] { configuration.Name }; object missing = Missing.Value; // NOTE: Not sure why but this is causing Solid Edge ST6 to crash. // Add the new configuration. configuration = configurations.AddDerivedConfig(1, 0, 0, ref configList, ref missing, ref missing, configName); } else { throw new System.Exception("No active document"); } } catch (System.Exception ex) { Console.WriteLine(ex.Message); } finally { SolidEdgeCommunity.OleMessageFilter.Unregister(); } }
static void Main(string[] args) { SolidEdgeFramework.Application application = null; SolidEdgeAssembly.AssemblyDocument assemblyDocument = null; SolidEdgeAssembly.Configurations configurations = null; SolidEdgeAssembly.Configuration configuration = null; try { // Register with OLE to handle concurrency issues on the current thread. SolidEdgeCommunity.OleMessageFilter.Register(); // Connect to or start Solid Edge. application = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true); // Get a refrence to the active assembly document. assemblyDocument = application.GetActiveDocument <SolidEdgeAssembly.AssemblyDocument>(false); if (assemblyDocument != null) { // Get a reference tot he Configurations collection. configurations = assemblyDocument.Configurations; // Configuration name has to be unique so for demonstration // purposes, use a random number. Random random = new Random(); string configName = String.Format("Configuration {0}", random.Next()); // Add the new configuration. configuration = configurations.Add(configName); // Make the new configuration the active configuration. configuration.Apply(); } else { throw new System.Exception("No active document."); } } catch (System.Exception ex) { Console.WriteLine(ex.Message); } finally { SolidEdgeCommunity.OleMessageFilter.Unregister(); } }