新浪博客

Workbench利用Js脚本建模之-旋转

2017-07-25 09:56阅读:
微信公众号:CAE技术分享
ANSYS WorkbenchDM模块脚本语言是的创建过程,但是在草图的基础上创建三维图形则还需要自己添加一些Js脚本命令,此次介绍旋转操作的Js脚本命令。
Js脚本的旋转命令形式如下:
Revolve(Operation, BaseObject, Axis, Direction, Angle, Angle2, Walled, Thin1, Thin2)
其中:Operation也即是Material Type,有agc.Addagc.Cutagc.Sliceagc.Imprintagc.Frozen这几个选择;
BaseObject:已经存在的基础对象,可以是sketchplane outline、或者named selection
Axis:对称轴,可以是坐标轴,也可以是line
Direction:旋转方向,有agc.Di
rNormalagc.DirReversedagc.DirSymmetricagc.DirAsymmetric这四个选择;
Angle:旋转角度;
Angle2:只有在Directionagc.DirAsymmetric才会用到,否则值为0即可;
Walled:是否转换为solid或者surface,有agc.Yesagc.No两个选择;
Thin1Thickness inside profile
Thin2Thickness outside profile
Revolve相关的还有两个函数:
PutBaseObject (BaseObject):人为设置/修改选择的基础对象;
PutAxis (Axis):人为设置/修改旋转轴。

下面是一个实际的例子,建立一个矩形的草图,然后将草图沿着Y轴选择180度。
function planeSketchesOnly (p)
{

//Plane
p.Plane = agb.GetActivePlane();
p.Origin = p.Plane.GetOrigin();
p.XAxis = p.Plane.GetXAxis();
p.YAxis = p.Plane.GetYAxis();

//Sketch,新建草图,名称为“Sketch1
p.Sk1 = p.Plane.NewSketch();
p.Sk1.Name = 'Sketch1';

//Edges,在草图Sk1上建立四条线,线的两端为xy坐标值。
with (p.Sk1)
{
p.Ln8 = Line(0.50000000, 0.00000000, 0.52000000, 0.00000000);
p.Ln9 = Line(0.52000000, 0.00000000, 0.52000000, -1.00000000);
p.Ln10 = Line(0.52000000, -1.00000000, 0.50000000, -1.00000000);
p.Ln12 = Line(0.50000000, 0.00000000, 0.50000000, -1.00000000);
}

//Dimensions and/or constraints,尺寸约束,几个尺寸分别表示尺寸约束的两端点位置和约束代号(例如H1)的位置
with (p.Plane)
{
//Dimensions
var dim;
dim = HorizontalDim(p.Ln8.End, 0.52000000, 0.00000000,
p.Origin, 0.00000000, 0.00000000,
0.17309513, 0.08524206);
if(dim) dim.Name = 'H1';
dim = HorizontalDim(p.Ln8.Base, 0.50000000, 0.00000000,
p.Origin, 0.00000000, 0.00000000,
0.21784972, 0.04405282);
if(dim) dim.Name = 'H3';
dim = HorizontalDim(p.Ln10.End, 0.50000000, -1.00000000,
p.Origin, 0.00000000, 0.00000000,
0.18917694, -1.09429710);
if(dim) dim.Name = 'H5';
dim = VerticalDim(p.Ln9.End, 0.52000000, -1.00000000,
p.Origin, 0.00000000, 0.00000000,
0.68257161, -0.32089647);
if(dim) dim.Name = 'V4';

//Constraints
HorizontalCon(p.Ln8);
HorizontalCon(p.Ln10);
VerticalCon(p.Ln9);
CoincidentCon(p.Ln8.End, 0.52000000, 0.00000000,
p.XAxis, 0.54446962, 0.00000000);
CoincidentCon(p.Ln9.Base, 0.52000000, 0.00000000,
p.Ln8.End, 0.52000000, 0.00000000);
CoincidentCon(p.Ln10.Base, 0.52000000, -1.00000000,
p.Ln9.End, 0.52000000, -1.00000000);
CoincidentCon(p.Ln12.Base, 0.50000000, 0.00000000,
p.Ln8.Base, 0.50000000, 0.00000000);
CoincidentCon(p.Ln12.End, 0.50000000, -1.00000000,
p.Ln10.End, 0.50000000, -1.00000000);
}

p.Plane.EvalDimCons(); //Final evaluate of all dimensions and constraints in plane

return p;
} //End Plane JScript function: planeSketchesOnly

//Call Plane JScript function,调用函数建立草图对象
var ps1 = planeSketchesOnly (new Object());
//进行旋转操作,以Add的形式,基础对象是草图1,旋转轴是Y轴,想反方向,旋转180
var rev1=agb.Revolve(agc.Add,ps1.Sk1,ps1.YAxis,agc.DirReversed,180.0, 0.0, agc.No, 0.0, 0.0)

//Finish
agb.Regen(); //To insure model validity
//End DM JScript
DM中运行上面的脚本,得到如下模型:

Workbench利用Js脚本建模之-旋转

1
查看Tree line和旋转操作属性框,如下所示,可以更直接地了解Revolve函数设置的意义。
Workbench利用Js脚本建模之-旋转
2

我的更多文章

下载客户端阅读体验更佳

APP专享