///////////////////////////////////////////////////////////// // Use: OnPreSelect Handler. // ///////////////////////////////////////////////////////////// private void SelectEvents_OnPreSelect( ref object PreSelectEntity, out bool DoHighlight, ref ObjectCollection MorePreSelectEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, View View) { if (_PreSelectFilters.Count != 0 && !_PreSelectFilters.Contains( AdnInteractionManager.GetInventorType(PreSelectEntity))) { DoHighlight = false; return; } DoHighlight = true; }
private void OnSelect(ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, View View) { if (JustSelectedEntities.Count == 0) { return; } SurfaceGraphicsFace face = JustSelectedEntities[1] as SurfaceGraphicsFace; if (null != face) { mSelectedFace = face; } if (mRadius < 0.0001) { CalculateRadius(); } mSelectEvents.ResetSelections(); }
static void SelectEvents_OnSelect( ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, View View) { VertexSelectEffect effect = new VertexSelectEffect( _clientGraphicsMng, ModelPosition, 0.01, 0.8); RenderStyles styles = AdnInventorUtilities.GetProperty( AdnInventorUtilities.InventorApplication.ActiveDocument, "RenderStyles") as RenderStyles; effect.GraphicsNode.RenderStyle = styles["Glass (Limo Tint)"]; _clientGraphicsMng.DrawDynamicGraphics(effect); }
void select_OnPreSelect(ref object PreSelectEntity, out bool DoHighlight, ref ObjectCollection MorePreSelectEntities, SelectionDeviceEnum SelectionDevice, Inventor.Point ModelPosition, Point2d ViewPosition, Inventor.View View) { DoHighlight = true; //���õ������ѡ�Ķ�������ã�����ǰ�涨��Ĺ�����������֪���ö���һ����һ���� Edge edge; edge = (Edge)PreSelectEntity; //ȷ���Ƿ�����ñ����в����ӵı� EdgeCollection edges; edges = edge.TangentiallyConnectedEdges; if (edges.Count > 1) { //�������������ߵĶ��� MorePreSelectEntities = ThisApplication.TransientObjects.CreateObjectCollection(null); for (int i = 1; i <= edges.Count; i++) { MorePreSelectEntities.Add(edges[i]); } } }
public override void OnSelect(ObjectsEnumerator justSelectedEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, Inventor.View view) { int nomb = justSelectedEntities.Count; if (nomb > 0) { object selectedEntity = justSelectedEntities[1]; if (m_editNetForm.checkBoxChoose.Checked) { m_selectFace = (Face)selectedEntity; m_editNetForm.checkBoxChoose.Checked = false; } this.GetSelectiFeature(m_selectFace, ref m_selectiFeature); m_selectEvents.AddToSelectedEntities(m_selectiFeature); DisableInteraction(); UpdateCommandStatus(); } }
///////////////////////////////////////////////////////////// // use: OnUnselect ThreadFeature Handler. // ///////////////////////////////////////////////////////////// void SelectEvents_OnUnSelect( ObjectsEnumerator UnSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, Inventor.View View) { foreach (System.Object obj in UnSelectedEntities) { foreach (ListViewItem item in lvFeatures.Items) { if (item.Tag == obj) { item.Remove(); break; } } } if (_InteractionManager.SelectedEntities.Count == 0) { bOk.Enabled = false; } }
public override void OnSelect(ObjectsEnumerator justSelectedEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, Inventor.View view) { int nomb = justSelectedEntities.Count; if (nomb > 0) { object selectedEntity = justSelectedEntities[1]; if (m_editCavityLibrary.checkBoxFace.Checked) { m_withThisFace = (Face)selectedEntity; m_editCavityLibrary.checkBoxFace.Checked = false; m_mouseFlag = true; } } m_selectEvents.AddToSelectedEntities(m_withThisFace); DisableInteraction(); UpdateCommandStatus(); }
///////////////////////////////////////////////////////////// // Use: OnSelect ThreadFeature Handler. // ///////////////////////////////////////////////////////////// void SelectEvents_OnSelect( ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, Inventor.View View) { foreach (System.Object obj in JustSelectedEntities) { PartFeature feature = obj as PartFeature; ThreadFeature thread = obj as ThreadFeature; ThreadInfo threadInfo = thread.ThreadInfo; Face threadedFace = thread.ThreadedFace[1]; if (feature.Suppressed) { continue; } if (thread.ThreadInfoType == ThreadTypeEnum.kTaperedThread && threadedFace.SurfaceType != SurfaceTypeEnum.kConeSurface) { DialogResult res = MessageBox.Show( "Threaded face surface type is not cone surface but it is applied" + System.Environment.NewLine + "with tapered thread. ThreadModeler cannot modelize this thread.", "Invalid Surface Type", MessageBoxButtons.OK, MessageBoxIcon.Error); continue; } string iMateName = string.Empty; if (Toolkit.HasiMate(threadedFace, out iMateName)) { DialogResult res = MessageBox.Show( "Threaded face or one of its edge has" + " iMate associated to it." + System.Environment.NewLine + "Please delete iMate " + iMateName + " before modelizing this thread.", "Invalid iMate", MessageBoxButtons.OK, MessageBoxIcon.Error); continue; } double pitch = ThreadWorker.GetThreadPitch(threadInfo); string pitchStr = ThreadWorker.GetThreadPitchStr(threadInfo, (Document)_Document); string minStr = _Document.UnitsOfMeasure.GetStringFromValue( ThreadWorker.ThresholdPitchCm, UnitsTypeEnum.kDefaultDisplayLengthUnits); if (pitch < ThreadWorker.ThresholdPitchCm) { DialogResult res = MessageBox.Show( "Selected thread pitch " + "is too small (" + pitchStr + ")." + System.Environment.NewLine + "The minimum thread pitch that can " + "be modelized is " + minStr + " .", "Invalid Thread Pitch", MessageBoxButtons.OK, MessageBoxIcon.Error); continue; } ListViewItem item = lvFeatures.Items.Add(feature.Name); item.Tag = feature; item.SubItems.Add(pitchStr); item.SubItems.Add(ThreadWorker.GetThreadTypeStr( feature)); item.SubItems.Add( ThreadWorker.GetThreadedFaceTypeStr( threadedFace)); } _selecSetPopulated = (lvFeatures.Items.Count != 0); bOk.Enabled = ValidateOkButton(); }
private void selectEvts(ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Inventor.Point ModelPosition, Point2d ViewPosition, Inventor.View View) { selEvts.AddToSelectedEntities(JustSelectedEntities[1]); }
private void UserInputEvents_OnSelect(ObjectsEnumerator JustSelectedEntities, ref ObjectCollection MoreSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, Inventor.View View) { if (JustSelectedEntities.Count > 0) { var selectedEntity = JustSelectedEntities[1]; selectedEntity = SelectionInfoSelector.GetSelectionInfo(selectedEntity); selectionPropertyGrid.SelectedObject = selectedEntity; } }
private void OnUserInputPreSelect(ref object PreSelectEntity, out bool DoHighlight, ref ObjectCollection MorePreSelectEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, View View) { if (PreSelectEntity is SurfaceGraphicsFace) { DoHighlight = true; } else { DoHighlight = false; } }
/// <summary> /// This is the Event handler for the right click menu. /// I'm merely adding an Esc control to the top of the context menu in order /// to give the user the ability to intuitively exit the command. There's a code sample in /// the API help that prints out all the ControlDefinitions inside Inventor. I used that to /// find the aptly named "Done" command to call from the ControlDefinitions collection. /// </summary> /// <param name="SelectionDevice"></param> /// <param name="AdditionalInfo"></param> /// <param name="CommandBar"></param> protected virtual void UserInputEvents_OnContextMenu(SelectionDeviceEnum SelectionDevice, NameValueMap AdditionalInfo, CommandBar CommandBar) { ButtonDefinition _escapeControl = (ButtonDefinition)_inventorApplication.CommandManager.ControlDefinitions["Done"]; CommandBar.Controls.AddButton(ButtonDefinition: _escapeControl); int lastControl = CommandBar.Controls.Count; CommandBar.Controls[lastControl].Delete(); }
//----------------------------------------------------------------------------- public void OnUnSelect(ObjectsEnumerator unSelectedEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, View view) { // Not implemented }
///////////////////////////////////////////////////////////// // Use: OnUnSelect Handler. // ///////////////////////////////////////////////////////////// void SelectEvents_OnUnSelect( ObjectsEnumerator UnSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, View View) { foreach (System.Object unselectedObj in UnSelectedEntities) { if (_SelectedEntities.Contains(unselectedObj)) { _SelectedEntities.Remove(unselectedObj); } } }
///////////////////////////////////////////////////////////// // Use: OnSelect Handler. // ///////////////////////////////////////////////////////////// private void SelectEvents_OnSelect( ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, View View) { if (JustSelectedEntities.Count != 0) { System.Object selectedObj = JustSelectedEntities[1]; _SelectedEntities.Add(selectedObj); } }
private void UserInputEvents_OnLinearMarkingMenu(ObjectsEnumerator SelectedEntities, SelectionDeviceEnum SelectionDevice, CommandControls LinearMenu, NameValueMap AdditionalInfo) { var control = _inventorApplication.CommandManager.ControlDefinitions["VaultFindInBrowser"]; if (SelectedEntities.Count == 1 && SelectedEntities[1] is ComponentOccurrence) { LinearMenu.AddButton((ButtonDefinition)control); } }
public override void OnSelect(ObjectsEnumerator justSelectedEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, Inventor.View view) { int nombSelectedEntities = justSelectedEntities.Count; if (nombSelectedEntities > 0) { object selectedEntity = justSelectedEntities[1]; if (m_connectCmdDlg.checkBoxCav.Checked) { m_thisSurface = (ExtrudeFeature )selectedEntity; m_connectCmdDlg.checkBoxCav.Checked = false; //获取所选IFeature的位置和直径,并显示 GetiFeature(m_thisSurface, ref m_thisCav); if (m_thisCav != null) { ClearUCS(); ShowUCS(); try { GetiFeatureData(m_thisCav, ref m_Xposition, ref m_Yposition, ref m_Dia); //显示位置 ShowLocation(m_Xposition, m_Yposition); m_connectCmdDlg.groupBox3.Enabled = true; m_connectCmdDlg.checkBoxToCav.Checked = true; ShowDia(m_Dia); //显示直径 } catch (System.Exception ex) { MessageBox.Show("发生错误! " + ex.ToString()); return; } } else { MessageBox.Show("未选中元件,请重新选择!"); return; } m_connectToSurface = null; EnableInteraction(); } if (m_connectCmdDlg.checkBoxToCav.Checked && (selectedEntity != m_thisSurface)) { m_connectToSurface = (ExtrudeFeature)selectedEntity; m_connectCmdDlg.checkBoxToCav.Checked = false; GetiFeature(m_connectToSurface, ref m_connectToCav); GetPortInformation(m_connectToSurface, ref m_portNumber, ref m_portIndex); try { ResetComboBox(m_portNumber, m_portIndex); } catch (System.Exception ex) { MessageBox.Show("获取port时发生错误! " + ex.ToString()); return; } DisableInteraction(); m_selectEvents.Enabled = false; } } }
//----------------------------------------------------------------------------- //------------ Implementation of SelectEvents callbacks //----------------------------------------------------------------------------- public override void OnPreSelect(object preSelectEntity, out bool doHighlight, ObjectCollection morePreSelectEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, Inventor.View view) { doHighlight = false; if (preSelectEntity is ExtrudeFeature) { ExtrudeFeature preSelectFeature = (ExtrudeFeature)preSelectEntity; if (preSelectFeature.Faces[1].SurfaceType == SurfaceTypeEnum.kCylinderSurface) { doHighlight = true; } } }
private void select(ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Inventor.Point ModelPosition, Point2d ViewPosition, Inventor.View View) { }
//****************************************************************************** // Implementation of Interaction Events sink method //****************************************************************************** //----------------------------------------------------------------------------- // Implementation of Select Events sink method //----------------------------------------------------------------------------- virtual public void OnPreSelect(object preSelectEntity, out bool doHighlight, ObjectCollection morePreSelectEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, View view) { doHighlight = false; }
public override void OnPreSelect(object preSelectEntity, out bool doHighlight, ObjectCollection morePreSelectEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, Inventor.View view) { doHighlight = false; if (preSelectEntity is Face) { Face preSelectFace = (Face)preSelectEntity; if (preSelectFace.SurfaceType == SurfaceTypeEnum.kCylinderSurface) { PartDocument oPartDoc = (PartDocument)m_inventorApplication.ActiveDocument; iFeatures oiFeatures = oPartDoc.ComponentDefinition.Features.iFeatures; foreach (iFeature oiFeature in oiFeatures) { Faces oFaces; oFaces = oiFeature.Faces; foreach (Face oFace in oFaces) { if (oFace == preSelectFace) { doHighlight = true; break; } } } } } }
public override void OnPreSelect(object preSelectEntity, out bool doHighlight, ObjectCollection morePreSelectEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, Inventor.View view) { doHighlight = false; if (preSelectEntity is Face) { doHighlight = true; } }
////////////////////////////////////////////////////////////////////////////////////////////// // First selection will be a planar face or workplane used as slicing plane // Subsequent selections will be graphic node, so we switch nodes visibility // to reverse the normal of slicing plane // ////////////////////////////////////////////////////////////////////////////////////////////// void SelectEvents_OnSelect( ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, View View) { if (JustSelectedEntities[1] is GraphicsNode) { SwitchNodesVisibility(); return; } _interactionManager.ClearSelectionFilters(); SetModelVisibility(false); switch (AdnInventorUtilities.InvApplication.ActiveDocument.DocumentType) { case DocumentTypeEnum.kAssemblyDocumentObject: foreach (ComponentOccurrence occurrence in _compDef.Occurrences) { occurrence.Visible = false; } break; case DocumentTypeEnum.kPartDocumentObject: foreach (KeyValuePair<SurfaceBody, SurfaceBody> pair in _surfaceBodies) { pair.Key.Visible = false; } break; default: return; } Plane plane1 = AdnInventorUtilities.GetPlane(JustSelectedEntities[1]); _nodes1 = CreateSlicedNodes(plane1, false); Vector normal2 = plane1.Normal.AsVector(); normal2.ScaleBy(-1.0); Plane plane2 = AdnInventorUtilities.InvApplication.TransientGeometry.CreatePlane( plane1.RootPoint, normal2); _nodes2 = CreateSlicedNodes(plane2, true); _clientGraphicsMng.UpdateView(); }
void select_OnSelect(ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Inventor.Point ModelPosition, Point2d ViewPosition, Inventor.View View) { //������ѡ�ߵij��� int i; double length = 0.0; for (i = 0; i < JustSelectedEntities.Count; i++) { //��Ϊ�Ѿ�����������Ϊѡ��ߣ����Խ����ص�ͼԪָ��ΪEdge�����ǰ�ȫ�� Edge edge; edge = (Edge)JustSelectedEntities[i]; //ȷ����ǰ�ߵij��� double min; double max; edge.Evaluator.GetParamExtents(out min, out max); double singleLength; edge.Evaluator.GetLengthAtParam(min, max, out singleLength); //���㼯�������бߵij��� length = length + singleLength; } //��ʾ�ߵij��Ⱥ����� txtLength.Text = string.Format("{0} cm", length); txtEdgeCount.Text = string.Format("{0}", JustSelectedEntities.Count); }
/// <summary> /// Allows the user to see if they have already added a collision component in select mode. /// </summary> /// <param name="PreSelectEntity"></param> /// <param name="DoHighlight"></param> /// <param name="MorePreSelectEntities"></param> /// <param name="SelectionDevice"></param> /// <param name="ModelPosition"></param> /// <param name="ViewPosition"></param> /// <param name="View"></param> void selectEvents_OnPreSelect(ref object PreSelectEntity, out bool DoHighlight, ref ObjectCollection MorePreSelectEntities, SelectionDeviceEnum SelectionDevice, Inventor.Point ModelPosition, Point2d ViewPosition, Inventor.View View) { DoHighlight = true; if (PreSelectEntity is ComponentOccurrence) { ComponentOccurrence componentOccurrence = (ComponentOccurrence)PreSelectEntity; if (CollisionObjectsView.Nodes.Find(componentOccurrence.Name, true).Length > 0) { CollisionObjectsView.Invoke(new Action(() => { CollisionObjectsView.SelectedNode = CollisionObjectsView.Nodes.Find(componentOccurrence.Name, true)[0]; CollisionObjectsView.SelectedNode.EnsureVisible(); })); } } }
//------------------------------------------------------------------------------ //------------------Implementation of Select Events sink method----------------- //------------------------------------------------------------------------------ public void SelectEvents_OnSelect(ObjectsEnumerator justSelectedEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, View view) { //not implemented m_parentCmd.OnSelect(justSelectedEntities, selectionDevice, modelPosition, viewPosition, view); }
////////////////////////////////////////////////////////////////////////////////////////////// // SelectEvent lets the user pick up vertex or workpoint // ////////////////////////////////////////////////////////////////////////////////////////////// void SelectEvents_OnSelect(ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, View View) { switch (_mode) { case ModeEnum.kPoint1: { _point1 = ModelPosition; _mode = ModeEnum.kPoint2; _interactionManager.InteractionEvents.StatusBarText = "Select dimension second point: "; break; } case ModeEnum.kPoint2: { _point2 = ModelPosition; Vector normal = View.Camera.Eye.VectorTo(View.Camera.Target); _dimData = DrawDimension(_point1, _point2, ModelPosition, normal); _clientGraphicsMng.UpdateView(); _interactionManager.InteractionEvents.StatusBarText = "Select dimension text position: "; _interactionManager.MouseEvents.MouseMoveEnabled = true; _interactionManager.SelectEvents.OnSelect -= new SelectEventsSink_OnSelectEventHandler(SelectEvents_OnSelect); _interactionManager.MouseEvents.OnMouseDown += new MouseEventsSink_OnMouseDownEventHandler(MouseEvents_OnMouseDown); _interactionManager.MouseEvents.OnMouseMove += new MouseEventsSink_OnMouseMoveEventHandler(MouseEvents_OnMouseMove); _mode = ModeEnum.kDimText; break; } default: break; } }
////////////////////////////////////////////////////////////////////////////////////////////// // // ////////////////////////////////////////////////////////////////////////////////////////////// void SelectEvents_OnSelect( ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Point ModelPosition, Point2d ViewPosition, View View) { switch (_mode) { case SelectModeEnum.kPlaneSelect: { _plane = AdnInventorUtilities.GetPlane(JustSelectedEntities[1]); _interactionManager.MouseEvents.MouseMoveEnabled = true; _interactionManager.ClearSelectionFilters(); _interactionManager.AddSelectionFilter(SelectionFilterEnum.kPartVertexFilter); _interactionManager.AddSelectionFilter(SelectionFilterEnum.kWorkPointFilter); _interactionManager.InteractionEvents.StatusBarText = "Select center: "; _mode = SelectModeEnum.kCenterSelect; break; } case SelectModeEnum.kCenterSelect: { _center = AdnInventorUtilities.GetPoint(JustSelectedEntities[1]); Circle circle = AdnInventorUtilities.InvApplication.TransientGeometry.CreateCircle( _center, _plane.Normal, 0.001); _curveGraph = _clientGraphicsMng.DrawCurve(circle); _curveGraph.LineWeight = 0.5; _interactionManager.InteractionEvents.StatusBarText = "Select radius: "; _interactionManager.MouseEvents.OnMouseMove += new MouseEventsSink_OnMouseMoveEventHandler(MouseEvents_OnMouseMove); _interactionManager.SelectEvents.OnSelect -= new SelectEventsSink_OnSelectEventHandler(SelectEvents_OnSelect); _mode = SelectModeEnum.kRadiusSelect; break; } default: break; } }
//----------------------------------------------------------------------------- public void SelectEvents_OnPreSelect(ref object preSelectEntity, out bool doHighlight, ref ObjectCollection morePreSelectEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, View view) { m_parentCmd.OnPreSelect(preSelectEntity, out doHighlight, morePreSelectEntities, selectionDevice, modelPosition, viewPosition, view); }
//----------------------------------------------------------------------------- public void SelectEvents_OnUnSelect(ObjectsEnumerator unSelectedEntities, SelectionDeviceEnum selectionDevice, Point modelPosition, Point2d viewPosition, View view) { m_parentCmd.OnUnSelect(unSelectedEntities, selectionDevice, modelPosition, viewPosition, view); }
private void select(ObjectsEnumerator JustSelectedEntities, SelectionDeviceEnum SelectionDevice, Inventor.Point ModelPosition, Point2d ViewPosition, Inventor.View View) { insPt = ModelPosition; face = (Face)JustSelectedEntities[1]; flag = false; }