示例#1
0
 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();
 }
示例#2
0
    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();
        //}
    }