Ejemplo n.º 1
0
        public static void InsertBOM(SldWorks swApp)
        {
            ModelDoc2         md = (ModelDoc2)swApp.ActiveDoc;
            DrawingDoc        dd = (DrawingDoc)swApp.ActiveDoc;
            ModelDocExtension ex = (ModelDocExtension)md.Extension;
            int bom_type         = (int)swBomType_e.swBomType_PartsOnly;
            int bom_numbering    = (int)swNumberingType_e.swNumberingType_Flat;
            int bom_anchor       = (int)swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_TopLeft;

            SolidWorks.Interop.sldworks.View v = GetFirstView(swApp);
            BomTableAnnotation bta             = null;
            TableAnnotation    ta = null;

            if (dd.ActivateView(v.Name))
            {
                bta = v.InsertBomTable4(
                    false,
                    Properties.Settings.Default.BOMLocationX, Properties.Settings.Default.BOMLocationY,
                    bom_anchor,
                    bom_type,
                    v.ReferencedConfiguration,
                    Properties.Settings.Default.BOMTemplatePath,
                    false,
                    bom_numbering,
                    false);
            }

            if (bta != null)
            {
                ta = (TableAnnotation)bta;
                if (ta != null)
                {
                    int        deptcol = 0;
                    List <int> rowdpt  = new List <int>();
                    System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(BOMFilter[0]);

                    for (int i = 0; i < ta.ColumnCount; i++)
                    {
                        if (ta.Text[0, i].ToUpper() == @"DEPTID")
                        {
                            deptcol = i;
                            break;
                        }
                    }

                    for (int i = 0; i < ta.RowCount; i++)
                    {
                        if (!r.IsMatch(ta.Text[i, deptcol]))
                        {
                            rowdpt.Add(i);
                        }
                    }

                    foreach (int item in rowdpt)
                    {
                        ta.set_RowHidden(item, true);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private bool ActivateAllViews()
        {
            View swView = swDraw.GetFirstView();

            while (swView != null)
            {
                bool activate = swDraw.ActivateView(swView.GetName2());
                if (activate == false)
                {
                    return(false);
                }
                swView = swView.GetNextView();
            }
            return(true);
        }
Ejemplo n.º 3
0
        public void CreateThumbnail()
        {
            if (assmbly)
            {
                bool   bRet;
                double xSize   = 2 * .0254;
                double ySize   = 2 * .0254;
                double xCenter = (xSize / 2) - Settings.Default.WeirdArbitraryFactor;
                double yCenter = (ySize / 2);

                swDwgPaperSizes_e paperSize    = swDwgPaperSizes_e.swDwgPapersUserDefined;
                swDwgTemplates_e  drwgTemplate = swDwgTemplates_e.swDwgTemplateNone;
                swDisplayMode_e   dispMode     = swDisplayMode_e.swFACETED_HIDDEN;

                //G:\\Solid Works\\AMSTORE_SHEET_FORMATS\\AM_PART.slddrt
                //swModel = (ModelDoc2)swApp.NewDocument(@"\\AMSTORE-SVR-22\cad\Solid Works\AMSTORE_SHEET_FORMATS\zPostCard.slddrt", (int)paperSize, xSize, ySize);
                swModel = (ModelDoc2)swApp.NewDocument(APathSet.ShtFmtPath, (int)paperSize, xSize, ySize);
                swDraw  = (DrawingDoc)swModel;
                bRet    = swDraw.SetupSheet5("AMS1", (int)paperSize, (int)drwgTemplate, 1, 1, false, "", xSize, ySize, "Default", false);

                View view = swDraw.DropDrawingViewFromPalette(76, xSize, ySize, 0);
                swDraw.ActivateView("Drawing View1");
                bRet = swModel.Extension.SelectByID2("Drawing View1", "DRAWINGVIEW", xSize, ySize, 0, false, 0, null, 0);

                view = swDraw.CreateDrawViewFromModelView3(sourcePath, "*Isometric", xCenter, yCenter, 0);
                bRet = view.SetDisplayMode3(false, (int)dispMode, false, true);
                System.Diagnostics.Debug.Print(view.ScaleDecimal.ToString());

                ScaleAppropriately(swDraw, view, 0.8, 2);

                System.Diagnostics.Debug.Print(view.ScaleDecimal.ToString());
                swDraw.ActivateView(view.Name);

                TurnOffSillyMarks();
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 如果有一个视图为选中状态,则对这个视图进行重排序,
        /// 否则,对一个图纸下的所有视图进行重排序
        /// </summary>
        private void ReSortAllView()
        {
            this.arCheckRepect.Clear();
            if (this.rdoTemp1.Checked)
            {
                if (StringOperate.Alert("序号为项目号时,无法重排序,要继续吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
                {
                    return;
                }
            }

            ModelDoc2 swModel = (ModelDoc2)AllData.iSwApp.ActiveDoc;

            if (swModel == null)
            {
                return;
            }

            DrawingDoc   swDraw = (DrawingDoc)swModel;
            SelectionMgr SelMgr = (SelectionMgr)swModel.SelectionManager;

            swModel.ClearSelection2(true);

            //101,$数量×"序号",$数量×"属性名"
            string strTxt = this.cmbStartIndex.Text;
            int    abc    = 1;
            bool   bText  = false;

            try
            {
                abc = Convert.ToInt16(this.cmbStartIndex.Text);//序号从一开始
            }
            catch
            {
                bText = true;
            }

            SolidWorks.Interop.sldworks.View swView = (SolidWorks.Interop.sldworks.View)swDraw.ActiveDrawingView;
            if (swView == null)//对所有的视图进行重排序
            {
                swView = (SolidWorks.Interop.sldworks.View)swDraw.GetFirstView();
                //遍历视图
                while (swView != null)
                {
                    swDraw.ActivateView(swView.Name);

                    if (bText)
                    {
                        SaidiResortOneView(swView, swModel);//对这个视图进行排序
                    }
                    else
                    {
                        abc = ReSortOneView(abc, swView, swModel);//对这个视图进行排序
                    }

                    //转到下一个视图
                    swView = (SolidWorks.Interop.sldworks.View)swView.GetNextView();
                }
            }
            else//只对当前视图进行重排序
            {
                if (bText)
                {
                    SaidiResortOneView(swView, swModel);//对这个视图进行排序
                }
                else
                {
                    ReSortOneView(abc, swView, swModel);
                }
            }

            //重建,以更新明细表
            swModel.EditRebuild3();

            this.arCheckRepect.Clear();
        }
Ejemplo n.º 5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="formats">An array of paths to SolidWorks sheet templates.</param>
        /// <param name="monochrome">A bool array indicating whether we ought to have ImageMagick convert to 2-bit.</param>
        public void CreateThumbnails(string[] formats, bool[] monochrome)
        {
            bool   bRet;
            double xSize       = 2 * .0254;
            double ySize       = 2 * .0254;
            double xCenter     = (xSize / 2);
            double yCenter     = (ySize / 2);
            string orientation = "*Isometric";
            string template    = string.Empty;

            swDwgPaperSizes_e paperSize    = swDwgPaperSizes_e.swDwgPapersUserDefined;
            swDwgTemplates_e  drwgTemplate = swDwgTemplates_e.swDwgTemplateCustom;
            swDisplayMode_e   dispMode     = swDisplayMode_e.swHIDDEN;

            for (int i = 0; i < formats.Length; i++)
            {
                template = (new FileInfo(formats[i]).Name).Split(new char[] { '.' })[0];
                switch (formats[i].ToUpper().Contains("POSTCARD"))
                {
                case true:
                    xSize = 7 * 0.0254;
                    ySize = 5 * 0.0254;

                    xCenter     = (xSize / 2);
                    yCenter     = (ySize / 2);
                    orientation = "*Isometric";
                    break;

                case false:
                    xSize = 2 * 0.0254;
                    ySize = 2 * 0.0254;

                    xCenter     = (xSize / 2) - Settings.Default.WeirdArbitraryFactor;
                    yCenter     = (ySize / 2);
                    orientation = "*Trimetric";
                    break;

                default:
                    break;
                }
                swModel = (ModelDoc2)swApp.NewDocument(formats[i], (int)paperSize, xSize, ySize);
                swDraw  = (DrawingDoc)swModel;
                bRet    = swDraw.SetupSheet5("Sheet1", (int)paperSize, (int)drwgTemplate, 1, 1, false, template, xSize, ySize, "Default", false);

                View view = swDraw.DropDrawingViewFromPalette(76, xSize, ySize, 0);
                swDraw.ActivateView("Drawing View1");
                bRet = swModel.Extension.SelectByID2("Drawing View1", "DRAWINGVIEW", xSize, ySize, 0, false, 0, null, 0);
                view = swDraw.CreateDrawViewFromModelView3(sourcePath, orientation, xCenter, yCenter, 0);
                bRet = view.SetDisplayMode3(false, (int)dispMode, false, true);

                //view.ScaleDecimal = GetAppropriateScalingFactor(swDraw, view, 0.8, 2);
                ScaleAppropriately(swDraw, view, 0.9, 2);

                swDraw.ActivateView(view.Name);

                TurnOffSillyMarks();

                switch (monochrome[i])
                {
                case true:
                    SaveAribaLabel(Settings.Default.AribaPath);
                    break;

                case false:
                    SaveAsJPG(Settings.Default.JPGPath);
                    break;

                default:
                    break;
                }
                CloseThumbnail();
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Activates the specified drawing view
 /// </summary>
 /// <param name="viewName">Name of the drawing view</param>
 /// <returns>True if successful, false if not</returns>
 public bool ActivateView(string viewName) => mBaseObject.ActivateView(viewName);