Hey,
ich habe hier folgenden Code:
MotionStudyManager studyMan = default(MotionStudyManager);
MotionStudy study = default(MotionStudy);
ModelDoc2 swDoc = (ModelDoc2)swApp.ActiveDoc;
if (swDoc != null)
{
studyMan = (MotionStudyManager)swDoc.Extension.GetMotionStudyManager();
study = studyMan.GetMotionStudy("1200");
if (study.IsActive == false)
study.Activate();
int[] positions = new int[6];
object[] motionFeat = (object[])study.GetMotionFeatures();
string featurename = ((IFeature)motionFeat[3]).Name;
MessageBox.Show(featurename);
}
else ...
Wenn ich diesen Code OHNE Rebuild des Dokuments, in SolidWorks, aufrufe, dann läuft auch alles ohne Probleme.
Führe ich vorher allerdings einen rebuild aus (Beim Laden von "valve_cam2.sldasm" wird man ja danach gefragt), dann liefert "GetMotionFeatues" keine Objekte zurück.
object[] motionFeat ist also null und es gibt eine entsprechende Exception.
Führe ich den Code jetzt direkt erneut aus (vorher Exception catchen), dann klappt das sofort. Aber das kann ja nicht die Lösung sein.
Mir ist aufgefallen, wenn ich SingleSteps im VisualStudio-Debugger nutze, dann klappt es meistens sofort. Dachte also, vllt. braucht die API/SolidWorks ein bisschen, aber ein Thread.Sleep hilft hierbei nicht.
Gibt es eine Funktion die nach einem Rebuild aufgerufen werden muss, damit GetMotionFeatures die Features des Dokuments zurück gibt?
Danke 
[Diese Nachricht wurde von Wayn0r am 11. Jul. 2011 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP