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); }
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); } }