Ejemplo n.º 1
0
        public override void CreatePart()
        {
            swApp = SolidWorksSingleton.GetApplication();
            DocumentManager.CreateNewPartDoc();
            swModel = (ModelDoc2)swApp.ActiveDoc;

            swFeature      = swModel.FeatureByPositionReverse(3);
            swFeature.Name = "Front";

            swModel.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, false, 0, null, 0);

            swModel.InsertSketch2(true);

            swModel.CreateCircleByRadius2(0, 0, 0, InsideDiameter / 2);
            swModel.CreateCircleByRadius2(0, 0, 0, OutsideDiameter / 2);

            swModel.InsertSketch2(true);

            swFeature = swModel.FeatureManager.FeatureExtrusion3(true, false, false, 0, 0, Lenght, 0, false, false, false, false, 0, 0, false, false, false, false, false, false, false, 0, 0, false);

            BasicOpertations.ChangeEntityName("FACE", MateOutsideFace, OutsideDiameter / 2, 0, Lenght / 2);

            double dim = (OutsideDiameter - InsideDiameter) / 4;

            BasicOpertations.ChangeEntityName("FACE", MateBase, (InsideDiameter / 2) + dim, 0, 0);

            DocumentManager.Save(TargetFolder, FileName, DocumentManager.sw_DocType.part);
        }
        public override void CreatePart()
        {
            swApp = SolidWorksSingleton.GetApplication();
            DocumentManager.CreateNewPartDoc();

            swModel = (ModelDoc2)swApp.ActiveDoc;

            swFeature      = swModel.FeatureByPositionReverse(3);
            swFeature.Name = "Front";

            swModel.Extension.SelectByID2("Front", "PLANE", 0, 0, 0, false, 0, null, 0);

            swModel.InsertSketch2(true);

            swModel.CreateLine2(0, 0, 0, XLenght, 0, 0);
            //swModel.AddDimension2(0,0,0);

            swModel.CreateLine2(0, 0, 0, 0, YLenght, 0);
            //swModel.AddDimension2(0, 0, 0);

            //int markHorizontal = 2;
            //int markVertical = 4;

            //swModel.Extension.SelectByID2("Point1@Origin", "EXTSKETCHSEGMENT",0,0,0,false, markHorizontal|markVertical,null,0);

            object datumDisp = "Point1@Origin";

            swModel.SketchManager.FullyDefineSketch(true, true, (int)swSketchFullyDefineRelationType_e.swSketchFullyDefineRelationType_Vertical | (int)swSketchFullyDefineRelationType_e.swSketchFullyDefineRelationType_Horizontal, true, (int)swAutodimScheme_e.swAutodimSchemeBaseline, datumDisp, (int)swAutodimScheme_e.swAutodimSchemeBaseline, datumDisp, (int)swAutodimHorizontalPlacement_e.swAutodimHorizontalPlacementBelow, (int)swAutodimVerticalPlacement_e.swAutodimVerticalPlacementLeft);

            swModel.InsertSketch2(true);

            swFeature      = swModel.FeatureByPositionReverse(0);
            swFeature.Name = "Sketch1";

            swModel.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, false, 0, null, 0);

            swModel.FeatureManager.InsertSheetMetalBaseFlange2(Thickness, false, Thickness, Width, 0, true, 0, 0, 0, null, false, 0, 0, 0, 0, false, false, false, false);

            BasicOpertations.ChangeEntityName("FACE", MateRef1, Thickness, YLenght / 2, -Width / 2);

            swModel.Extension.SelectByID2("", "FACE", XLenght / 2, Thickness, -Width / 2, false, 0, null, 0);

            swModel.InsertSketch2(true);

            swModel.CreateCircleByRadius2(XLenght - X1, X2, 0, BoltHoles);
            swModel.CreateCircleByRadius2(XLenght - X1, Width - X2, 0, BoltHoles);

            swModel.InsertSketch2(true);

            swFeature      = swModel.FeatureByPositionReverse(0);
            swFeature.Name = "BoltHoles";

            swModel.Extension.SelectByID2("BoltHoles", "SKETCH", 0, 0, 0, false, 0, null, 0);

            BasicOpertations.SimpleCut();


            swPart = (PartDoc)swApp.ActiveDoc;

            swEntity = swPart.GetEntityByName(MateRef1, (int)swSelectType_e.swSelFACES);
            swEntity.Select4(false, null);

            swModel.InsertSketch2(true);

            swModel.CreateCircleByRadius2(Width / 2, YLenght - (PipeHole * 2), 0, PipeHole);
            swModel.AddDiameterDimension(0, 0, 0);

            swModel.InsertSketch2(true);

            BasicOpertations.SimpleCut();

            BasicOpertations.ChangeEntityName("FACE", MateRefHole, Thickness / 2, YLenght - PipeHole, -Width / 2);

            swModel = (ModelDoc2)swApp.ActiveDoc;

            swModel.Extension.SelectByID2("", "EDGE", XLenght, Thickness / 2, 0, false, 0, null, 0);
            swModel.Extension.SelectByID2("", "EDGE", XLenght, Thickness / 2, -Width, true, 0, null, 0);

            BasicOpertations.SimpleFillet(Rad2);

            swModel.Extension.SelectByID2("", "EDGE", Thickness / 2, YLenght, 0, false, 0, null, 0);
            swModel.Extension.SelectByID2("", "EDGE", Thickness / 2, YLenght, -Width, true, 0, null, 0);

            BasicOpertations.SimpleFillet(Rad1);

            swModel.ClearSelection2(true);
            swModel.ViewZoomtofit2();

            DocumentManager.Save(TargetFolder, FileName, DocumentManager.sw_DocType.part);
        }
Ejemplo n.º 3
0
        private void btn_CreateAssembly_Click(object sender, EventArgs e)
        {
            try
            {
                double h1 = UnitConverter.ConvertToMeter(txt_h1.Text);
                double w  = UnitConverter.ConvertToMeter(txt_w.Text);
                double l1 = UnitConverter.ConvertToMeter(txt_l1.Text);
                double t1 = UnitConverter.ConvertToMeter(txt_t1.Text);
                double r1 = UnitConverter.ConvertToMeter(txt_r1.Text);
                double r2 = UnitConverter.ConvertToMeter(txt_r2.Text);
                double r3 = UnitConverter.ConvertToMeter(txt_r3.Text);
                double x1 = UnitConverter.ConvertToMeter(txt_x1.Text);
                double x2 = UnitConverter.ConvertToMeter(txt_x2.Text);
                double d3 = UnitConverter.ConvertToMeter(txt_d3.Text);
                double d1 = UnitConverter.ConvertToMeter(txt_d1.Text);
                double d2 = UnitConverter.ConvertToMeter(txt_d2.Text);
                double l2 = UnitConverter.ConvertToMeter(txt_l2.Text);
                double h2 = d1;
                double x3 = UnitConverter.ConvertToMeter(txt_x3.Text);


                Rules.DimensionCheck(r1, w / 4, "R1 radüsü çok büyük");
                Rules.DimensionCheck(2 * t1 + x3, l2, "L2 ölçüsü çok kısa, Lütfen parça boyunu uzatınınız...");


                string path = DocumentManager.CreateDir(txt_TargetFolder.Text);



                AnglePart a = new AnglePart();
                a.AssemblyName = txt_AssemblyName.Text;
                a.BoltHoles    = d3 / 2;
                a.Rad1         = r1;
                a.Rad2         = r2;
                a.PipeHole     = (d1 + 0.001) / 2;
                a.Thickness    = t1;
                a.Width        = w;
                a.XLenght      = l1;
                a.YLenght      = h1 + h2;
                a.X1           = x1;
                a.X2           = x2;
                a.MateRef1     = "Ref1";
                a.MateRefHole  = "RefHole";
                a.TargetFolder = path;
                a.FileName     = txt_Part1Name.Text;



                a.CreatePart();


                Pipe p = new Pipe();
                p.InsideDiameter  = d2;
                p.OutsideDiameter = d1;
                p.Lenght          = l2;
                p.TargetFolder    = path;
                p.FileName        = txt_Part2Name.Text;
                p.MateBase        = "PipeFace";
                p.MateOutsideFace = "PipeOutsideFace";
                p.CreatePart();


                DocumentManager.CreateAssemblyDoc(path, txt_AssemblyName.Text);
                BasicOpertations.AddComponent(p, a);

                BasicOpertations.AddConcentricMate(a.FileName, a.MateRefHole, p.FileName, p.MateOutsideFace);

                BasicOpertations.AddDistanceMate(a.FileName, a.MateRef1, p.FileName, p.MateBase, a.Thickness);

                DocumentManager.Save(path, txt_AssemblyName.Text, sw_DocType.assembly);

                Process.Start("explorer.exe", path.ToString());
            }

            catch (FormatException)
            {
                MessageBox.Show("Sayısal olmayan bir değer girdiniz. Lütfen kontrol ediniz...");
            }


            catch (ArgumentNullException)
            {
                MessageBox.Show("Lütfen tüm alanları doldurunuz");
            }


            catch (Exception ex)
            {
                MessageBox.Show("Bir hata oluştu", ex.Message);
            }
        }