Hallo
Hier is een stuk programma dat als uitgangspunt zou moeten kunnen dienen, het is C#-taal die dus in VBA moet worden vertaald:
privé SldWorks SWapp;
privé-tekenreeks msg = tekenreeks. Leeg;
private string directory = Application.StartupPath + "\\";
private void Button6Click(object afzender, EventArgs e)
{
if (SWapp == null)
{
SWapp = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application"));
}
ModelDoc2 deel;
Deel = ((ModelDoc2)(SWapp.ActiveDoc));
string newFile = Part.IGetDependencies2(true, true,true);
msg = newFile + "\n";
ModelDoc2 swDocTemp = null;
int longstatus = 0;
int longwarnings = 0;
swDocTemp = ((ModelDoc2)(SWapp.OpenDoc6(newFile, (int)swDocumentTypes_e.swDocASSEMBLY, 0, "", ref longstatus, ref longwarnings)));
TraverseAssembly (swDocTemp);
Berichtbox.Toon (msg);
}
openbare leegte TraverseAssembly(ModelDoc2 swDocTemp)
{
Cursor.Current = System.Windows.Forms.Cursors.AppStarting;
ConfigurationManager swConfMgr;
swConf-configuratie;
Component2 swRootComp;
swConfMgr = (ConfiguratieManager)swDocTemp.ConfigurationManager;
swConf = (Configuratie)swConfMgr.ActiveConfiguration;
swRootComp = (Component2)swConf.GetRootComponent3(waar);
TraverseComponent(swRootComp);
}
private void TraverseComponent(Component2 swComp)
{
object[] vChildComp;
Component2 swChildComp;
Lange i = 0;
vChildComp = (object[])swComp.GetChildren();
voor (i = 0; i < vChildComp.Length; i++)
{
swChildComp = (Component2)vChildComp[i];
TraverseComponent(swChildComp);
Als (msg. Bevat(swChildComp.GetPathName()) == onwaar)
{
msg = msg + swChildComp.GetPathName() + "\n";
ModelDoc2 swDocTemp = standaard(ModelDoc2);
ModelDocExtension swModelDocExt = standaard(ModelDocExtension);
int longstatus = 0;
int longwarnings = 0;
swDocTemp = ((ModelDoc2)(SWapp.OpenDoc6(swChildComp.GetPathName(), (int)swDocumentTypes_e.swDocPART, 0, "", ref longstatus, ref longwarnings)));
tekenreeks stepFileName = map + swChildComp.Name2 + ".step";
swModelDocExt = (ModelDocExtension)swDocTemp.Extension;
swModelDocExt.SaveAs(stepFileName, 0, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref longstatus, ref longwarnings);
SWapp.CloseDoc(swChildComp.GetPathName());
}
}
}
Vriendelijke groeten