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