Hallo
Hier ist ein Programm, das als Ausgangspunkt dienen können sollte, es ist die Sprache C#, die in VBA übersetzt werden soll:
private SldWorks SWapp;
private Zeichenkette msg = Zeichenfolge. Leer;
privates Zeichenfolgenverzeichnis = Application.StartupPath + "\\";
private void Button6Click(object sender, EventArgs e)
{
if (SWapp == null)
{
SWapp = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application"));
}
ModelDoc2 Teil;
Teil = ((ModelDoc2)(SWapp.ActiveDoc));
string newFile = Teil.IGetDependencies2(wahr, wahr, wahr);
msg = neueDatei + "\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);
MessageBox.Show(msg);
}
public void TraverseAssembly(ModelDoc2 swDocTemp)
{
Cursor.Current = System.Windows.Forms.Cursors.AppStarting;
ConfigurationManager swConfMgr;
swConf-Konfiguration;
Komponente2 swRootComp;
swConfMgr = (ConfigurationManager)swDocTemp.ConfigurationManager;
swConf = (Konfiguration)swConfMgr.ActiveConfiguration;
swRootComp = (Komponente2)swConf.GetRootKomponente3(wahr);
TraverseKomponente(swRootComp);
}
private void TraverseComponent(Component2 swComp)
{
object[] vChildComp;
Komponente2 swChildComp;
lang i = 0;
vChildComp = (Objekt[])swComp.GetChildren();
für (i = 0; i < vChildComp.Length; i++)
{
swChildComp = (Komponente2)vChildComp[i];
TraverseKomponente(swChildComp);
if (msg. Enthält(swChildComp.GetPathName()) == falsch)
{
msg = msg + swChildComp.GetPathName() + "\n";
ModelDoc2 swDocTemp = Standard(ModelDoc2);
ModelDocExtension swModelDocExt = Standard(ModelDocExtension);
int longstatus = 0;
int longwarnings = 0;
swDocTemp = ((ModelDoc2)(SWapp.OpenDoc6(swChildComp.GetPathName(), (int)swDocumentTypes_e.swDocPART, 0, "", ref longstatus, ref longwarnings)));
string stepFileName = Verzeichnis + swChildComp.Name2 + ".step";
swModelDocExt = (ModelDocExtension)swDocTemp.Erweiterung;
swModelDocExt.SaveAs(stepFileName, 0, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref longstatus, ref longwarnings);
SWapp.CloseDoc(swChildComp.GetPathName());
}
}
}
Herzliche Grüße