/// <summary> /// 编辑零部件,自动区分装配体还是零件 /// </summary> /// <param name="comp">组件</param> /// <param name="doc">顶级文档</param> /// <param name="silent">静默编辑--提高速度</param> /// <param name="readOnly">只读</param> /// <returns></returns> public static swEditPartCommandStatus_e Edit(this IComponent2 comp, IAssemblyDoc doc, bool silent = true, bool readOnly = false) { var type = comp.GetCompType(); int info = -1; switch (type) { case swDocumentTypes_e.swDocPART: if (comp.Select2(false, -1)) { doc.EditPart2(silent, readOnly, ref info); } break; case swDocumentTypes_e.swDocASSEMBLY: if (comp.Select2(false, -1)) { doc.EditAssembly(); } info = 0; break; default: throw new FileFormatException(string.Format("can not edit component width type of:{0} ", type.ToString())); } swEditPartCommandStatus_e state = (swEditPartCommandStatus_e)info; return(state); }
/// <summary> /// 选择后执行特定动作 /// </summary> /// <param name="comp"></param> /// <param name="action"></param> /// <param name="AfterDeSelect">执行完动作是否清除选择状态</param> public static void SelectFor(this IComponent2 comp, Action action, bool AfterDeSelect = true) { comp.Select2(false, -1); action?.Invoke(); if (AfterDeSelect) { comp.DeSelect(); } }