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); }
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); }
//使能面板上的位置显示控件,并显示位置 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(); }
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); }
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(); }
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); }
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"); } }