/// <summary>
        /// 获取当前SolidEdge活动文档
        /// <para>
        /// 注:如果传入ASM文档名称,则寻找当前活动文档下的Occurrence为当前活动文档
        /// </para>
        /// </summary>
        /// <param name="ASMDocumentName">ASM文档名称</param>
        /// <returns></returns>
        private SolidEdgeDocument GetActiveObjectDocument(string ASMDocumentName = null)
        {
            if (SolidEdgeApplication.Instance == null)
            {
                throw new NullReferenceException("SolidEdgew程序对象获取失败!");
            }

            object objDoc = SolidEdgeApplication.Instance.ActiveDocument;

            if (objDoc == null)
            {
                throw new NullReferenceException("SolidEdge程序当前活动文档不存在!");
            }

            //查找Occurrence
            if (!string.IsNullOrEmpty(ASMDocumentName))
            {
                AssemblyDocument ObjAsm = (AssemblyDocument)objDoc;

                if (ObjAsm.Name.Equals(ASMDocumentName, StringComparison.OrdinalIgnoreCase))
                {
                    return((SolidEdgeDocument)objDoc);
                }

                //工作站环境
                Occurrences occurrences = ObjAsm.Occurrences;
                var         tor         = occurrences.GetEnumerator();

                while (tor.MoveNext())
                {
                    Occurrence occurrence = (Occurrence)tor.Current;
                    if (ASMDocumentName.Equals(occurrence.Name, StringComparison.OrdinalIgnoreCase))
                    {
                        return((SolidEdgeDocument)occurrence.OccurrenceDocument);
                    }
                }
                throw new NullReferenceException($"SolidEdge程序当前活动文档{ASMDocumentName}不存在!");
            }
            //直接返回
            else
            {
                return((SolidEdgeDocument)objDoc);
            }
        }