예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        //
        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);
        }