Hello Everyone,
Actually i created one addin where whenever file state is change i want to fetch 'Data card' tab information. in following figure 1. (ex. its JPR-DKUS-A-01 ...02 etc..) -> But strange this is i am not getting it but actually what i get is BOM's last row's product information (SCR-0039) (see figure 2) ..when i do state change on other file i am getting proper data card information who don't have BOM. don't know why this is happening.
Figure :1
Figure:2
C# Addin Code is like as below:
public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
{
IEdmVault5 edmVault = poCmd.mpoVault as IEdmVault5;
IEdmFile7 aFile;
IEdmBom bom;
IEdmBomMgr bomMgr;
IEdmBomView bomView;
string str_b = "";
try
{
switch (poCmd.meCmdType)
{
case EdmCmdType.EdmCmd_PostState:
IEdmFile5 file = vault.GetFileFromPath(fileName, out IEdmFolder5 folder);
int ver = 0;
ver = file.CurrentVersion;
IEdmEnumeratorVariable8 EnumVarObj = default(IEdmEnumeratorVariable8);
EnumVarObj = (IEdmEnumeratorVariable8)file.GetEnumeratorVariable();
// Get configurations
EdmStrLst5 cfgList = default(EdmStrLst5);
cfgList = file.GetConfigurations();
IEdmPos5 pos = default(IEdmPos5);
pos = cfgList.GetHeadPosition();
string cfgName = null;
Dictionary
while (!pos.IsNull)
{
cfgName = cfgList.GetNext(pos);
object VarObj = null;
EnumVarObj.GetVar("PartNo", cfgName, out VarObj);
string VarVal = VarObj?.ToString();
EnumVarObj.GetVar("Description", cfgName, out VarObj);
string Description = VarObj?.ToString();
EnumVarObj.GetVar("Revision", cfgName, out VarObj);
string revision = VarObj?.ToString();
Dictionary
values.Add("PartNo", VarVal);
values.Add("Revision", revision);
values.Add("Description", Description);
myDictDict.Add(cfgName, values);
}
}
}
}
}
Please Help.
SolidworksApi/macros