/// <summary> /// 创建注释 /// </summary> void CreateNodeInfo(ElecManage.Electrode elec, EdmDraw.EdmConfig edmConfig) { var properties = edmConfig.PropertyInfos ?? new List <EdmDraw.EdmConfig.PropertyInfo>(); var propertiesDic = new Dictionary <string, List <EdmDraw.EdmConfig.PropertyInfo> >(); properties.ForEach(u => { var displayName = u.DisplayName; var dValue = string.Empty; if (displayName.Contains("-")) { var splits = displayName.Split('-'); displayName = splits.FirstOrDefault(); dValue = splits.LastOrDefault(); } if (!propertiesDic.ContainsKey(displayName)) { propertiesDic.Add(displayName, new List <EdmDraw.EdmConfig.PropertyInfo> { u }); } else { propertiesDic[displayName].Add(u); } }); var elecInfo = elec.GetElectrodeInfo(); var edmNodeInfo = new EdmDraw.EDMNodeInfo(); edmNodeInfo.电极材质 = elecInfo.MAT_NAME; edmNodeInfo.电极类型 = elecInfo.UNIT; edmNodeInfo.电极层 = elec.ElecBody.Layer.ToString(); edmNodeInfo.电极名称 = elecInfo.Elec_Name; edmNodeInfo.模号 = elecInfo.EACT_MODELNO; edmNodeInfo.工件名称 = elecInfo.EACT_PARTNO; edmNodeInfo.精公数量 = elecInfo.FINISH_NUMBER.ToString(); edmNodeInfo.中公数量 = elecInfo.MIDDLE_NUMBER.ToString(); edmNodeInfo.粗公数量 = elecInfo.ROUGH_NUMBER.ToString(); edmNodeInfo.精公火花位 = elecInfo.FINISH_SPACE.ToString(); edmNodeInfo.中公火花位 = elecInfo.MIDDLE_SPACE.ToString(); edmNodeInfo.粗公火花位 = elecInfo.ROUGH_SPACE.ToString(); edmNodeInfo.摇摆方式 = elecInfo.EDMROCK; edmNodeInfo.制图 = "EACT"; edmNodeInfo.日期 = DateTime.Now.ToShortDateString(); foreach (var item in propertiesDic) { var displayName = item.Key; var pValue = EdmDraw.Helper.GetPropertyValue(edmNodeInfo, displayName) ?? string.Empty; var u = item.Value.FirstOrDefault(p => (p.DisplayName.Contains(displayName) && p.DisplayName.Contains(pValue.ToString())) || p.DisplayName.Contains(displayName)); if (u.Ex == "1") { EdmDraw.DrawBusiness.CreateTick(new Snap.Position(u.LocationX, u.LocationY)); } else { EdmDraw.DrawBusiness.CreateNode(pValue.ToString(), new Snap.Position(u.LocationX, u.LocationY)); } } }
public void CreateDrawingSheet(List <PositioningInfo> positionings, Snap.NX.Body steel, bool isAutoMode) { var edmConfig = EdmDraw.UCEdmConfig.GetInstance(); var templateName = edmConfig.GetEdmTemplate(); if (string.IsNullOrEmpty(templateName)) { return; } ElecManage.Electrode electrode = positionings.FirstOrDefault().Electrode; var selectedObj = electrode.ElecBody; electrode.InitAllFace(); InitModelingView(edmConfig, electrode, isAutoMode); SetIsHidden(positionings, steel); EdmDraw.DrawBusiness.InitPreferences(edmConfig); var workPart = Snap.Globals.WorkPart; var dsName = selectedObj.Name; var list = new List <NXOpen.TaggedObject>(); list.Add(steel); list.Add(selectedObj); workPart.NXOpenPart.DrawingSheets.ToArray().Where(u => u.Name == dsName).ToList().ForEach(u => { Snap.NX.NXObject.Delete(u); }); //图纸显示 EdmDraw.DrawBusiness.SetShowLayers(new List <int> { 1 }, edmConfig.EdmDrfLayer); //新建图纸页 var ds = SnapEx.Create.DrawingSheet(selectedObj.Name, templateName); EdmDraw.DrawBusiness.SetDrawSheetLayer(ds, edmConfig.EdmDrfLayer); var draftViewLocations = edmConfig.DraftViewLocations ?? new List <EdmDraw.EdmConfig.DraftViewLocation>(); EdmDraw.EdmConfig.DraftViewLocation ViewTypeEACT_TOP = null; EdmDraw.EdmConfig.DraftViewLocation ViewTypeEACT_FRONT = null; foreach (var item in draftViewLocations) { var viewType = EdmDraw.DrawBusiness.GetEumnViewType(item.ViewType); switch (viewType) { case EdmDraw.ViewType.EACT_TOP: { ViewTypeEACT_TOP = item; } break; case EdmDraw.ViewType.EACT_FRONT: { ViewTypeEACT_FRONT = item; } break; case EdmDraw.ViewType.EACT_BOTTOM_FRONT: { CreateEACT_BOTTOM_FRONTView( ds, new List <TaggedObject> { selectedObj }, new Snap.Position(item.LocationX, item.LocationY), new Snap.Position(item.SizeX, item.SizeY), electrode, edmConfig ); } break; case EdmDraw.ViewType.EACT_BOTTOM: { CreateEACT_BOTTOMView( ds, new List <TaggedObject> { selectedObj }, new Snap.Position(item.LocationX, item.LocationY), new Snap.Position(item.SizeX, item.SizeY), electrode, edmConfig ); } break; case EdmDraw.ViewType.EACT_BOTTOM_ISOMETRIC: { CreateEACT_BOTTOM_ISOMETRICView( ds, new List <TaggedObject> { selectedObj }, new Snap.Position(item.LocationX, item.LocationY), new Snap.Position(item.SizeX, item.SizeY) , edmConfig ); } break; case EdmDraw.ViewType.EACT_ISOMETRIC: { CreateEACT_ISOMETRICView( ds, new List <TaggedObject> { steel }, new Snap.Position(item.LocationX, item.LocationY), new Snap.Position(item.SizeX, item.SizeY) , edmConfig ); } break; } } CreateNodeInfo(electrode, edmConfig); var ps = new List <List <PositioningInfo> >(); if (edmConfig.PageCount <= 0) { ps.Add(positionings); } else { var ceiling = Math.Ceiling((double)(positionings.Count * 1.0 / edmConfig.PageCount)); var tempV = positionings.Count % edmConfig.PageCount; for (int i = 0; i < ceiling; i++) { ps.Add(positionings.Skip(i * edmConfig.PageCount).Take( i == ceiling - 1 && tempV != 0 ? tempV : edmConfig.PageCount ).ToList()); } } foreach (var item in ps) { SetIsHidden(positionings, steel); var pdfName = ds.Name; if (ps.Count > 1) { pdfName += "_" + (ps.IndexOf(item) + 1); } var deleteObj = new List <NXOpen.Tag>(); if (ViewTypeEACT_TOP != null) { var topView = CreateEACT_TOPView( ds, steel, new Snap.Position(ViewTypeEACT_TOP.LocationX, ViewTypeEACT_TOP.LocationY), new Snap.Position(ViewTypeEACT_TOP.SizeX, ViewTypeEACT_TOP.SizeY), item, edmConfig ); deleteObj.Add(topView.Tag); } if (ViewTypeEACT_FRONT != null) { var itemE = item.First().Electrode; var frontView = CreateEACT_FRONTView( ds, new List <NXOpen.TaggedObject> { steel, itemE.ElecBody }, new Snap.Position(ViewTypeEACT_FRONT.LocationX, ViewTypeEACT_FRONT.LocationY), new Snap.Position(ViewTypeEACT_FRONT.SizeX, ViewTypeEACT_FRONT.SizeY), itemE, edmConfig ); deleteObj.Add(frontView.Tag); } deleteObj.AddRange(CreateTable(edmConfig, item)); SetIsHidden(positionings, steel, false); ds.GetDraftingViews().ToList().ForEach(u => { var ufSession = NXOpen.UF.UFSession.GetUFSession(); ufSession.Draw.UpdateOneView(ds.Tag, u.Tag); }); var result = EdmDraw.Helper.ExportPDF(ds, pdfName); var info = electrode.GetElectrodeInfo(); CommonInterface.FtpHelper.FtpUpload("EDM2D", new ElecManage.MouldInfo { MODEL_NUMBER = string.IsNullOrEmpty(info.EACT_MODELNO)? "UNKOWN_MODELNO" : info.EACT_MODELNO }, result, info.Elec_Name, _ConfigData); if (ps.Count > 1) { deleteObj.ForEach(u => { Snap.NX.NXObject.Wrap(u).Delete(); }); } } //if (isAutoMode) //{ // Snap.NX.NXObject.Wrap(ds.Tag).Delete(); //} }