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); } } } }
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); }
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(); } }
/// <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(); }
/// <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(); } }
/// <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);