Workbench利用Js脚本建模之-旋转
2017-07-25 09:56阅读:
微信公众号:CAE技术分享
ANSYS
Workbench的DM模块脚本语言是的创建过程,但是在草图的基础上创建三维图形则还需要自己添加一些Js脚本命令,此次介绍旋转操作的Js脚本命令。
Js脚本的旋转命令形式如下:
Revolve(Operation, BaseObject, Axis, Direction, Angle,
Angle2, Walled, Thin1, Thin2)
其中:Operation也即是Material
Type,有agc.Add、agc.Cut、agc.Slice、agc.Imprint、agc.Frozen这几个选择;
BaseObject:已经存在的基础对象,可以是sketch、plane
outline、或者named
selection;
Axis:对称轴,可以是坐标轴,也可以是line;
Direction:旋转方向,有agc.Di
rNormal
、agc.DirReversed、agc.DirSymmetric、agc.DirAsymmetric这四个选择;
Angle:旋转角度;
Angle2:只有在Direction为agc.DirAsymmetric才会用到,否则值为0即可;
Walled:是否转换为solid或者surface,有agc.Yes、agc.No两个选择;
Thin1:Thickness inside
profile;
Thin2:Thickness 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中运行上面的脚本,得到如下模型:
图1
查看Tree
line和旋转操作属性框,如下所示,可以更直接地了解Revolve函数设置的意义。
图2