利用C#操作Solid Edge的实用教程

c#操作solid_edge


在所有操作之前,必须要进行引入Solid Edge的dll文件

image-20201110174257184

image-20201110174314494

  • 以下所有功能展示

image-20201116095614112

一、基本操作

1、简单打开solid edge软件

1、引入包
using SolidEdgeCommunity.Extensions;using SolidEdgeConstants;using SolidEdgeFrameworkSupport;using SolidEdgeGeometry;using SolidEdgePart;using FeaturePropertyConstants = SolidEdgePart.FeaturePropertyConstants;using FeatureStatusConstants = SolidEdgePart.FeatureStatusConstants;using FeatureTopologyQueryTypeConstants = SolidEdgeGeometry.FeatureTopologyQueryTypeConstants;using PatternOffsetTypeConstants = SolidEdgeFrameworkSupport.PatternOffsetTypeConstants;using ProfileValidationType = SolidEdgePart.ProfileValidationType;using ReferenceElementConstants = SolidEdgePart.ReferenceElementConstants;using SEPatternRecognitionLevel = SolidEdgeConstants.SEPatternRecognitionLevel;
2、创建按钮,启动Solid Edge
private void button1_Click_1(object sender, EventArgs e){    //建立objApp变量,Application是SolidEdgeFrameWork框架结构类型库的子类    private SolidEdgeFramework.Application objApp;     //建立objDoc变量,PartDocument是SolidEdgePart的子类,是一个数据文档,包含零件的几何和属性数据。    private SolidEdgePart.PartDocument objDoc;    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //Creates a new part document.    objDoc = objApp.Documents.AddPartDocument();     objApp.DoIdle();    objApp.Visible = true;}
  • 注释
//创建零件文档objApp.Documents.AddPartDocument();//创建装配文档objApp.Documents.AddAssemblyDocument();//创建工程图文档objApp.Documents.AddDraftDocument();

3、选择文件并打开

private void button4_Click(object sender, EventArgs e){    OpenFileDialog fileDialog = new OpenFileDialog();    fileDialog.Multiselect = true;    fileDialog.Title = "请选择文件";    fileDialog.Filter = "所有文件(*.par)|*.par";    if (fileDialog.ShowDialog() == DialogResult.OK)    {        string filePath = fileDialog.FileName;        //@1 连接solidedge应用        // Register with OLE to handle concurrency issues on the current thread.        SolidEdgeCommunity.OleMessageFilter.Register();         //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,        objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);         //open a new part document.        objDoc = objApp.Documents.Open(filePath);         objApp.DoIdle();        objApp.Visible = true;    }    else     {        MessageBox.Show("路径获取失败", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Information);    }}
  • 核心代码
objApp.Documents.Open(filePath);
  • filePath是从文件选择框获取的,不在这里赘述,可以参照另一文章或者百度

4、保存当前活动的文件

/** * 保存当前活动的文件 */private void button5_Click(object sender, EventArgs e){    FolderBrowserDialog dialog = new FolderBrowserDialog();    dialog.Description = "请选择文件路径";    DateTime dateTime = DateTime.Now;    if (dialog.ShowDialog() == DialogResult.OK)    {        string foldPath = dialog.SelectedPath;         string newFilePath = foldPath + @"\" + dateTime.ToString("yyyyMMddHHmmss") + ".par"; //@1 连接solidedge应用 // Register with OLE to handle concurrency issues on the current thread. SolidEdgeCommunity.OleMessageFilter.Register(); //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示, objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true); //获取当前活动的数据文档,并报错在当前位置的当前文件名,如果是新创建没有文件名的方法不能用这个,得用SaveAs //objApp.GetActiveDocument().Save(); try { objApp.GetActiveDocument().SaveAs(newFilePath); objApp.DoIdle(); objApp.Visible = true; MessageBox.Show("保存成功"); } catch  { MessageBox.Show("没有正在活动的文档"); } } else { MessageBox.Show("路径获取失败", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Information); }}
  • 核心代码
//获取当前活动的数据文档,并报错在当前位置的当前文件名,如果是新创建没有文件名的方法不能用这个,得用SaveAsobjApp.GetActiveDocument().Save();//没有初始文件名,相当于另存为objApp.GetActiveDocument().SaveAs(newFilePath);
  • 这里有个坑,书本中是用VB编写的,书写方式是objApp.ActiveDocument.SaveAs(newFilePath);但是c#中的dll没有这个接口,是通过get方法获取到的。

5、退出软件

/** * 退出软件 */private void button6_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     objApp.GetActiveDocument().Save();        objApp.Quit();}
  • 核心代码
objApp.Quit();

6、旋转、偏移平面

/** * 旋转、偏移平面 */private void button7_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建装配文档    AssemblyDocument objAssyDoc = objApp.Documents.AddAssemblyDocument();     //获得装配参考面集合对象    AsmRefPlanes asmRefPlanes = objAssyDoc.AsmRefPlanes;     //建立与yoz面成120°的参考面    //先选择yoz参考面,作为母平面    AsmRefPlane objPPlane = asmRefPlanes.Item(2);    //然后旋转120°    AsmRefPlane asmRefPlane = asmRefPlanes.AddAngularByAngle(        //设置倾斜的母平面        ParentPlane: objPPlane,        //旋转角度        Angle: (2 * PI / 3),        //与母平面objPPlane相交来定义倾斜平面的旋转轴        Pivot: asmRefPlanes.Item(1),        //定义新参考平面轴的原点        PivotOrigin: ReferenceElementConstants.igPivotEnd,        //标识顺时针旋转        NormalSide: ReferenceElementConstants.igNormalSide,        //这个打开标识为局部的        Local: true    );     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     //获得零件参考面集合对象    RefPlanes refPlanes = objPartDoc.RefPlanes;     //建立与xoy基准面平行的参考平面    RefPlane refPlane = refPlanes.AddParallelByDistance(        //定义母平面为xoy面        ParentPlane: refPlanes.Item(1),        //定义和母平面的距离        Distance: 0.1,        //定义新增参考面为正向的        NormalSide: ReferenceElementConstants.igNormalSide,        //标识不是局部的        Local: false    );     objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
//获得装配参考面集合对象    AsmRefPlanes asmRefPlanes = objAssyDoc.AsmRefPlanes;     //建立与yoz面成120°的参考面    //先选择yoz参考面,作为母平面    AsmRefPlane objPPlane = asmRefPlanes.Item(2);    //然后旋转120°    AsmRefPlane asmRefPlane = asmRefPlanes.AddAngularByAngle(        //设置倾斜的母平面        ParentPlane: objPPlane,        //旋转角度        Angle: (2 * PI / 3),        //与母平面objPPlane相交来定义倾斜平面的旋转轴        Pivot: asmRefPlanes.Item(1),        //定义新参考平面轴的原点        PivotOrigin: ReferenceElementConstants.igPivotEnd,        //标识顺时针旋转        NormalSide: ReferenceElementConstants.igNormalSide,        //这个打开标识为局部的        Local: true    );

操作结果:

image-20201116100046540

image-20201116100012840

image-20201116100029995

7、参数化,旋转、偏移平面

/** * 参数化,旋转、偏移平面 */private void button8_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     //获得零件参考面集合对象    RefPlanes refPlanes = objPartDoc.RefPlanes;     //获取动态参数    string combox1 = comboBox1.Text;    double textbox1 = double.Parse(textBox1.Text);    string combox2 = comboBox2.Text;     //n代表平面代号码,默认为1    int n = 1;    //判断平面编号    if (combox1 == "X-Z")    {        n = 3;    }    else if (combox1 == "Y-Z")    {        n = 2;    }    //m代表平移距离    double m = textbox1 / 1000;    //g代表方向    ReferenceElementConstants g = combox2 == "正向" ? ReferenceElementConstants.igNormalSide : ReferenceElementConstants.igReverseNormalSide;     //建立与xoy基准面平行的参考平面    RefPlane refPlane = refPlanes.AddParallelByDistance(        //定义母平面为xoy面        ParentPlane: refPlanes.Item(n),        //定义和母平面的距离        Distance: m,        //定义新增参考面为正向的        NormalSide: g,        //标识不是局部的        Local: false    );    //RefAxes refAxes = objPartDoc.RefAxes;    //Profile profile;    //RefAxis refAxis = profile.SetAxisOfRevolution(LineForAxis:objLine);    objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
//获取动态参数    string combox1 = comboBox1.Text;    double textbox1 = double.Parse(textBox1.Text);    string combox2 = comboBox2.Text;     //n代表平面代号码,默认为1    int n = 1;    //判断平面编号    if (combox1 == "X-Z")    {        n = 3;    }    else if (combox1 == "Y-Z")    {        n = 2;    }    //m代表平移距离    double m = textbox1 / 1000;    //g代表方向    ReferenceElementConstants g = combox2 == "正向" ? ReferenceElementConstants.igNormalSide : ReferenceElementConstants.igReverseNormalSide;
  • 知识点,c#中下拉选择框指定默认值
  • 在Designer.cs文件中,有load的代码
  • 找到下拉选择框组件代码,然后加上如下代码
this.comboBox1.SelectedIndex = 0;
  • 操作结果:

image-20201116100206735

image-20201116100234118

8、划直线

/** * 划直线 */private void button10_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     Lines2d lines2d = objPartDoc.ProfileSets.Add().Profiles.Add(pRefPlaneDisp: objPartDoc.RefPlanes.Item(1)).Lines2d;     lines2d.AddBy2Points(0, 0, 0.01, 0.01);     objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
//创建零件文档PartDocument objPartDoc = objApp.Documents.AddPartDocument(); Lines2d lines2d = objPartDoc.ProfileSets.Add().Profiles.Add(pRefPlaneDisp: objPartDoc.RefPlanes.Item(1)).Lines2d; lines2d.AddBy2Points(0, 0, 0.01, 0.01);

结果展示:

image-20201116100314898

9、带参-划直线

/** * 带参-划直线 */private void button12_Click(object sender, EventArgs e){    if (textBox2.Text == "" || textBox3.Text == "")    {        MessageBox.Show("必填项不能为空");        return;    }    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     Profile objProfile = objPartDoc.ProfileSets.Add().Profiles.Add(objPartDoc.RefPlanes.Item(1));     //获得直线参数    double line_angle = double.Parse(textBox3.Text) * PI / 180;    double line_llen = double.Parse(textBox2.Text) / 1000;     objProfile.Lines2d.AddByPointAngleLength(0, 0, line_angle, line_llen);     objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
//获得直线参数double line_angle = double.Parse(textBox3.Text) * PI / 180;double line_llen = double.Parse(textBox2.Text) / 1000; objProfile.Lines2d.AddByPointAngleLength(0, 0, line_angle, line_llen);
  • 结果展示:

image-20201116100352903

image-20201116100403817

10、画圆

/** * 画圆 */private void button11_Click(object sender, EventArgs e){    if (textBox5.Text == "")    {        MessageBox.Show("必填项不能为空");        return;    }    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     Profile objProfile1 = objPartDoc.ProfileSets.Add().Profiles.Add(objPartDoc.RefPlanes.Item(1));    Profile objProfile2 = objPartDoc.ProfileSets.Add().Profiles.Add(objPartDoc.RefPlanes.Item(2));    Profile objProfile3 = objPartDoc.ProfileSets.Add().Profiles.Add(objPartDoc.RefPlanes.Item(3));     //获得直线参数    double radius = double.Parse(textBox5.Text) / 1000;    //原点加半径    objProfile1.Circles2d.AddByCenterRadius(0, 0, radius);    objProfile2.Circles2d.AddByCenterRadius(0, 0, radius);    objProfile3.Circles2d.AddByCenterRadius(0, 0, radius);     objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
Profile objProfile1 = objPartDoc.ProfileSets.Add().Profiles.Add(objPartDoc.RefPlanes.Item(1)); //获得直线参数double radius = double.Parse(textBox5.Text) / 1000; //原点加半径objProfile1.Circles2d.AddByCenterRadius(0, 0, radius);
  • 结果展示:

image-20201116100441819

image-20201116100501129

11、画弧线

/** * 画弧线 */private void button13_Click(object sender, EventArgs e){    if (textBox4.Text == "" || textBox6.Text == "")    {        MessageBox.Show("必填项不能为空");        return;    }    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     Profile objProfile = objPartDoc.ProfileSets.Add().Profiles.Add(objPartDoc.RefPlanes.Item(1));     //获得圆的输入参数    double arc_r = double.Parse(textBox4.Text) / 1000;    double arc_a = double.Parse(textBox6.Text);     //对参数进行数学转换    double point_x = arc_r * Math.Cos(arc_a * PI / 180);    double point_y = arc_r * Math.Sin(arc_a * PI / 180);    //中心点,起始点,终点坐标    objProfile.Arcs2d.AddByCenterStartEnd(        xCenter: 0, yCenter: 0,        xStart: arc_r, yStart: 0,        xEnd: point_x, yEnd: point_y);     objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
//获得圆的输入参数    double arc_r = double.Parse(textBox4.Text) / 1000;    double arc_a = double.Parse(textBox6.Text);     //对参数进行数学转换    double point_x = arc_r * Math.Cos(arc_a * PI / 180);    double point_y = arc_r * Math.Sin(arc_a * PI / 180);    //中心点,起始点,终点坐标    objProfile.Arcs2d.AddByCenterStartEnd(        xCenter: 0, yCenter: 0,        xStart: arc_r, yStart: 0,        xEnd: point_x, yEnd: point_y);
  • 结果展示:

image-20201116100536392

12、画矩形

/** * 画矩形 */private void button14_Click(object sender, EventArgs e){    if (textBox8.Text == "" || textBox7.Text == "")    {        MessageBox.Show("必填项不能为空");        return;    }    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     Profile objProfile = objPartDoc.ProfileSets.Add().Profiles.Add(objPartDoc.RefPlanes.Item(3));     //获得矩形的输入参数    double objWidth = double.Parse(textBox8.Text) / 1000;    double objHeight = double.Parse(textBox7.Text) / 1000;     RectangularPattern2d objRPattern = objProfile.RectangularPatterns2d.Add(        OriginX: 0, OriginY: 0,        Width: objWidth, Height: objHeight,        Angle: 0,        OffsetType: PatternOffsetTypeConstants.sePatternFillOffset,        XCount: 6, YCount: 4,        XSpace: 0.015, YSpace: 0.01);     objApp.DoIdle();    objApp.Visible = true;}
  • 核心-RectangularPatterns2d
//获得矩形的输入参数double objWidth = double.Parse(textBox8.Text) / 1000;double objHeight = double.Parse(textBox7.Text) / 1000; RectangularPattern2d objRPattern = objProfile.RectangularPatterns2d.Add(    OriginX: 0, OriginY: 0,    Width: objWidth, Height: objHeight,    Angle: 0,    OffsetType: PatternOffsetTypeConstants.sePatternFillOffset,    XCount: 6, YCount: 4,    XSpace: 0.015, YSpace: 0.01);
  • 结果展示:

image-20201116100629359

image-20201116100623556

13、复制图形元素

/** * 复制图形元素 */private void button16_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     Profile objProfile1 = objPartDoc.ProfileSets.Add().Profiles.Add(objPartDoc.RefPlanes.Item(1));     //原点加半径    Circle2d circle2D = objProfile1.Circles2d.AddByCenterRadius(0, 0, 0.08);     //复制圆    circle2D.Duplicate(XDistance: 0.1);    circle2D.Duplicate(YDistance: 0.1);    circle2D.Duplicate(XDistance: 0.1, YDistance: 0.1);     objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
//原点加半径Circle2d circle2D = objProfile1.Circles2d.AddByCenterRadius(0, 0, 0.08); //复制圆circle2D.Duplicate(XDistance: 0.1);circle2D.Duplicate(YDistance: 0.1);circle2D.Duplicate(XDistance: 0.1, YDistance: 0.1);
  • 结果展示:

image-20201116100646026

image-20201116100656286

14、创建圆角

/** * 创建圆角 */private void button18_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();    //先创建轮廓对象集合    Profile profile = objPartDoc.ProfileSets.Add().Profiles.Add(objPartDoc.RefPlanes.Item(1));    //在轮廓里创建直线,用来画长方形,也可以用其他方法划长方形    Line2d line1 = profile.Lines2d.AddBy2Points(0, 0, 0.08, 0);    Line2d line2 = profile.Lines2d.AddBy2Points(0.08, 0, 0.08, 0.06);    Line2d line3 = profile.Lines2d.AddBy2Points(0.08, 0.06, 0, 0.06);    Line2d line4 = profile.Lines2d.AddBy2Points(0, 0.06, 0, 0);     //创建圆弧对象集合后创建倒圆角    profile.Arcs2d.AddAsFillet(line1, line2, 0.01, 0.05, 0.15);    profile.Arcs2d.AddAsFillet(line2, line3, 0.01, -0.15, -0.05);    profile.Arcs2d.AddAsFillet(line3, line4, 0.01, 0.15, 0.05);    profile.Arcs2d.AddAsFillet(line4, line1, 0.01, 0.05, 0.15);     objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
//在轮廓里创建直线,用来画长方形,也可以用其他方法划长方形Line2d line1 = profile.Lines2d.AddBy2Points(0, 0, 0.08, 0);Line2d line2 = profile.Lines2d.AddBy2Points(0.08, 0, 0.08, 0.06);Line2d line3 = profile.Lines2d.AddBy2Points(0.08, 0.06, 0, 0.06);Line2d line4 = profile.Lines2d.AddBy2Points(0, 0.06, 0, 0); //创建圆弧对象集合后创建倒圆角profile.Arcs2d.AddAsFillet(line1, line2, 0.01, 0.05, 0.15);profile.Arcs2d.AddAsFillet(line2, line3, 0.01, -0.15, -0.05);profile.Arcs2d.AddAsFillet(line3, line4, 0.01, 0.15, 0.05);profile.Arcs2d.AddAsFillet(line4, line1, 0.01, 0.05, 0.15);
  • 结果展示:

image-20201116100720389

15、平行约束

/** * 平行约束 */private void button17_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     Profile profile = objPartDoc.ProfileSets.Add().Profiles.Add(pRefPlaneDisp: objPartDoc.RefPlanes.Item(1));     //弄两直线出来    Line2d line1 = profile.Lines2d.AddBy2Points(-0.03, 0.06, 0.01, 0.04);    Line2d line2 = profile.Lines2d.AddBy2Points(-0.05, 0.01, 0.05, 0.03);     Relations2d relations2D = (Relations2d)profile.Relations2d;    relations2D.AddParallel(line1, line2);     //垂直一把    //relations2D.AddVertical(line1);     objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
//弄两直线出来    Line2d line1 = profile.Lines2d.AddBy2Points(-0.03, 0.06, 0.01, 0.04);    Line2d line2 = profile.Lines2d.AddBy2Points(-0.05, 0.01, 0.05, 0.03);     Relations2d relations2D = (Relations2d)profile.Relations2d;    relations2D.AddParallel(line1, line2);
  • 结果展示:

image-20201116100735977

16、画个三角形

/** * 画个三角形 */private void button19_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     Profile[] objProfiles = new Profile[3];         ///@创建三棱柱    ///     //设置参考面    objProfiles[1] = objPartDoc.ProfileSets.Add().Profiles.Add(pRefPlaneDisp: objPartDoc.RefPlanes.Item(3));    Lines2d objLines = objProfiles[1].Lines2d;     //绘制三角形轮廓线(由三条直线围成)    objLines.AddBy2Points(0, 0.034, -0.03, -0.017);    objLines.AddBy2Points(-0.03, -0.017, 0.03, -0.017);    objLines.AddBy2Points(0.03, -0.017, 0, 0.034);     //使用AddKeypoint方法,使三条直线闭合    Relations2d relations2D = (Relations2d)objProfiles[1].Relations2d;    relations2D.AddKeypoint(objLines.Item(1), (int)KeypointIndexConstants.igLineEnd,                            objLines.Item(2), (int)KeypointIndexConstants.igLineStart);    relations2D.AddKeypoint(objLines.Item(2), (int)KeypointIndexConstants.igLineEnd,                            objLines.Item(3), (int)KeypointIndexConstants.igLineStart);    relations2D.AddKeypoint(objLines.Item(3), (int)KeypointIndexConstants.igLineEnd,                            objLines.Item(1), (int)KeypointIndexConstants.igLineStart);     //检查草图轮廓    int lngStatus = objProfiles[1].End(ValidationCriteria: ProfileValidationType.igProfileClosed);    if (lngStatus != 0)    {        MessageBox.Show("Progile not closed");    }     // Create a new array of profile objects.    Array profileArray = Array.CreateInstance(typeof(Profile), 1); //创建使用 从零开始的索引、具有指定tppe和长度 的一维数组 这里是创建 SolidEdgePart.Profile 类型的只有一个元素的一个一维数组    profileArray.SetValue(objProfiles[1], 0); // 将这个数组的唯一元素的只设置为 profile     Model objModel = objPartDoc.Models.AddFiniteExtrudedProtrusion(        NumberOfProfiles: profileArray.Length,//指定在创建拉伸体时使用的轮廓的数量的长型        ProfileArray: profileArray, //包含用于拉伸的轮廓的数组,数组中轮廓的数量必须和numberofprofiles参数指定的参数相等        ProfilePlaneSide: FeaturePropertyConstants.igRight,// 拉伸的方向,igright是正向,igleft是负向,igsymmetric是双向        ExtrusionDistance: 0.09);    //关闭草图    objProfiles[1].Visible = false;     objApp.DoIdle();    objApp.Visible = true;}
  • 核心代码
     ///@创建三棱柱    /////绘制三角形轮廓线(由三条直线围成)    objLines.AddBy2Points(0, 0.034, -0.03, -0.017);    objLines.AddBy2Points(-0.03, -0.017, 0.03, -0.017);    objLines.AddBy2Points(0.03, -0.017, 0, 0.034);//使用AddKeypoint方法,使三条直线闭合    Relations2d relations2D = (Relations2d)objProfiles[1].Relations2d;    relations2D.AddKeypoint(objLines.Item(1), (int)KeypointIndexConstants.igLineEnd,                            objLines.Item(2), (int)KeypointIndexConstants.igLineStart);    relations2D.AddKeypoint(objLines.Item(2), (int)KeypointIndexConstants.igLineEnd,                            objLines.Item(3), (int)KeypointIndexConstants.igLineStart);    relations2D.AddKeypoint(objLines.Item(3), (int)KeypointIndexConstants.igLineEnd,                            objLines.Item(1), (int)KeypointIndexConstants.igLineStart);   // Create a new array of profile objects.    Array profileArray = Array.CreateInstance(typeof(Profile), 1); //创建使用 从零开始的索引、具有指定tppe和长度 的一维数组 这里是创建 SolidEdgePart.Profile 类型的只有一个元素的一个一维数组    profileArray.SetValue(objProfiles[1], 0); // 将这个数组的唯一元素的只设置为 profile     Model objModel = objPartDoc.Models.AddFiniteExtrudedProtrusion(        NumberOfProfiles: profileArray.Length,//指定在创建拉伸体时使用的轮廓的数量的长型        ProfileArray: profileArray, //包含用于拉伸的轮廓的数组,数组中轮廓的数量必须和numberofprofiles参数指定的参数相等        ProfilePlaneSide: FeaturePropertyConstants.igRight,// 拉伸的方向,igright是正向,igleft是负向,igsymmetric是双向        ExtrusionDistance: 0.09);
  • 结果展示:

image-20201116100755283

17、生成实体

/** * 生成实体 */private void button20_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objPartDoc = objApp.Documents.AddPartDocument();     Profile[] objProfiles = new Profile[3];         ///@创建三棱柱    ///     //设置参考面    objProfiles[1] = objPartDoc.ProfileSets.Add().Profiles.Add(pRefPlaneDisp: objPartDoc.RefPlanes.Item(3));    Lines2d objLines = objProfiles[1].Lines2d;     //绘制三角形轮廓线(由三条直线围成)    objLines.AddBy2Points(0, 0.034, -0.03, -0.017);    objLines.AddBy2Points(-0.03, -0.017, 0.03, -0.017);    objLines.AddBy2Points(0.03, -0.017, 0, 0.034);     //使用AddKeypoint方法,使三条直线闭合    Relations2d relations2D = (Relations2d)objProfiles[1].Relations2d;    relations2D.AddKeypoint(objLines.Item(1), (int)KeypointIndexConstants.igLineEnd,                            objLines.Item(2), (int)KeypointIndexConstants.igLineStart);    relations2D.AddKeypoint(objLines.Item(2), (int)KeypointIndexConstants.igLineEnd,                            objLines.Item(3), (int)KeypointIndexConstants.igLineStart);    relations2D.AddKeypoint(objLines.Item(3), (int)KeypointIndexConstants.igLineEnd,                            objLines.Item(1), (int)KeypointIndexConstants.igLineStart);     //检查草图轮廓    int lngStatus = objProfiles[1].End(ValidationCriteria: ProfileValidationType.igProfileClosed);    if (lngStatus != 0)    {        MessageBox.Show("objProfiles[1] Progile not closed");    }     // Create a new array of profile objects.    Array profileArray = Array.CreateInstance(typeof(Profile), 1); //创建使用 从零开始的索引、具有指定tppe和长度 的一维数组 这里是创建 SolidEdgePart.Profile 类型的只有一个元素的一个一维数组    profileArray.SetValue(objProfiles[1], 0); // 将这个数组的唯一元素的只设置为 profile     Model objModel = objPartDoc.Models.AddFiniteExtrudedProtrusion(        NumberOfProfiles: profileArray.Length,//指定在创建拉伸体时使用的轮廓的数量的长型        ProfileArray: profileArray, //包含用于拉伸的轮廓的数组,数组中轮廓的数量必须和numberofprofiles参数指定的参数相等        ProfilePlaneSide: FeaturePropertyConstants.igRight,// 拉伸的方向,igright是正向,igleft是负向,igsymmetric是双向        ExtrusionDistance: double.Parse(textBox9.Text) / 1000);    //关闭草图    objProfiles[1].Visible = false;         ///@创建拉伸圆柱    ///     Body objBody = (Body)objPartDoc.Models.Item(1).Body;    //从模型的体对象中检索所有的面    Faces objFaces = (Faces)objBody.Faces[FeatureTopologyQueryTypeConstants.igQueryAll];    //从面集中得到第1个面复给对象变量objFace    Face objFace = (Face)objFaces.Item(1);     //用对象变量objFace为基面,设置参考平面objRefPln    //采用平行参考面方法设置(距离设置为0)    RefPlane objRefPln = objPartDoc.RefPlanes.AddParallelByDistance(        ParentPlane: objFace,        Distance: 0,        NormalSide: ReferenceElementConstants.igNormalSide);     //设置参考面,并在参考面上绘制圆    Profile objProf = objPartDoc.ProfileSets.Add().Profiles.Add(objRefPln);    objProf.Circles2d.AddByCenterRadius(0, 0, double.Parse(textBox10.Text) / 1000);     //检查草图轮廓是否有效    lngStatus = objProf.End(ProfileValidationType.igProfileClosed);    if (lngStatus != 0)    {        MessageBox.Show("objProf Profile not closed");    }    //创建拉伸特征(圆柱)    objModel.ExtrudedProtrusions.AddFinite(        Profile: objProf,        ProfileSide: FeaturePropertyConstants.igLeft,        ProfilePlaneSide: FeaturePropertyConstants.igRight,        Depth: double.Parse(textBox11.Text) / 1000);     //显示草图轮廓线    objProf.Visible = true;        ///@创建拉伸圆柱2    ///    //重新搜索对象中所有的面    objBody = (Body)objPartDoc.Models.Item(1).Body;    objFaces = (Faces)objBody.Faces[FeatureTopologyQueryTypeConstants.igQueryAll];    //从面集合中得到第二个面赋值给对象变量objFace1    Face objFace1 = (Face)objFaces.Item(2);     //用对象变量objFace1为基面,设置参考平面objRefPln1    //采用平行参考面方法获得参考面(距离设置为0)    RefPlane objRefPln1 = objPartDoc.RefPlanes.AddParallelByDistance(        ParentPlane: objFace1,        Distance: 0,        NormalSide: ReferenceElementConstants.igNormalSide);     //设置参考面,并在参考面上绘制圆    Profile objProf1 = objPartDoc.ProfileSets.Add().Profiles.Add(objRefPln1);    objProf1.Circles2d.AddByCenterRadius(0, 0, double.Parse(textBox10.Text) / 1000);    //检查草图轮廓是否有效    lngStatus = objProf1.End(ProfileValidationType.igProfileClosed);    if (lngStatus != 0)    {        MessageBox.Show("objProf2 Profile not closed");    }    //创建拉伸实体特征    objModel.ExtrudedProtrusions.AddFinite(        Profile: objProf1,        ProfileSide: FeaturePropertyConstants.igLeft,        ProfilePlaneSide: FeaturePropertyConstants.igRight,        Depth: double.Parse(textBox11.Text) / 1000);    //显示草图轮廓线    objProf.Visible = true;          ///@创建拉伸圆柱3    ///    //重新搜索对象中所有的面    objBody = (Body)objPartDoc.Models.Item(1).Body;    objFaces = (Faces)objBody.Faces[FeatureTopologyQueryTypeConstants.igQueryAll];    //从面集合中得到第二个面赋值给对象变量objFace2    Face objFace2 = (Face)objFaces.Item(3);     //用对象变量objFace2为基面,设置参考平面objRefPln2    //采用平行参考面方法获得参考面(距离设置为0)    RefPlane objRefPln2 = objPartDoc.RefPlanes.AddParallelByDistance(        ParentPlane: objFace2,        Distance: 0,        NormalSide: ReferenceElementConstants.igNormalSide);     //设置参考面,并在参考面上绘制圆    Profile objProf2 = objPartDoc.ProfileSets.Add().Profiles.Add(objRefPln2);    objProf2.Circles2d.AddByCenterRadius(0, 0, double.Parse(textBox10.Text) / 1000);    //检查草图轮廓是否有效    lngStatus = objProf2.End(ProfileValidationType.igProfileClosed);    if (lngStatus != 0)    {        MessageBox.Show("objProf2 Profile not closed");    }    //创建拉伸实体特征    objModel.ExtrudedProtrusions.AddFinite(        Profile: objProf2,        ProfileSide: FeaturePropertyConstants.igLeft,        ProfilePlaneSide: FeaturePropertyConstants.igRight,        Depth: double.Parse(textBox11.Text) / 1000);    //显示草图轮廓线    objProf.Visible = true;     objApp.DoIdle();    objApp.Visible = true;}
  • 结果展示:

image-20201116100856887

image-20201116100905616

18、法兰零件实例

/** * 法兰零件实例 */private void button21_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objDoc = objApp.Documents.AddPartDocument();        ///@声明对象    ///    / Create a new array of profile objects.    Array objRPProfArray = Array.CreateInstance(typeof(Profile), 1); //创建使用 从零开始的索引、具有指定tppe和长度 的一维数组 这里是创建 SolidEdgePart.Profile 类型的只有一个元素的一个一维数组    //Profile[] objRPProfArray = new Profile[4];    Array objRPProfArray1 = Array.CreateInstance(typeof(Profile), 1); //创建使用 从零开始的索引、具有指定tppe和长度 的一维数组 这里是创建 SolidEdgePart.Profile 类型的只有一个元素的一个一维数组    //Profile[] objRPProfArray1 = new Profile[4];    Array objEdgArr = Array.CreateInstance(typeof(Edge), 1);    Array objEdgArray = Array.CreateInstance(typeof(Edge), 1);    Array db1RadiusArray = new Double[2];         ///@3用旋转填料创建地盘(大圆)    ///    //设置参考面    Profile objRPProfile = objDoc.ProfileSets.Add().Profiles.Add(objDoc.RefPlanes.Item(2));    //绘制轴线    objRPProfile.Lines2d.AddBy2Points(0, -0.05, 0, 0.05);    //设置参考轴    RefAxis objRPRAxis = (RefAxis)objRPProfile.SetAxisOfRevolution(objRPProfile.Lines2d.Item(1));     //绘制矩形轮廓线    objRPProfile.RectangularPatterns2d.Add(        OriginX: 0, OriginY: 0,        Width: double.Parse(textBox12.Text) / 1000, Height: double.Parse(textBox13.Text) / 1000,        Angle: 0, OffsetType: PatternOffsetTypeConstants.sePatternFillOffset,        XCount: 6, YCount: 4,        XSpace: 0.015, YSpace: 0.01);    //检查草图轮廓是否有效    int lngStatus = 0;    if (lngStatus != 0)    {        MessageBox.Show("objRPProfile Profile for the base feature is self-intersecting");    }    //使用旋转填料方法生成特征    objRPProfArray.SetValue(objRPProfile, 0); // 将这个数组的唯一元素的只设置为 profile    Model objModel = objDoc.Models.AddFiniteRevolvedProtrusion(        NumberOfProfiles: objRPProfArray.Length,        ProfileArray: objRPProfArray,        ReferenceAxis: objRPRAxis,        ProfilePlaneSide: FeaturePropertyConstants.igRight,        AngleofRevolution: 2 * PI);    //显示草图轮廓线(一般设为隐藏)    objRPProfile.Visible = false;         ///@4拉伸除料(在底盘打四个小孔)    ///    ///设置参考线    Profile objProf = objDoc.ProfileSets.Add().Profiles.Add(objDoc.RefPlanes.Item(1));    //绘制轮廓线    objProf.Circles2d.AddByCenterRadius(0, 0.08, double.Parse(textBox14.Text) / 1000);    objProf.Circles2d.AddByCenterRadius(0, -0.08, double.Parse(textBox14.Text) / 1000);    objProf.Circles2d.AddByCenterRadius(0.08, 0, double.Parse(textBox14.Text) / 1000);    objProf.Circles2d.AddByCenterRadius(-0.08, 0, double.Parse(textBox14.Text) / 1000);     //检查轮廓线是否封闭    lngStatus = objProf.End(ProfileValidationType.igProfileClosed);    if (lngStatus != 0)    {        MessageBox.Show("objProf Profile not closed");    }    //使用拉伸除料防范,除料深度为textBox14.Text    objModel.ExtrudedCutouts.AddFinite(        Profile: objProf,        ProfileSide: FeaturePropertyConstants.igLeft,        ProfilePlaneSide: FeaturePropertyConstants.igRight,        Depth: double.Parse(textBox13.Text) / 1000);    //显示草图轮廓线(一般设为隐藏)    objProf.Visible = false;         ///@5拉伸填料(创建法兰凸台)    ///    ///创建平行参考面    RefPlane objRefPln1 = objDoc.RefPlanes.AddParallelByDistance(        ParentPlane: objDoc.RefPlanes.Item(1),        Distance: 0.02,        NormalSide: ReferenceElementConstants.igNormalSide);     //设置参考面    Profile objProf1 = objDoc.ProfileSets.Add().Profiles.Add(objRefPln1);    //绘制轮廓线圈    objProf1.Circles2d.AddByCenterRadius(0, 0, double.Parse(textBox15.Text) / 1000);     //检查轮廓线是否封闭    lngStatus = objProf1.End(ProfileValidationType.igProfileClosed);    if (lngStatus != 0)    {        MessageBox.Show("objProf1 Profile not closed");    }    objRPProfArray1.SetValue(objProf1, 0);     //创建拉伸特征。拉伸长度由textBox16.Text定义    Model objModel1 = objDoc.Models.AddFiniteExtrudedProtrusion(        NumberOfProfiles: objRPProfArray1.Length,        ProfileArray: objRPProfArray1,        ProfilePlaneSide: FeaturePropertyConstants.igRight,        ExtrusionDistance: double.Parse(textBox16.Text) / 1000);    //显示草图轮廓线    objRefPln1.Visible = false;         ///@6在凸台上做45°倒角    ///    ExtrudedProtrusion objExtProt = objModel1.ExtrudedProtrusions.Item(1);    //检查特性1的所有边赋给边的集合对象变量    Edges objEdges = (Edges)objExtProt.Edges[FeatureTopologyQueryTypeConstants.igQueryAll];    //将边存到数组    objEdgArr.SetValue(objEdges.Item(1), 0);    //检索特征1的所有面赋给集合对象变量    Faces objFacs = (Faces)objExtProt.Faces[FeatureTopologyQueryTypeConstants.igQueryAll];     //创建倒角    Chamfer objChmfr = objModel.Chamfers.AddSetbackAngle(        ReferenceFace: objFacs.Item(1),        NumberOfEdgeSets: objEdgArr.Length,        EdgeSetArray: objEdgArr,        SetbackDistance: 0.005,        Angle: 45 * PI / 180);         ///@7用旋转除料方式形成中心孔    ///    //设置参考面    Profile objProf11 = objDoc.ProfileSets.Add().Profiles.Add(objDoc.RefPlanes.Item(3));    //画轮廓线    objProf11.RectangularPatterns2d.Add(        OriginX: 0, OriginY: 0,        Width: 0.02, Height: 0.08,        Angle: 0, OffsetType: PatternOffsetTypeConstants.sePatternFillOffset,        XCount: 6, YCount: 4,        XSpace: 0.015, YSpace: 0.01);     //设置旋转轴    Line2d objCutoutLine = objProf11.Lines2d.AddBy2Points(0, -0.05, 0, 0.05);    RefAxis objcutoutRefAxis = (RefAxis)objProf11.SetAxisOfRevolution(objCutoutLine);     //使用旋转除料方法打孔    objModel1.RevolvedCutouts.AddFinite(        Profile: objProf11,        RefAxis: objcutoutRefAxis,        ProfileSide: FeaturePropertyConstants.igLeft,        ProfilePlaneSide: FeaturePropertyConstants.igRight,        AngleofRevolution: (2 * PI));    //隐藏草图轮廓线    objProf11.Visible = false; }
  • 结果展示:

image-20201116100937672

image-20201116101200418

19、生成实体特征-长方体槽

/** * 生成实体特征-长方体槽 */private void button22_Click(object sender, EventArgs e){    //@1 连接solidedge应用    // Register with OLE to handle concurrency issues on the current thread.    SolidEdgeCommunity.OleMessageFilter.Register();     //Connect to or start Solid Edge.这个方法里面的两个参数是开启功能:1、如果未启动就启动一个,2、如果启动了就显示,    objApp = SolidEdgeCommunity.SolidEdgeUtils.Connect(true, true);     //创建零件文档    PartDocument objDoc = objApp.Documents.AddPartDocument();        ///@声明对象    ///    / Create a new array of profile objects.    Array objEPProfArray = Array.CreateInstance(typeof(Profile), 1); //创建使用 从零开始的索引、具有指定tppe和长度 的一维数组 这里是创建 SolidEdgePart.Profile 类型的只有一个元素的一个一维数组    Array db1RadiusArray = new Double[2];     RefPlane xoy = objDoc.RefPlanes.Item(1);    RefPlane yoz = objDoc.RefPlanes.Item(2);    RefPlane xoz = objDoc.RefPlanes.Item(3);     int lngStatus = 0;         ///@3拉伸长方体    ///    //创建基本特征的轮廓线-矩形    Profile objEPProfile = objDoc.ProfileSets.Add().Profiles.Add(xoy);    objEPProfile.RectangularPatterns2d.Add(        OriginX: 0, OriginY: 0,        Width: double.Parse(Rect_Length.Text) / 1000, Height: double.Parse(Rect_Width.Text) / 1000,        Angle: 0, OffsetType: PatternOffsetTypeConstants.sePatternFillOffset,        XCount: 6, YCount: 4,        XSpace: 0.015, YSpace: 0.01);     //轮廓线校验    lngStatus = objEPProfile.End(ProfileValidationType.igProfileClosed);    if (lngStatus != 0)    {        MessageBox.Show("objEPProfile Profile for the base feature is self-intersecting");    }     //创建拉伸    objEPProfArray.SetValue(objEPProfile, 0);    Model objModel = objDoc.Models.AddFiniteExtrudedProtrusion(        NumberOfProfiles: objEPProfArray.Length,        ProfileArray: objEPProfArray,        ProfilePlaneSide: FeaturePropertyConstants.igRight,        ExtrusionDistance: double.Parse(Rect_Height.Text) / 1000);     objEPProfile.Visible = false;         ///@4拉伸除料,切出槽    ///    if (double.Parse(Rect_Length.Text) > double.Parse(Cut_Length.Text) &&        double.Parse(Rect_Width.Text) > double.Parse(Cut_Width.Text))    {        //建立参考面        RefPlane objRPParallel = objDoc.RefPlanes.AddParallelByDistance(            ParentPlane: xoy,            Distance: double.Parse(Rect_Height.Text) / 1000,            NormalSide: ReferenceElementConstants.igNormalSide);         //画槽的轮廓线        objEPProfile = objDoc.ProfileSets.Add().Profiles.Add(objRPParallel);        objEPProfile.RectangularPatterns2d.Add(            OriginX: 0.01, OriginY: 0.01,            Width: double.Parse(Cut_Length.Text) / 1000, Height: double.Parse(Cut_Width.Text) / 1000,            Angle: 0, OffsetType: PatternOffsetTypeConstants.sePatternFillOffset,            XCount: 6, YCount: 4,            XSpace: 0.015, YSpace: 0.01);         //创建槽的拉伸除料        ExtrudedCutout objExtCut = objModel.ExtrudedCutouts.AddFinite(            Profile: objEPProfile,            ProfileSide: FeaturePropertyConstants.igLeft,            ProfilePlaneSide: FeaturePropertyConstants.igLeft,            Depth: double.Parse(Cut_Height.Text) / 1000);    }    else    {        MessageBox.Show("槽的长度超出了实体长,请重新输入");    }    objEPProfile.Visible = false; }//获取槽深private void button23_Click(object sender, EventArgs e){    //获取当前活动文档    PartDocument partDocument = (PartDocument)objApp.ActiveDocument;    //拾取数据    ExtrudedCutout objcutout = partDocument.Models.Item(1).ExtrudedCutouts.Item(1);     if (objcutout.ExtentType == FeaturePropertyConstants.igFinite)    {        //数据显示        Old_Depth.Text = (objcutout.Depth * 1000).ToString();    } } /** * 修改槽深 */private void button24_Click(object sender, EventArgs e){    if (Chg_Depth.Text == "")    {        MessageBox.Show("必填项不能为空");    }    //获取当前活动文档    PartDocument partDocument = (PartDocument)objApp.ActiveDocument;    //修改数据    ExtrudedCutout objcutout = partDocument.Models.Item(1).ExtrudedCutouts.Item(1);     if (objcutout.ExtentType == FeaturePropertyConstants.igFinite)    {        objcutout.Depth = double.Parse(Chg_Depth.Text) / 1000;    }}
  • 结果展示:

image-20201116101242427



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空