虽然这次课程是围绕钣金的需求,但很多原理在普通零件文档也是相通的。这次介绍如何通过iLogic访问API来创建和修改放样特征。
天圆地方是钣金中应用很广泛的模型,也是个典型的放样特征。实际中,我们可能会先定义一些模板,其中有草图来规定天地的轮廓,多个参数控制。当设计者拿到后,则可基于它来调用放样命令实现特征的创建。但这个过程中可能设计者临时又想改变创作意图,比如天圆地方变成天方地方。那他需要点开编辑窗口,重新选择轮廓。过程略微繁琐。
如果我们知道了特征创建的原理,则不难用代码完成一系列过程。只需提供给设计者一个简单界面即可。
1. 前篇我们知道,零件有一个对象叫做零件定义。钣金文档也是一种零件文档(PartDocument)。其定义叫做SheetMetalComponentDefinition,从PartComponentDefinition派生
2. 通过定义,可以访问到钣金特征。所有特征基于“定义”。即它们都有对应的定义对象。这种对象定义特征的一些特性参数。最终的特征对象,就是基于定义创建的。
3. 而特征的修改,则是取出对应的定义,修改定义的属性。
现在我们着手实现前面提到的需求。首先预备好一个钣金模板,其中有三个草图,分别有矩形,矩形,圆。参数它们的平面距离,各自有参数控制矩形或圆的形态。
然后写个iLogic规则,实现放样特征的创建。
' 获取当前钣金文档
Dim oSheetMetalDoc As PartDocument
oSheetMetalDoc = ThisApplication.ActiveDocument
' 获取文档定义对象
Dim oCompDef As SheetMetalComponentDefinition
oCompDef = oSheetMetalDoc.ComponentDefinition
' 获取钣金特征集合
Dim oSheetMetalFeatures As SheetMetalFeatures
oSheetMetalFeatures = oCompDef.Features
'获取地方草图
Dim oSketch_Ground As PlanarSketch
oSketch_Ground = oCompDef.Sketches("地方草图")
'创建地方草图对应的轮廓路径
Dim oPath_Ground As Path
oPath_Ground = oSheetMetalFeatures.CreatePath(oSketch_Ground.SketchLines(1))
'天草图
Dim oSketch_Sky As PlanarSketch
'天路径
Dim oPath_Sky As Path
If 天地类型 = "天圆地方" Then
'获取天方草图
oSketch_Sky = oCompDef.Sketches("天圆草图")
'创建天圆草图对应的轮廓路径
oPath_Sky = oSheetMetalFeatures.CreatePath(oSketch_Sky.SketchCircles(1))
Else
'获取天方草图
oSketch_Sky = oCompDef.Sketches("天方草图")
'创建天方草图对应的轮廓路径
oPath_Sky = oSheetMetalFeatures.CreatePath(oSketch_Sky.SketchLines(1))
End If
Dim oLoftedFlangeDefinition As LoftedFlangeDefinition
oLoftedFlangeDefinition = oSheetMetalFeatures.LoftedFlangeFeatures.CreateLoftedFlangeDefinition(oPath_Ground, oPath_Sky)
' 创建放样特征
Dim oLoftedFlangeFeature As LoftedFlangeFeature
oLoftedFlangeFeature = oSheetMetalFeatures.LoftedFlangeFeatures.Add(oLoftedFlangeDefinition)
接着,创建一个iLogic表单,把所有和放样特征相关的参数列出来,包括天地类型。最后将创建放样特征规则作为执行操作。这样,最终设计者只需要配置这些参数,执行即可。若不满意,或想改变天地类型,只需先Undo(撤销),配置新的参数,再执行一遍即可。