// 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);
     }
 }
Example #3
0
        /// <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);
            }
        }