Esempio n. 1
0
        /// <summary>
        /// Updates the finish for all parts
        /// </summary>
        public void updateFinish()
        {
            AssemblyDocument    assemblyDoc = (AssemblyDocument)invApp.ActiveDocument;
            DocumentsEnumerator allRefDocs  = assemblyDoc.AllReferencedDocuments;

            // Find all part files and change the finish
            foreach (Document oDoc in allRefDocs)
            {
                if (oDoc.DocumentType.Equals(DocumentTypeEnum.kPartDocumentObject))
                {
                    PartDocument partDoc           = (PartDocument)oDoc;
                    PropertySet  partCustomPropSet = partDoc.PropertySets["Inventor User Defined Properties"];
                    Property     partProperty      = partCustomPropSet["Finish"];

                    partProperty.Value = finish;

                    // Release Objectsz
                    partDoc           = null;
                    partCustomPropSet = null;
                    partProperty      = null;
                }
            }

            // Release objects
            allRefDocs  = null;
            assemblyDoc = null;
        }
Esempio n. 2
0
        /// <summary>
        /// Updates the material for all parts
        /// </summary>
        public void updateMaterial()
        {
            AssemblyDocument    assemblyDoc = (AssemblyDocument)invApp.ActiveDocument;
            DocumentsEnumerator allRefDocs  = assemblyDoc.AllReferencedDocuments;

            // Find all part files and change the material
            foreach (Document oDoc in allRefDocs)
            {
                if (oDoc.DocumentType.Equals(DocumentTypeEnum.kPartDocumentObject))
                {
                    PartDocument            partDoc = (PartDocument)oDoc;
                    PartComponentDefinition partDef = partDoc.ComponentDefinition;

                    // Try to set the material
                    try
                    {
                        partDef.Material.Name = material;
                    }
                    catch
                    {
                    }
                    finally
                    {
                        // Release objects
                        partDoc = null;
                        partDef = null;
                    }
                }
            }

            // Release objects
            allRefDocs  = null;
            assemblyDoc = null;
        }
Esempio n. 3
0
        /// <summary>
        /// Make the workplanes in the model invisible
        /// </summary>
        private void workPlanesInvisible()
        {
            AssemblyDocument assemblyDoc = (AssemblyDocument)invApp.ActiveDocument;

            DocumentsEnumerator allRefDocs = assemblyDoc.AllReferencedDocuments;

            foreach (Document oDoc in allRefDocs)
            {
                if (oDoc.DocumentType.Equals(DocumentTypeEnum.kPartDocumentObject) ||
                    oDoc.DocumentType.Equals(DocumentTypeEnum.kAssemblyDocumentObject))
                {
                    dynamic    oCompDef       = ((PartDocument)oDoc).ComponentDefinition;
                    WorkPlanes oDocWorkPlanes = oCompDef.WorkPlanes;

                    foreach (WorkPlane oWp in oDocWorkPlanes)
                    {
                        oWp.Visible = false;
                    }

                    // Release objects
                    oDocWorkPlanes = null;
                    oCompDef       = null;
                }
            }

            // Release objects
            allRefDocs  = null;
            assemblyDoc = null;
        }
        private void ReplaceReferencesMethod(string oldFilePath, string newFilePath)
        {
            try
            {
                // Open document with specific filepath
                ApprenticeServerComponent oApprentice = new ApprenticeServerComponent();
                Document oDoc = (Document)oApprentice.Open(oldFilePath);

                // Find where file was used before renaming
                DocumentsEnumerator oDocsEnum = oDoc.ReferencingDocuments;

                // Save file with new name
                oDoc.SaveAs(newFilePath, false);

                // Look through referencing documents
                foreach (Document locDoc in oDocsEnum)
                {
                    foreach (ReferencedFileDescriptor oRefFileDesc in locDoc.ReferencedFileDescriptors)
                    {
                        if (oRefFileDesc.FullFileName == oldFilePath)
                        {
                            // Replace the reference
                            oRefFileDesc.PutLogicalFileNameUsingFull(newFilePath);
                        }
                    }
                }
                oApprentice = null;

                // Define file name
                string filename = System.IO.Path.GetFileName(oldFilePath);
                // Find IDW files and export PDF
                InventorPlugins.ExportPDF exportPDF = new InventorPlugins.ExportPDF(inventorApp, oDoc, oldFilePath, newFilePath);
                exportPDF = null;
                // Export to DXF
                InventorPlugins.ExportDXF exportDXF = new InventorPlugins.ExportDXF(inventorApp, oDoc, filename);
                exportDXF = null;
                // Close document
                oDoc.Close(true);
                oDoc = null;
                // Delete old files
                if (System.IO.File.Exists(oldFilePath))
                {
                    System.IO.File.Delete(oldFilePath);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, System.Reflection.MethodBase.GetCurrentMethod().Name, MessageBoxButton.OK);
            }
        }
Esempio n. 5
0
        public void pushChildren()
        {
            DocumentsEnumerator allRefDocs = assemblyDoc.AllReferencedDocuments;

            try
            {
                foreach (Document oDoc in allRefDocs)
                {
                    if (oDoc.DocumentType.Equals(DocumentTypeEnum.kPartDocumentObject))
                    {
                        // For Parts
                        PartDocument            partFile       = (PartDocument)oDoc;
                        PartComponentDefinition partFileDef    = partFile.ComponentDefinition;
                        UserParameters          partParameters = partFileDef.Parameters.UserParameters;
                        ArrayList paraList = new ArrayList();

                        foreach (Parameter parameter in partParameters)
                        {
                            paraList.Add(parameter.Name);
                        }

                        try
                        {
                            foreach (Parameter parameter in assemblyParameters)
                            {
                                if (parameter.IsKey && !paraList.Contains(parameter.Name))
                                {
                                    // Must use add by value to get parameters that are nonnumeric
                                    partParameters.AddByValue(parameter.Name, parameter.Value, parameter.get_Units());
                                    //   partParameters.AddByExpression(parameter.Name, parameter.Value, parameter.get_Units());
                                }
                            }
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }

                    else if (oDoc.DocumentType.Equals(DocumentTypeEnum.kAssemblyDocumentObject))
                    {
                        // For Subassemblies
                        AssemblyDocument            partFile       = (AssemblyDocument)oDoc;
                        AssemblyComponentDefinition subAssemblyDef = partFile.ComponentDefinition;
                        UserParameters subAssemblyParameters       = subAssemblyDef.Parameters.UserParameters;

                        ArrayList paraList = new ArrayList();

                        try
                        {
                            foreach (Parameter parameter in subAssemblyParameters)
                            {
                                paraList.Add(parameter.Name);
                            }

                            foreach (Parameter parameter in assemblyParameters)
                            {
                                if (parameter.IsKey && !paraList.Contains(parameter.Name))
                                {
                                    subAssemblyParameters.AddByExpression(parameter.Name, "1", parameter.get_Units());
                                }
                            }
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }