public static double GetDocDensity(Document document, double ApiDensity)
        {
            UnitsOfMeasure unitsOfMeasure = document.UnitsOfMeasure;

            double num  = unitsOfMeasure.ConvertUnits(1.0, "g", unitsOfMeasure.MassUnits);
            double num2 = unitsOfMeasure.ConvertUnits(1.0, "cm^3", GetDocVolumeUnits(document));

            return(ApiDensity * num / num2);
        }
Ejemplo n.º 2
0
        public Inventor.Vector UpdateUnits(Inventor.Vector inp)
        {
            UnitsOfMeasure oUOM = _invApp.ActiveDocument.UnitsOfMeasure;

            inp.X = oUOM.ConvertUnits(inp.X, "cm", "m");
            inp.Y = oUOM.ConvertUnits(inp.Y, "cm", "m");
            inp.Z = oUOM.ConvertUnits(inp.Z, "cm", "m");

            return(inp);
        }
Ejemplo n.º 3
0
        //使能面板上的位置显示控件,并显示位置
        private void ShowLocation(double Xposition, double Yposition)
        {
            m_connectCmdDlg.numerUPX.Enabled = true;
            m_connectCmdDlg.numerUPY.Enabled = true;

            UnitsOfMeasure unitsOfMeasure = m_inventorApplication.ActiveDocument.UnitsOfMeasure;
            string         unitExpre      = unitsOfMeasure.GetStringFromType(unitsOfMeasure.LengthUnits);

            m_connectCmdDlg.numerUPX.Text = (unitsOfMeasure.ConvertUnits(Xposition, "cm", unitExpre)).ToString();
            m_connectCmdDlg.numerUPY.Text = (unitsOfMeasure.ConvertUnits(Yposition, "cm", unitExpre)).ToString();
        }
Ejemplo n.º 4
0
        public double[] FindOrigin(ComponentOccurrence oCompOccur)
        {
            UnitsOfMeasure oUOM = _invApp.ActiveDocument.UnitsOfMeasure;
            AssemblyComponentDefinition oCompDef = (AssemblyComponentDefinition)oCompOccur.Definition;
            object oWorkPointProxy;

            double[]  c   = new double[3];
            WorkPoint oWP = oCompDef.WorkPoints[1];

            oCompOccur.CreateGeometryProxy(oWP, out oWorkPointProxy);

            c[0] = ((WorkPointProxy)oWorkPointProxy).Point.X;
            c[1] = ((WorkPointProxy)oWorkPointProxy).Point.Y;
            c[2] = ((WorkPointProxy)oWorkPointProxy).Point.Z;

            for (int k = 0; k < 3; k++)
            {
                c[k] = oUOM.ConvertUnits(c[k], "cm", "m");
            }

            string AbsolutePosition, name;

            name = FormatName(oCompOccur.Name);

            return(c);
        }
Ejemplo n.º 5
0
        private void ShowDia(double dia)
        {
            //get the active document
            Document activeDocument = m_inventorApplication.ActiveDocument;
            //get the unit of measure object
            UnitsOfMeasure unitsOfMeasure = activeDocument.UnitsOfMeasure;

            string unitExpre = unitsOfMeasure.GetStringFromType(unitsOfMeasure.LengthUnits);

            m_connectCmdDlg.diaTextBox.Text = (unitsOfMeasure.ConvertUnits(dia, "cm", unitExpre)).ToString();
        }
Ejemplo n.º 6
0
        public double[] FindCenterOfMassOffset(ComponentOccurrence oDoc)
        {
            // Store temporary variables and names
            MassProperties oMassProps = oDoc.MassProperties;

            double[] c = new double[3];

            c[0] = oMassProps.CenterOfMass.X;
            c[1] = oMassProps.CenterOfMass.Y;
            c[2] = oMassProps.CenterOfMass.Z;

            UnitsOfMeasure oUOM = _invApp.ActiveDocument.UnitsOfMeasure;

            for (int k = 0; k < 3; k++)
            {
                c[k] = oUOM.ConvertUnits(c[k], "cm", "m");
            }

            return(c);
        }
        private double ConvertUnit(Double value, String unit1, String unit2)
        {
            double result = 0.0;

            Document activeDocument = m_inventorApplication.ActiveDocument;

            UnitsOfMeasure unitsOfMeasure = activeDocument.UnitsOfMeasure;

            try
            {
                object vVal;
                vVal   = unitsOfMeasure.ConvertUnits(value, unit1, unit2);
                result = System.Convert.ToDouble(vVal);
            }
            catch (System.Exception e)
            {
                string strErrorMsg = e.Message;

                result = 0.0;
                return(result);
            }
            return(result);
        }
Ejemplo n.º 8
0
        public void UpdateCommandStatus()
        {
            m_connectCmdDlg.connectOkButton.Enabled = false;

            //更新连接对齐类型
            if (m_connectCmdDlg.centerRadioButton.Checked == false && m_connectCmdDlg.onesideRadioButton.Checked == false && m_connectCmdDlg.othersideRadioButton.Checked == false)
            {
                m_connectAlignType = ConnectAlignTypeEnum.kNoneType;
            }
            else
            {
                if (m_connectCmdDlg.centerRadioButton.Checked == true)
                {
                    m_connectAlignType = ConnectAlignTypeEnum.kCenterAlignType;
                }
                else
                {
                    if (m_connectCmdDlg.onesideRadioButton.Checked == true)
                    {
                        m_connectAlignType = ConnectAlignTypeEnum.kOnesideAlignType;
                    }
                    else
                    {
                        m_connectAlignType = ConnectAlignTypeEnum.kOthersideAlignType;
                    }
                }
            }

            //更新元件1的UCS使其显示,并将其选中port加入高亮显示集
            if (m_thisSurface != null)
            {
                if (m_highlightSet != null)
                {
                    this.ClearHighlight();
                }
                this.HightghtSelectSurface(m_thisSurface);

                //若两元件均已选择完毕,则判断两元件是否平行
                if (m_connectToSurface != null)
                {
                    m_connectCmdDlg.connectOkButton.Enabled = true;

                    if (IsCavParallel())
                    {
                        MessageBox.Show("无法连接平行油孔!请选择其他油孔。");

                        m_connectToSurface = null;
                        m_connectToCav     = null;

                        if (m_highlightSet != null)
                        {
                            this.ClearHighlight();
                        }

                        m_connectCmdDlg.connectOkButton.Enabled = false;
                        return;
                    }

                    this.HightghtSelectSurface(m_connectToSurface);

                    UpdatePreviewGraphics();
                }
                else
                {
                    m_connectCmdDlg.connectOkButton.Enabled = false;
                }
            }

            //更新元件1相对位置
            UnitsOfMeasure unitsOfMeasure = m_inventorApplication.ActiveDocument.UnitsOfMeasure;
            string         unitExpre      = unitsOfMeasure.GetStringFromType(unitsOfMeasure.LengthUnits);

            m_Xposition = unitsOfMeasure.ConvertUnits(double.Parse(m_connectCmdDlg.numerUPX.Text), unitExpre, "cm");
            m_Yposition = unitsOfMeasure.ConvertUnits(double.Parse(m_connectCmdDlg.numerUPY.Text), unitExpre, "cm");

            //更新元件2 portIndex
            if (m_connectCmdDlg.portIndexComboBox.Text != "")
            {
                m_portIndex = int.Parse(m_connectCmdDlg.portIndexComboBox.Text);
            }

            //更新元件1 port1的Dia
            if (m_connectCmdDlg.diaTextBox.Text != "")
            {
                m_Dia = unitsOfMeasure.ConvertUnits(double.Parse(m_connectCmdDlg.diaTextBox.Text), unitExpre, "cm");
            }
        }