예제 #1
0
        public static void GetEquationValueByName(ModelDoc2 Part, string VariableName, ref object Value)
        {
            /// <summary>
            /// 获取方程式中全局变量的值,Golbal Variables
            /// </summary>
            /// <param name="VariableName">全局变量的名称</param>
            /// <param name="Part">模型</param>
            /// <returns>如果没有找到这个全局变量,返回-1</returns>

            EquationMgr emgr = (EquationMgr)Part.GetEquationMgr();
            int         ic   = emgr.GetCount();

            for (int i = 0; i < ic; i++)
            {
                string s = emgr.get_Equation(i);
                s = s.Replace("\"", "");
                s = s.Remove(s.IndexOf('='));
                s = s.Trim();
                if (s.ToLower() == VariableName.ToLower())
                {
                    Value = emgr.get_Value(i);
                    return;
                }
            }
            Value = -1;
        }
예제 #2
0
파일: Model.cs 프로젝트: gaodansoft/sw
        //by hying 2012/1/14  判断是否有失效的方程式,并将其禁用掉
        public void disableEqu(ModelDoc2 swModel)
        {
            // WriteLog("整理方程式", 1);

            try
            {
                EquationMgr swEquationMgr = null;

                swEquationMgr = ((EquationMgr)(swModel.GetEquationMgr()));

                int EQUnum = swEquationMgr.GetCount();
                for (int i = 0; i < EQUnum; i++)
                {
                    double dval = swEquationMgr.get_Value(i);
                    if (swEquationMgr.Status == -1)
                    {
                        swEquationMgr.set_Suppression(i, true);
                        //WriteLog("整理方程式成功", 1);
                    }
                }
            }
            catch (Exception ex)
            {
                //swEquationMgr.set_Suppression(i, true);
                //Exception ex = new Exception("整理方程式失败!");
                throw ex;
            }
        }
예제 #3
0
        public void Load()
        {
            this.swDoc = OpenSWDoc(this.FilePath);
            #region 00. 获取方程式的值
            Sizes.Clear();
            EquationMgr emgr = (EquationMgr)swDoc.GetEquationMgr();
            int         ic   = emgr.GetCount();
            for (int i = 0; i < ic; i++)
            {
                //在这里想办法只获取全局变量
                string s = emgr.get_Equation(i);
                if (s.Contains("@"))
                {
                    continue;
                }
                s = s.Replace("\"", "");
                s = s.Remove(s.IndexOf('='));
                s = s.Trim();
                s = s.ToUpper();
                object v = emgr.get_Value(i);

                if (Sizes.ContainsKey(s))
                {
                    Sizes[s] = v;
                }
                else
                {
                    Sizes.Add(s, v);
                }
            }
            _Sizes = new Dictionary <string, object>(Sizes);
            #endregion
            #region 10. 获取零部件属性的值
            Attrs.Clear();
            object[] PropNames;
            string   cfgname2            = swDoc.ConfigurationManager.ActiveConfiguration.Name;
            CustomPropertyManager cpmMdl = swDoc.Extension.get_CustomPropertyManager(cfgname2);
            if (cpmMdl.Count > 0)
            {
                PropNames = (object[])cpmMdl.GetNames();
                string outval = "";
                string sovVal = "";
                foreach (object AtrName in PropNames)
                {
                    string s = AtrName.ToString();
                    cpmMdl.Get2(AtrName.ToString(), out outval, out sovVal);
                    if (Attrs.ContainsKey(s))
                    {
                        Attrs[s] = sovVal;
                    }
                    else
                    {
                        Attrs.Add(s, sovVal);
                    }
                }
            }
            _Attrs = new Dictionary <string, string>(Attrs);
            #endregion
        }
예제 #4
0
        /// <summary>
        /// 获取方程式中全局变量的值,Golbal Variables
        /// </summary>
        /// <param name="VariableName">全局变量的名称</param>
        /// <param name="Part">模型</param>
        /// <returns>如果没有找到这个全局变量,返回-1</returns>
        public double getGolbalVariablesValue(string VariableName, ModelDoc2 Part)
        {
            EquationMgr emgr = (EquationMgr)Part.GetEquationMgr();
            int         ic   = emgr.GetCount();

            for (int i = 0; i < ic; i++)
            {
                string s = emgr.get_Equation(i);
                s = s.Replace("\"", "");
                s = s.Remove(s.IndexOf('='));
                s = s.Trim();
                if (s.ToLower() == VariableName.ToLower())
                {
                    return(emgr.get_Value(i));
                }
            }
            return(-1);
        }
예제 #5
0
        private void OpenDoc(string _FilePath)
        {
            this.FilePath = _FilePath;
            swDoc         = OpenSWDoc(_FilePath);
            #region 00. 获取方程式的值
            Sizes.Clear();
            EquationMgr emgr = (EquationMgr)swDoc.GetEquationMgr();
            int         ic   = emgr.GetCount();
            for (int i = 0; i < ic; i++)
            {
                //在这里想办法只获取全局变量
                string s = emgr.get_Equation(i);
                if (s.Contains("@"))
                {
                    continue;
                }
                s = s.Replace("\"", "");
                s = s.Remove(s.IndexOf('='));
                s = s.Trim();
                s = s.ToUpper();
                object v = emgr.get_Value(i);

                if (Sizes.ContainsKey(s))
                {
                    Sizes[s] = v;
                }
                else
                {
                    Sizes.Add(s, v);
                }
            }
            _Sizes = new Dictionary <string, object>(Sizes);
            #endregion
            #region 10. 获取零部件属性的值
            Attrs.Clear();
            _Attrs = new Dictionary <string, string>(Attrs);
            #endregion
            //CloseDoc();
        }