网站如何被收录情况,淘宝可以到哪些网站做推广,甘肃建设监理协会网站,网站建设方案申请报告大家好#xff0c;今天要讲的文章是和BOM表特性相关的API。
下面为要介绍的API#xff1a;
#xff08;1#xff09;第一个为GetConfigurationCount#xff0c;这个API的含义为获取此BOM表可用或在此BOM表中使用的配置数#xff0c;下面是官方的具体解释#xff1a;
…大家好今天要讲的文章是和BOM表特性相关的API。
下面为要介绍的API
1第一个为GetConfigurationCount这个API的含义为获取此BOM表可用或在此BOM表中使用的配置数下面是官方的具体解释
其输入的参数值为bool值当为true的时候表示获取该表中当前显示的配置数当为false的时候表示获取该表中可用配置的总数。
返回值为此BOM表中或可用于此BOM表的配置个数。
使用API的时候可以先看一下备注
The view associated with this BOM can contain a model with multiple configurations.
For a top-level only style BOM table, there can be several Quantity columns, each showing the results for a different configuration. For the other styles of BOM tables, only a particular configuration can be shown in the table, and that configuration can be changed. To determine the style of the BOM table, use IBomFeature::TableType. If OnlyVisible is... Then the value returned is... True Number of configurations currently shown in the BOM table. For a top-level only style BOM table, this could be any number from 0 to the total number of configurations available. For the other styles of BOM tables, this value is always 1. false Total number of configurations available.
To get the configuration names, call IBomFeature::GetConfigurations or IBomFeature::IGetConfigurations.
Call this method before calling IBomFeature::IGetConfigurations to get the number of configurations.
2第二个为GetFeature这个API的含义为获取BOM表的特征下面是官方的具体解释 其没有输入值只有返回值为指向BOM表特征的指针对象。
下面是官方使用的例子
This example shows how to get the components in each row of a BOM table annotation.
//----------------------------------------------------------------------------- // Preconditions: // 1. Open public_documents\samples\tutorial\assemblyvisualize\food_processor.sldasm. // 2. Make a drawing from the assembly. // 3. Click Insert Tables Bill of Materials. // 4. Ensure that Parts only in Bom Type is selected. // 5. Ensure that Display configurations of the same part separate items // in Part Configuration Grouping is selected. // 6. Click OK. // 7. Click anywhere in the drawing to insert the BOM table. // // Postconditions: // 1. Gets the Bill of Materials1 feature. // 2. Gets the Default configuration. // 3. Processes the BOM table for the Default configuration. // 4. Examine the Immediate window. // // NOTE: Because the assembly is used elsewhere, do not save changes. //----------------------------------------------------------------------------- using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using SolidWorks.Interop.sldworks; using SolidWorks.Interop.swconst; namespace Macro1CSharp.csproj { partial class SolidWorksMacro { public void ProcessTableAnn(SldWorks swApp, ModelDoc2 swModel, TableAnnotation swTableAnn, string ConfigName) { int nNumRow 0; int J 0; int I 0; string ItemNumber null; string PartNumber null; bool RowLocked; double RowHeight; Debug.Print( Table Title: swTableAnn.Title); nNumRow swTableAnn.RowCount; BomTableAnnotation swBOMTableAnn default(BomTableAnnotation); swBOMTableAnn (BomTableAnnotation)swTableAnn; for (J 0; J nNumRow - 1; J) { RowLocked swTableAnn.GetLockRowHeight(J); RowHeight swTableAnn.GetRowHeight(J); Debug.Print( Row Number J (height RowHeight ; height locked RowLocked )); Debug.Print( Component Count: swBOMTableAnn.GetComponentsCount2(J, ConfigName, out ItemNumber, out PartNumber)); Debug.Print( Item Number: ItemNumber); Debug.Print( Part Number: PartNumber); object[] vPtArr null; Component2 swComp null; object pt null; vPtArr (object[])swBOMTableAnn.GetComponents2(J, ConfigName); if (((vPtArr ! null))) { for (I 0; I vPtArr.GetUpperBound(0); I) { pt vPtArr[I]; swComp (Component2)pt; if ((swComp ! null)) { Debug.Print( Component Name: swComp.Name2); Debug.Print( Configuration Name: swComp.ReferencedConfiguration); Debug.Print( Component Path: swComp.GetPathName()); } else { Debug.Print( Could not get component.); } } } } } public void ProcessBomFeature(SldWorks swApp, ModelDoc2 swModel, BomFeature swBomFeat) { Feature swFeat default(Feature); object[] vTableArr null; object vTable null; string[] vConfigArray null; object vConfig null; string ConfigName null; TableAnnotation swTable default(TableAnnotation); object visibility null; swFeat swBomFeat.GetFeature(); vTableArr (object[])swBomFeat.GetTableAnnotations(); foreach (TableAnnotation vTable_loopVariable in vTableArr) { vTable vTable_loopVariable; swTable (TableAnnotation)vTable; vConfigArray (string[])swBomFeat.GetConfigurations(true, ref visibility); foreach (object vConfig_loopVariable in vConfigArray) { vConfig vConfig_loopVariable; ConfigName (string)vConfig; Debug.Print( Component for Configuration: ConfigName); ProcessTableAnn(swApp, swModel, swTable, ConfigName); } } } public void Main() { ModelDoc2 swModel default(ModelDoc2); DrawingDoc swDraw default(DrawingDoc); Feature swFeat default(Feature); BomFeature swBomFeat default(BomFeature); swModel (ModelDoc2)swApp.ActiveDoc; swDraw (DrawingDoc)swModel; swFeat (Feature)swModel.FirstFeature(); while ((swFeat ! null)) { if (BomFeat swFeat.GetTypeName()) { Debug.Print(Feature Name: swFeat.Name); swBomFeat (BomFeature)swFeat.GetSpecificFeature2(); ProcessBomFeature(swApp, swModel, swBomFeat); } swFeat (Feature)swFeat.GetNextFeature(); } } public SldWorks swApp; } }
本篇文章到此结束我们下篇文章再见。