Guten Morgen Leute,
zur Zeit befasse ich mich mit API-Programmierung und erstelle ein Programm in C# für SolidWorks 2007 SP4. Dieses Programm simuliert einen Fräsbahn im Raum. Für die Simulation erstelle ich einfach eine Skizze mit einem Langloch, dem ich dann mit einem Schnittextrudieren aus dem klotz entferne. So viel zum ablauf.
Wenn ich dieses Programm ablaufen lasse, wird SolidWorks nach ca. 15-20 Skizzen langsammer, und immer langsammer je mehr Skizzen erzeugt werden. Zum Schluss geht es nur noch sehr langsam. Nachdem der 75. Skizze erzeugt wurde, bekomme ich eine Fehlermeldung! Sie lautet: "A required resource was". Leider sieht man die zweite Zeile nicht und daher weiss ich nicht welche "resource" fehlt.
Nachdem ich auf den OK Button geklickt habe, läuft erstmal SolidWorks weiter, und zwar schnell. Aber nach dem Erzeugen von ca. 10-20 weitere Skizzen wird das Programm einfach beendet ohne irdend welche hinweise.
Hat jemand von Euch schon ein ähnliches Verhalten beim API-Programmieren gehabt?
Wenn nicht, hat jemand vielleicht eine Idee was ich tun kann?
Anbei ein Ausschnitt des Codes:
// Disabling automatic sketch relations
iSwApp.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swSketchAutomaticRelations, false);
iSwApp.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swSketchInference, false);
modDoc.Extension.SelectByID2("", "FACE", 0.3, 0.1, 0.1, false, 0, null, 0);
modDoc.InsertSketch2(false);
modDoc.ViewZoomTo2(pU0x-Math.Abs(p0x-pU0x), pU1y+Math.Abs(p0y-pU1y), 0.05,
pL1x+Math.Abs(p1x-pL1x), pL0y-Math.Abs(p1y-pL1y), 0.05);
// Centerline
swLineCenter = (ISketchSegment)modDoc.CreateLine2(p0x, p0y, p0z, p1x, p1y, p1z);
swLineCenter.ConstructionGeometry = true;
modDoc.Extension.SelectByID2("", "SKETCHPOINT", p0x, p0y, p0z, false, 0, null, 0);
modDoc.Extension.SelectByID2("", "SKETCHPOINT", p1x, p1y, p1z, true, 0, null, 0);
modDoc.SketchAddConstraints("sgFIXED");
// Topline of slot
swLineTop = (ISketchSegment)modDoc.CreateLine2(pU0x, pU0y, pU0z, pU1x, pU1y, pU1z);
modDoc.Extension.SelectByID2("", "SKETCHPOINT", pU0x, pU0y, pU0z, false, 0, null, 0);
modDoc.Extension.SelectByID2("", "SKETCHPOINT", pU1x, pU1y, pU1z, true, 0, null, 0);
modDoc.SketchAddConstraints("sgFIXED");
// Bottomline of slot
swLineBottom = (ISketchSegment)modDoc.CreateLine2(pL0x, pL0y, pL0z, pL1x, pL1y, pL1z);
modDoc.Extension.SelectByID2("", "SKETCHPOINT", pL0x, pL0y, pL0z, false, 0, null, 0);
modDoc.Extension.SelectByID2("", "SKETCHPOINT", pL1x, pL1y, pL1z, true, 0, null, 0);
modDoc.SketchAddConstraints("sgFIXED");
// Enabling automatic sketch relations
iSwApp.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swSketchInference, true);
iSwApp.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swSketchAutomaticRelations, true);
// Inserting the Arcs
modDoc.Extension.SelectByID2("", "SKETCHPOINT", pU1x, pU1y, pU1z, false, 0, null, 0);
resultArc = modDoc.CreateTangentArc2(pU1x, pU1y, pU1z, pL1x, pL1y, pL1z,
(int)swTangentArcTypes_e.swForward);
modDoc.Extension.SelectByID2("", "SKETCHPOINT", pL0x, pL0y, pL0z, false, 0, null, 0);
resultArc = modDoc.CreateTangentArc2(pL0x, pL0y, pL0z, pU0x, pU0y, pU0z,
(int)swTangentArcTypes_e.swForward);
// Creating a FeatureCut.
modDoc.FeatureManager.FeatureCut(true, false, false, 0, 0, 0.01, 0.1, false, false, false, false,
0.018, 0.018, false, false, false, false, false, true, true);
------------------
Gruß Ulf
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP