5.1 零件文档的核心结构
零件文档(PartDocument)的核心数据存储在ComponentDefinition属性中,其结构包括:
- Sketches:草图集合,是建模的基础;
- Features:特征集合,如拉伸、旋转、孔、倒角等;
- WorkGeometries:工作几何集合,如工作平面、工作轴、工作点;
- Parameters:参数集合,控制模型的尺寸和行为。
5.2 草图的创建与编辑
草图是三维建模的起点,通过 API 可实现草图的自动化创建和编辑。
5.2.1 创建草图
PartDocument partDoc = (PartDocument)_inventorApp.ActiveDocument;
PartComponentDefinition partDef = partDoc.ComponentDefinition;
// 获取默认的XY工作平面
WorkPlane xyPlane = partDef.WorkPlanes[3]; // Inventor中XY平面的索引为3(XZ=1,YZ=2,XY=3)
// 创建草图
PlanarSketch sketch = partDef.Sketches.Add(xyPlane);
sketch.Name = "基础草图";
5.2.2 绘制草图实体
草图实体包括直线、圆、矩形、圆弧等,通过SketchEntities集合的AddXXX()方法创建:
(1)绘制直线
// 创建两个点
Point p1 = _inventorApp.TransientGeometry.CreatePoint(0, 0, 0);
Point p2 = _inventorApp.TransientGeometry.CreatePoint(100, 0, 0);
Point p3 = _inventorApp.TransientGeometry.CreatePoint(100, 50, 0);
Point p4 = _inventorApp.TransientGeometry.CreatePoint(0, 50, 0);
// 绘制直线
SketchLine line1 = sketch.SketchLines.AddByTwoPoints(p1, p2);
SketchLine line2 = sketch.SketchLines.AddByTwoPoints(p2, p3);
SketchLine line3 = sketch.SketchLines.AddByTwoPoints(p3, p4);
SketchLine line4 = sketch.SketchLines.AddByTwoPoints(p4, p1);
(2)绘制圆
// 绘制圆(圆心+半径)
Point center = _inventorApp.TransientGeometry.CreatePoint(50, 25, 0);
SketchCircle circle = sketch.SketchCircles.AddByCenterRadius(center, 20);
(3)绘制矩形
// 绘制矩形(两个对角点)
Point rectP1 = _inventorApp.TransientGeometry.CreatePoint(120, 0, 0);
Point rectP2 = _inventorApp.TransientGeometry.CreatePoint(200, 60, 0);
SketchRectangle rect = sketch.SketchRectangles.AddByTwoPoints(rectP1, rectP2);
5.2.3 草图约束的添加
草图约束包括尺寸约束和几何约束,是保证草图参数化的关键:
(1)添加尺寸约束
// 给直线添加长度约束
SketchDimension dim1 = sketch.SketchDimensions.AddDistanceDimension(
line1.StartPoint, // 起点
line1.EndPoint, // 终点
DimensionOrientationEnum.kHorizontalDimension, // 方向
_inventorApp.TransientGeometry.CreatePoint(50, -10, 0) // 尺寸位置
);
// 设置尺寸值
dim1.Value = 100;
// 给圆添加直径约束
SketchDimension dim2 = sketch.SketchDimensions.AddDiameterDimension(
circle, // 圆对象
_inventorApp.TransientGeometry.CreatePoint(70, 25, 0) // 尺寸位置
);
dim2.Value = 40;
(2)添加几何约束
// 添加重合约束(点与点重合)
sketch.GeometricConstraints.AddCoincident(p4, line1.StartPoint);
// 添加平行约束(直线与直线平行)
sketch.GeometricConstraints.AddParallel(line1, line3);
// 添加垂直约束(直线与直线垂直)
sketch.GeometricConstraints.AddPerpendicular(line1, line2);
5.2.4 草图的拉伸与封闭
// 检查草图是否封闭
bool isClosed = sketch.Profiles[1].Closed;
if (isClosed)
{
_inventorApp.UserInterfaceManager.MessageBox.Show("草图已封闭,可以进行拉伸!");
}
// 压缩/解除压缩草图
sketch.Visible = false; // 隐藏草图
sketch.Active = true; // 激活草图
5.3 零件特征的创建
零件特征是三维模型的核心,通过Features集合的各类特征子集合可创建拉伸、旋转、孔等特征。
5.3.1 拉伸特征(Extrusion)
拉伸是最常用的特征,通过封闭的草图轮廓创建三维实体:
// 获取草图的封闭轮廓
Profile profile = sketch.Profiles[1];
// 创建拉伸特征
ExtrusionFeature extrusion = partDef.Features.ExtrusionFeatures.Add(
profile, // 轮廓
30, // 拉伸距离
PartFeatureOperationEnum.kJoinOperation, // 操作类型(合并)
false, // 是否对称拉伸
false, // 是否拔模
0, // 拔模角度
false, // 是否终止到面
false // 是否终止到实体
);
extrusion.Name = "基础拉伸";
拉伸的高级用法:对称拉伸、拔模拉伸
// 对称拉伸(总长度60,两侧各30)
ExtrusionFeature symExtrusion = partDef.Features.ExtrusionFeatures.Add(
profile,
30,
PartFeatureOperationEnum.kJoinOperation,
true, // 对称拉伸
true, // 拔模
Math.PI / 18 * 5, // 拔模角度5度
false,
false
);
5.3.2 旋转特征(Revolution)
旋转特征通过草图轮廓绕轴旋转创建实体:
// 创建旋转草图(需绘制旋转轴和轮廓)
PlanarSketch revSketch = partDef.Sketches.Add(xyPlane);
// 绘制旋转轴(构造线)
SketchLine axisLine = revSketch.SketchLines.AddByTwoPoints(
_inventorApp.TransientGeometry.CreatePoint(0, 0, 0),
_inventorApp.TransientGeometry.CreatePoint(0, 100, 0)
);
axisLine.Construction = true; // 设置为构造线
// 绘制旋转轮廓
Point rp1 = _inventorApp.TransientGeometry.CreatePoint(10, 0, 0);
Point rp2 = _inventorApp.TransientGeometry.CreatePoint(30, 0, 0);
Point rp3 = _inventorApp.TransientGeometry.CreatePoint(30, 50, 0);
Point rp4 = _inventorApp.TransientGeometry.CreatePoint(10, 50, 0);
revSketch.SketchLines.AddByTwoPoints(rp1, rp2);
revSketch.SketchLines.AddByTwoPoints(rp2, rp3);
revSketch.SketchLines.AddByTwoPoints(rp3, rp4);
revSketch.SketchLines.AddByTwoPoints(rp4, rp1);
// 创建旋转特征
RevolutionFeature revolution = partDef.Features.RevolutionFeatures.Add(
revSketch.Profiles[1], // 轮廓
axisLine, // 旋转轴
Math.PI * 2, // 旋转角度(360度)
PartFeatureOperationEnum.kJoinOperation // 操作类型
);
5.3.3 孔特征(Hole)
孔特征可通过 API 创建简单孔、沉头孔、埋头孔等:
// 获取要打孔的面(假设为拉伸特征的顶面)
Face face = extrusion.Faces[1];
// 创建孔的中心点
Point holeCenter = _inventorApp.TransientGeometry.CreatePoint(50, 25, 30);
// 创建简单孔
HoleFeature hole = partDef.Features.HoleFeatures.AddSimpleHole(
face, // 打孔面
holeCenter, // 中心点
10, // 直径
PartFeatureOperationEnum.kCutOperation, // 操作类型(切割)
30, // 深度
false, // 是否贯通
false, // 是否沉头
0, // 沉头直径
0, // 沉头深度
false, // 是否埋头
0, // 埋头角度
0 // 埋头深度
);
5.3.4 倒角与圆角特征
// 倒角特征(选择边,设置距离)
Edge edge = extrusion.Edges[1];
ChamferFeature chamfer = partDef.Features.ChamferFeatures.Add(
edge, // 要倒角的边
5, // 距离
PartFeatureOperationEnum.kCutOperation
);
// 圆角特征(选择边,设置半径)
FilletFeature fillet = partDef.Features.FilletFeatures.Add(
edge, // 要圆角的边
3, // 半径
PartFeatureOperationEnum.kJoinOperation
);
2万+

被折叠的 条评论
为什么被折叠?



