C# Solidworks二次开发:宏录制实战讲解(第二讲)

大家好,继续介绍我们的宏录制的例子讲解。

其实我们讲的是一个过程,大家只要理解这种方式就可以。

今天要介绍的第一例子为:

(1)如何创建一个轴线。

public void Main()

{

ModelDoc2 swDoc = null;

PartDoc swPart = null;

DrawingDoc swDrawing = null;

AssemblyDoc swAssembly = null;

bool boolstatus = false;

int longstatus = 0;

int longwarnings = 0;

swDoc = ((ModelDoc2)(swApp.ActiveDoc));

ModelView myModelView = null;

myModelView = ((ModelView)(swDoc.ActiveView));

myModelView.FrameState = ((int)(swWindowState_e.swWindowMaximized));

boolstatus = swDoc.Extension.SelectByRay(-0.012171036184511763, 0.035189282202352956, 0.0015284186583244264, -0.12907585697606233, 0.19912846068487891, -0.97143567944108677, 0.00015336652569445758, 2, false, 0, 0);

boolstatus = swDoc.InsertAxis2(true);

return;

}

这个例子也是比较简单,我们需要关注的API为InsertAxis2(true),下面是官方的解释:

然后下面是官方使用的例子:

This example shows how to create revolve features.

//----------------------------------------------------------------------------

// Preconditions:

// 1. Open a new part document.

// 2. Rename the namespace to match your C# project.

//

// Postconditions: Two revolve features and one cut-revolve feature are created.

//----------------------------------------------------------------------------

using SolidWorks.Interop.sldworks;

using SolidWorks.Interop.swconst;

using System;

namespace FeatureRevolves_CSharp.csproj

{

partial class SolidWorksMacro

{

ModelDoc2 swModel;

ModelDocExtension swModelDocExt;

FeatureManager swFeatMgr;

SelectionMgr swSelMgr;

bool boolstatus;

public void Main()

{

swModel = (ModelDoc2)swApp.ActiveDoc ;

swModelDocExt = swModel.Extension ;

swSelMgr = (SelectionMgr)swModel.SelectionManager ;

// Create an axis

boolstatus = swModelDocExt.SelectByID2 ("Right Plane", "PLANE", 0, 0, 0, true, 0, null, (int)swSelectOption_e.swSelectOptionDefault);

boolstatus = swModelDocExt.SelectByID2 ("Top Plane", "PLANE", 0, 0, 0, true, 0, null, (int)swSelectOption_e.swSelectOptionDefault);

swModel.InsertAxis2 (true);

// Create a rectangle

boolstatus = swModelDocExt.SelectByID2 ("Top Plane", "PLANE", -0.08954836342753, 0.0004336873289503, 0.006720765739942, false, 0, null, (int)swSelectOption_e.swSelectOptionDefault);

swModel.InsertSketch2 (true);

swModel.ClearSelection2 (true);

swModel.SketchRectangle (-0.05668466821757, -0.02198379306525, 0, -0.01330857427717, 0.03972855876814, 0, true);

// Create the first revolve feature

swModel.InsertSketch2 (true);

swModel.ShowNamedView2 ("*Trimetric", 8);

boolstatus = swModelDocExt.SelectByID2 ("Sketch1", "SKETCH", 0, 0, 0, false, 0, null, (int)swSelectOption_e.swSelectOptionDefault);

boolstatus = swModelDocExt.SelectByID2 ("Axis1", "AXIS", 0, 0, 0, true, 16, null, (int)swSelectOption_e.swSelectOptionDefault);

swFeatMgr = swModel.FeatureManager ;

swFeatMgr.FeatureRevolve2 (true, true, false, false, false, false, 0, 0, 6.28318530718, 0, false,

false, 0.01, 0.01, 0, 0, 0, true, true, true);

// Create a cut-revolve feature using a face on the revolve feature

swSelMgr.EnableContourSelection = false;

boolstatus = swModelDocExt.SelectByID2 ("", "FACE", -0.03095803920934, 0.01509536510872, 0.02198379306526, false, 0, null, (int)swSelectOption_e.swSelectOptionDefault);

swModel.InsertSketch2 (true);

swModel.ClearSelection2 (true);

swModel.SketchRectangle (-0.04194874421597, 0.01774859621099, 0, -0.01883036471929, -0.01265654504095, 0, true);

swModel.InsertSketch2 (true);

boolstatus = swModelDocExt.SelectByID2 ("Sketch2", "SKETCH", 0, 0, 0, false, 0, null, (int)swSelectOption_e.swSelectOptionDefault);

boolstatus = swModelDocExt.SelectByID2 ("Line4@Sketch2", "EXTSKETCHSEGMENT", -0.01883036471929, 0.003802500010693, 0, true, 4, null, (int)swSelectOption_e.swSelectOptionDefault);

swFeatMgr.FeatureRevolveCut (6.26573201466, false, 0, 0, 0, true, true);

// Create the second revolve feature using a face on the first revolve feature

swSelMgr.EnableContourSelection = false;

boolstatus = swModelDocExt.SelectByID2 ("", "FACE", -0.02333512246603, 0.03472018719853, 0.0219837930652, false, 0, null, (int)swSelectOption_e.swSelectOptionDefault);

swModel.InsertSketch2 (true);

swModel.ClearSelection2 (true);

swModel.CreateCircle2 (-0.02232361399104, 0.03354683337932, 0, -0.01445073476016, 0.02795861773112, 0);

swModel.InsertSketch2 (true);

boolstatus = swModelDocExt.SelectByID2 ("Sketch3", "SKETCH", 0, 0, 0, false, 0, null, (int)swSelectOption_e.swSelectOptionDefault);

boolstatus = swModelDocExt.SelectByRay (-1.81956067901865E-02, 1.80455411334037E-02, 2.17820530671702E-02, -0.400036026779312, -0.515038074910024, -0.758094294050284, 9.91972972972973E-04, 1, False, 4, 0);

swFeatMgr.FeatureRevolve2 (true, true, false, false, false, false, 0, 0, 6.28318530718, 0, false,

false, 0.01, 0.01, 0, 0, 0, true, true, true);

swSelMgr.EnableContourSelection = false;

}

public SldWorks swApp;

}

}

