首页 > 其他分享 >拓展方法

拓展方法

时间:2022-11-09 18:56:54浏览次数:35  
标签:文件 return string 拓展 static ModelDoc2 方法 public

一、什么是扩展方法

拓展方法:能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。

二、扩展方法结构

  • 扩展方法所在的类必须声明为static。
  • 扩展方法必须声明为public和static。
  • 扩展方法的第一个参数必须包含关键字this,并且在后面指定扩展的类的名称。
  •  

     

  •  public static class SWAPI
        {
    
             public static string 文件名(this ModelDoc2 文件) 
            {
              
                return Path.GetFileNameWithoutExtension(文件.GetPathName());
            }
           
            public static string 目录(this ModelDoc2 文件)
            {
                return Path.GetDirectoryName(文件.GetPathName())+"\\";
            }
           
            public static string 工程图路径(this string 零件装配体全路径)
            {
                return Path.GetDirectoryName(零件装配体全路径) + "\\" + Path.GetFileNameWithoutExtension(零件装配体全路径) + ".SLDDRW";
    
            }
            public static string 工程图路径( this ModelDoc2 文件)
            {
                if (文件.GetType() != 3)
                {
                  return  Path.GetDirectoryName(文件.GetPathName()) + "\\" + Path.GetFileNameWithoutExtension(文件.GetPathName()) + ".SLDDRW";
                }
    
                return "";
            }
            public static bool 是否存在工程图( this ModelDoc2 文件)
            {
                if (文件.GetType() !=3)
                {
                  string str    = Path.GetDirectoryName(文件.GetPathName()) + "\\" + Path.GetFileNameWithoutExtension(文件.GetPathName()) + ".SLDDRW";
                    return File.Exists(str);
                }
    
                return false;
            }
            public static string 材质(this PartDoc 零件)
            {
                return 零件.GetMaterialPropertyName2("", out _);
            }
            public static double 重量(this ModelDoc2 文件)
            {
                if (文件.GetType()!=3)
                {
                    MassProperty massProperty = 文件.Extension.CreateMassProperty();
                    massProperty.UseSystemUnits = true;
                    return Math.Round(massProperty.Mass, 3);
    
                }
                return 0;
            }
            public static void 图号分离(this ModelDoc2 文件,string 图号,string 名称)
            {
                string name = 文件.文件名();
                if (name.Contains(" "))
                {
                    string TH = name.Split(new char[1] { ' ' })[0];
                    string MC = name.Split(new char[1] { ' ' })[1];
                    文件.DeleteCustomInfo2("", 图号);
                    文件.DeleteCustomInfo2("", 名称);
                    文件.AddCustomInfo3("", 图号, 30, TH);
                    文件.AddCustomInfo3("", 名称, 30, MC);
                }
            }
            public static void 删除自定义属性(this ModelDoc2 文件)
            {
                string[] names = (string[])文件.GetCustomInfoNames();
                if (names !=null)
                {
                    foreach (string name in names)
                    {
                        文件.DeleteCustomInfo2("", name);
                    }
                }
            }
            public static void 删除配置属性(this ModelDoc2 文件)
            {   
                string[] CurCFGnames = (string[])文件.GetConfigurationNames();
                foreach (string cname in CurCFGnames)
                {
                    CustomPropertyManager custom = 文件.Extension.CustomPropertyManager[cname];
                    string[] names = (string[])custom.GetNames();
                    foreach (string name in names)
                    {
                        文件.DeleteCustomInfo2(cname, name);
                    }
    
                }
            }
           
        }

     

  • 上述代码只是个人使用,不保证无误。
  • 三、扩展方法应用

  • 1   ModelDoc2 modelDoc2 = swApp.ActiveDoc;
    2             string 文件名 = modelDoc2.文件名();
    View Code

     

 

标签:文件,return,string,拓展,static,ModelDoc2,方法,public
From: https://www.cnblogs.com/liuyunbk/p/16874818.html

相关文章