public override void Update(UIBlock block) { if (bodySelect0.NXOpenBlock == block) { _electrode = null; dic.Clear(); var body = bodySelect0.SelectedObjects.FirstOrDefault() as Snap.NX.Body; if (body != null) { var faces = body.Faces.ToList(); faces.ForEach(u => { dic.Add(u.NXOpenTag, u.GetDraftAngle(vector0.Direction)); }); _electrode = ElecManage.Electrode.GetElectrode(body); if (_electrode != null) { _electrode.InitAllFace(); } } } RefreshData(); }
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(); //} }