// Constructor for main components public ReplaceReferences(Inventor.Application ThisApplication, AssemblyDocument inputAssembly, Component inputComponent) { inventorApp = ThisApplication; mainAssembly = inputAssembly; mainComponent = inputComponent; try { List <Component> mainComponents = GetMainComponents(); if (mainComponents.Count > 0) { foreach (Component component in mainComponents) { ReplaceComponentReferencies(component); mainAssembly.Save2(); } } } catch (Exception ex) { MessageBox.Show(ex.Message, System.Reflection.MethodBase.GetCurrentMethod().Name, MessageBoxButton.OK); } }
// Constructors public WriteProperties(Inventor.Application ThisApplication, Component inputComponent, string inputDirectory) { inventorApp = ThisApplication; mainComponent = inputComponent; mainAssembly = (AssemblyDocument)inventorApp.Documents.Open(mainComponent.FullFileName, false); projectDirectory = inputDirectory; try { // Get subdirectories GetSubDirectories(); // Set properties of main assembly PropertySet oPropSet = mainAssembly.PropertySets["Design Tracking Properties"]; oPropSet["Part Number"].Value = mainComponent.PartNumber; oPropSet["Description"].Value = mainComponent.Description; oPropSet = mainAssembly.PropertySets["Inventor User Defined Properties"]; oPropSet["Заводской номер"].Value = mainComponent.FactoryNumber; // Iterate through assembly IterateAssemblyRecursive(mainAssembly.ComponentDefinition.Occurrences); // Replace referencies for main components (ТМ,ТС,ТП, Casing, Frame) ReplaceMainReferencies(); mainAssembly.Save2(); } catch (Exception ex) { MessageBox.Show(ex.Message, System.Reflection.MethodBase.GetCurrentMethod().Name, MessageBoxButton.OK); } }
/// <summary> /// Updates the paramters in the assembly. /// May need to tie in PushParams and Update iLogic Addins /// </summary> public void updateAssemblyParams() { AssemblyDocument assemblyDoc = (AssemblyDocument)invApp.ActiveDocument; AssemblyComponentDefinition assemblyDef = assemblyDoc.ComponentDefinition; Parameters assemblyParameters = assemblyDef.Parameters; UserParameters assemblyUserParams = assemblyParameters.UserParameters; UserParameter assemblyUserParam; #region "User Parameters Update" assemblyUserParam = assemblyUserParams["length"]; assemblyUserParam.Expression = length + " in"; assemblyUserParam = assemblyUserParams["width"]; assemblyUserParam.Expression = width + " in"; assemblyUserParam = assemblyUserParams["height"]; assemblyUserParam.Expression = height + " in"; assemblyUserParam = assemblyUserParams["frameDia"]; assemblyUserParam.Expression = frameDia + " in"; assemblyUserParam = assemblyUserParams["cwDia"]; assemblyUserParam.Expression = cwDia + " in"; assemblyUserParam = assemblyUserParams["cwSpcX"]; assemblyUserParam.Expression = cwSpcX + " in"; assemblyUserParam = assemblyUserParams["cwSpcZ"]; assemblyUserParam.Expression = cwSpcZ + " in"; assemblyUserParam = assemblyUserParams["midFrameDia"]; assemblyUserParam.Expression = midFrameDia + " in"; assemblyUserParam = assemblyUserParams["midFrameNum"]; assemblyUserParam.Expression = midFrameNum + " ul"; #endregion invApp.ActiveView.Fit(); // Fit part to view assemblyDoc.Update2(); assemblyDoc.Save2(); // Release objects assemblyUserParams = null; assemblyParameters = null; assemblyDef = null; assemblyDoc = null; }
// Constructors public ReplaceReferences(Inventor.Application ThisApplication, Component inputComponent, string inputDirectory) { inventorApp = ThisApplication; casingComponent = inputComponent; casingAssembly = (AssemblyDocument)inventorApp.Documents.Open(casingComponent.FullFileName, false);; projectDirectory = inputDirectory; try { // Add casing sub directory string subDirectory = Path.Combine(projectDirectory, "Корпус"); if (Directory.Exists(subDirectory)) { casingDirectory = subDirectory; List <Component> LSPKits = GetLSPKits(); // Search foreach (Component component in LSPKits) { SearchSheetMetalKits(component); } } else { MessageBox.Show("Папка \"Корпус\" не найдена в проекте.", "Замена ссылок в комплектах деталей не будет произведена", MessageBoxButton.OK); } // Add frame sub directory subDirectory = Path.Combine(projectDirectory, "Рама"); if (Directory.Exists(subDirectory)) { frameDirectory = subDirectory; List <Component> frames = GetFrames(); // Renumber foreach (Component component in frames) { RenumberFrame(component); } } else { MessageBox.Show("Папка \"Рама\" не найдена в проекте.", "Замена ссылок в комплектах деталей не будет произведена", MessageBoxButton.OK); } if (componentsToReplace.Count > 0) { GetReplaceCollections(); // Sort assemblies assembliesToReplace = assembliesToReplace.OrderByDescending(o => o.Level).ToList(); foreach (Component component in partsToReplace) { ReplaceComponentReferencies(component); } casingAssembly.Save2(); foreach (Component component in assembliesToReplace) { ReplaceComponentReferencies(component); casingAssembly.Save2(); } } } catch (Exception ex) { MessageBox.Show(ex.Message, System.Reflection.MethodBase.GetCurrentMethod().Name, MessageBoxButton.OK); } }