private void m_createPartButton_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; try { string partPath = m_swApp.GetUserPreferenceStringValue((int)swUserPreferenceStringValue_e.swDefaultTemplatePart); PartDoc partDoc = null; if ((null == partPath) || (!System.IO.File.Exists(partPath))) { partDoc = m_swApp.NewPart(); } else { partDoc = m_swApp.NewDocument(partPath, 0, 0, 0); } } catch { } finally { this.Cursor = Cursors.Default; } }
private void b_create_Click(object sender, EventArgs e) { // Abfrage der Eingabe aus allen Textboxen. // TryParse probiert den String in eine double-Variable zu konvertieren. // Liefert true zurück, wenn String konvertiert werden konnte. // Konvertierter Wert wird in Variable kopiert durch das Wort out. if (double.TryParse(tb_breite.Text, out breite) == false || double.TryParse(tb_laenge.Text, out laenge) == false || double.TryParse(tb_hoehe.Text, out hoehe) == false) // || //double.TryParse(tb_radius.Text, out radius) == false) { MessageBox.Show("Fehlerhafte Eingabe!"); return; } // Werte müssen von mm in m konvertiert werden. breite /= 1000.0; laenge /= 1000.0; hoehe /= 1000.0; radius /= 1000.0; // Anlegen eines neuen Bauteiles. ModelDoc2 swModel = swApp.NewPart(); // Ebene oben wird selektiert und eine Skizze wird eingefügt. swModel.Extension.SelectByID("Ebene oben", "PLANE", 0, 0, 0, false, 1, null); swModel.InsertSketch2(true); // Skizze wird in Feature konvertiert, damit diese benannt werden kann. Sketch swSketch = swModel.GetActiveSketch2(); Feature swFeat = (Feature)swSketch; swFeat.Name = "Grundflaeche"; swModel.SketchRectangle(0, 0, 0, breite, laenge, 0, true); Feature swFeat2 = swModel.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, hoehe, 0, false, false, false, false, 0, 0, false, false, false, false, true, true, true, 0, 0, true); swFeat2.Name = "Quader"; swModel.SaveAsSilent("C:\\temp\\Quader_L_" + tb_laenge.Text + "_B_" + tb_breite.Text + "_H_" + tb_hoehe.Text + ".SLDPRT", true); }
// private void b_create_Click(object sender, EventArgs e) { // Deklarieren der benötigten Variablen double a0x, a0y, lh, rg, PMax, PsiMax; // Auslesen der eingegebenen Werte im Formular if (double.TryParse(label_1.Text, out a0x) == false || double.TryParse(label_2.Text, out a0y) == false || double.TryParse(label_3.Text, out lh) == false || double.TryParse(label_4.Text, out rg) == false || double.TryParse(tb_pmax.Text, out PMax) == false || double.TryParse(label_6.Text, out PsiMax) == false) { MessageBox.Show("Fehlerhafte Eingabe!"); return; } // Erzeugen eines neuen Bauteils ModelDoc2 swModel = (ModelDoc2)swApp.NewPart(); // Herstellen zwischen MatCAD und aktives Arbeitsblatt auslesen Matcad.Application mcApp = (Mathcad.Application)Marshal.GetActiveObject("Mathcad.Applicaiton"); Mathcad.Worksheet mcWks = mcApp.ActiveWorksheet; // neuer Sketch in SolidWorks swModel.Extension.SelectByID2("Ebene vorne", "PLANE", 0, 0, 0, false, 0, null, 0); swModel.InsertSketch2(true); // Setzen der Parameter im MathCAD Arbeitsblatt mcWks.SetValue("a0x", a0x); mcWks.SetValue("a0y", a0y); mcWks.SetValue("lh", lh); mcWks.SetValue("rg", rg); mcWks.SetValue("pmax", PMax); mcWks.SetValue("psimax", PsiMax); double xa = 0.0, ya = 0.0; double xk, yk; Mathcad.NumericValue mcVal; // Schleife zur Berechnung der Stützpunkte for (int i = 0; i < PMax; i++) { // Setzten des Parameters für aktuellen Stützpunkt mcWks.SetValue("pact", i); // Auslesen der berechneten Koordinaten aus MathCAD mcVal = (Mathcad.NumericValue)mcWks.GetValue("X"); xk = mcVal.Real; mcVal = (Mathcad.NumericValue)mcWks.GetValue("Y"); yk = mcVal.Real; if (i > 0) { swModel.CreateLine2(xa / 1000.0, ya / 1000.0, 0, xk / 1000.0, yk / 1000.0, 0); } xa = xk; ya = yk; } // Kreis zeichnen und extrudieren swModel.CreateCircleByRadius2(a0x / 1000.0, a0y / 1000.0, 0.0, 3.0 / 1000.0); swModel.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, 0.01, 0, false, false, false, false, 0, 0, false, false, false, false, false, false, false, 0, 0, false); }