(2)第二个例子为显示选中组件。

public void Main()

{

ModelDoc2 swDoc = null;

PartDoc swPart = null;

DrawingDoc swDrawing = null;

AssemblyDoc swAssembly = null;

bool boolstatus = false;

int longstatus = 0;

int longwarnings = 0;

swDoc = ((ModelDoc2)(swApp.ActiveDoc));

boolstatus = swDoc.Extension.SelectByID2("gas box assembly.stp-1@52170019 GBX15WYS01 C.1 2023-08-13/box assembly.stp-1@gas " +

"box assembly.stp/door assembly.stp-1@box assembly.stp/R0502-0136_--6@door assemb" +

"ly.stp", "COMPONENT", 0, 0, 0, false, 0, null, 0);

swDoc.ShowComponent2();

return;

}

这个例子中需要关注的API是ShowComponent2(),下面是官方的解释:

今天要介绍的就是这么多,我们下篇文章再见。

相关推荐
玩电脑的辣条哥2 小时前
Python如何播放本地音乐并在web页面播放
开发语言·前端·python
ll7788114 小时前
LeetCode每日精进:20.有效的括号
c语言·开发语言·算法·leetcode·职场和发展
Jackson@ML6 小时前
Python数据可视化简介
开发语言·python·数据可视化
赵琳琅6 小时前
Java语言的云计算
开发语言·后端·golang
lly2024066 小时前
jQuery 杂项方法
开发语言
赵琳琅6 小时前
MDX语言的安全开发
开发语言·后端·golang
开开又心心的学嵌入式7 小时前
C语言——指针进阶应用
c语言·开发语言
开开又心心的学嵌入式7 小时前
C语言——指针基础知识
c语言·开发语言
lonelyhiker7 小时前
javascript的原型链
开发语言·javascript·原型模式
夏梓蕙8 小时前
Elixir语言的软件开发工具
开发语言·后端·golang