用c#进行Solidworks二次开发的简单步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用c#进行Solidworks二次开发的简单步骤1.录制宏
2.在Solidworks里画一个圆柱,画完后点停止,并将录制结果保存为.csproj
3.点击编辑,打开刚才保存的结果(默认是用vs2005打开的)
4.在项目里添加窗体输入框等
5.修改、添加窗体代码(加粗的部分是必须的)
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using SolidWorks.Interop.sldworks;//需要添加的引用
using SolidWorks.Interop.swconst;//需要添加的引用
namespace Macro3.csproj
{
publicpartialclass Form1 : Form
{
SldWorks swApp = null;
ModelDoc2 swModel = null;
public Form1(SldWorks iswApp)//把SolidWorksMacro.cs下的swApp传递过来
{
InitializeComponent();
swApp = iswApp;
swModel = (ModelDoc2)swApp.ActiveDoc;
}
privatevoid Form1_Load(object sender, EventArgs e)
{
}
privatevoid button1_Click(object sender, EventArgs e)
{
long r=0,h=0;
if (swModel == null) swApp.SendMsgToUser("请新建一个零件!");
else
{
if (long.TryParse(textBox1.Text,out r) &&long.TryParse(textBox2.Text,out h))
CreatCylinder(r, h);
else MessageBox.Show("请输入有效的直径和高度!");
}
}
privatevoid CreatCylinder(double r, double h) //从main()函数下粘贴过来的代码,这里改写成一
个方法
{
bool boolstatus = false;
boolstatus = swModel.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, false, 0, null, 0);
swModel.SketchManager.InsertSketch(true);
SketchSegment skSegment = null;
skSegment = ((SketchSegment)(swModel.SketchManager.CreateCircle(0, 0, 0, r, 0, 0)));
boolstatus = swModel.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, false, 0, null, 0);
Feature myFeature = null;
myFeature = ((Feature)(swModel.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, h, h, false, false, false, false, 0,0, false, false, false, false, true, true, true, 0, 0, false)));
}
}
}
6.修改、添加main()函数代码
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System.Runtime.InteropServices;
using System;
namespace Macro3.csproj
{
publicpartialclass SolidWorksMacro
{
publicvoid Main()
{
Form1 myform = new Form1(swApp); //初始化窗体
myform.Show();
}
///
/// The SldWorks swApp variable is pre-assigned for you.
///
public SldWorks swApp;
}
}
7.编译后在Solidworks里点击播放宏,选择debug目录下的dll文件
最终效果: