ansys Workbench利用JavaScript脚本文件建模
2016-10-22 by:CAE仿真在线 来源:互联网
Workbench利用Jscript建模
Workbench在DesignModel中建模的脚本语言是Jscript,笔者印象当中所有软件的脚本语言都能够自己生成,ANSYS的Log文件,Abaqus的rpy文件,包括Office的VBA文件等。同样的DesignModel中的建模操作也可以写成脚本文件,其后缀是js,Jscript其实就是Java Script,只是略有区别。
在DM中建模后,写Js文件的方式如图1,写当前活动坐标内的建模脚本文件,当写完之后生成一个后缀.js的文件,通过Run Script即可以再次运行此文件。
图1
此次大致对Js脚本文件建模命令大致说一下,在DM中建立的模型如图2,形状较为复杂,几乎所有常用的操作都能在这个模型上体现。
图2
Jscript每建立一次草图,都是通过一个function完成的,具体内容包括坐标系的定义,草图名称定义,草图的点和线的建立,尺寸约束施加,最后返回函数值。
function plane1SketchesOnly (p)
{
p.Plane =agb.GetActivePlane();
p.Origin = p.Plane.GetOrigin();
p.XAxis =p.Plane.GetXAxis();
p.YAxis =p.Plane.GetYAxis();
p.Sk1 = p.Plane.newSketch();
p.Sk1.Name = "Sketch1";
with (p.Sk1)
{
p.Pt31 =ConstructionPoint(0, 0);
}
with (p.Plane)
{
CoincidentCon(p.Pt31, 0, 0, p.Origin, 0, 0);
}
p.Plane.EvalDimCons();
return p;
第一行定义建立草图1的函数,后面的所有内容都在花括号里面,属于函数定义的内容。
第2~6行是坐标系等的定义,后面两行则是新建一个草图命名为sketch1.
第一个with()函数用来建立一个点,其中with函数的意义是限定作用区域,表示with函数里面的内容是作用于p.SK1的,这对程序的精简化有很大好处。
第二个with()函数用于限制建立的点,在Workbench里面建立的模型,通过尺寸约束来设置模型的尺寸,CoincidentCon表示两个元素相同,即建立的点坐标和原点坐标一致。
倒数第二行用于对建立的几何元素全部evalute一遍
最后一行函数返回值。
同样的,可以建立一个矩形草图。
function plane2SketchesOnly (p)
{
//Plane
p.Plane =agb.GetActivePlane();
p.Origin = p.Plane.GetOrigin();
p.XAxis =p.Plane.GetXAxis();
p.YAxis =p.Plane.GetYAxis();
p.Sk2 = p.Plane.newSketch();
p.Sk2.Name = "Sketch2";
with (p.Sk2)
{
p.Ln13 =Line(-10, -10, 10, -10);
p.Ln14 =Line(10, -10, 10, 10);
p.Ln15 =Line(10, 10, -10, 10);
p.Ln16 =Line(-10, 10, -10, -10);
}
with (p.Plane)
{
//Constraints
HorizontalCon(p.Ln13);
HorizontalCon(p.Ln15);
VerticalCon(p.Ln14);
VerticalCon(p.Ln16);
CoincidentCon(p.Ln13.End, 10, -10,
p.Ln14.Base, 10, -10);
CoincidentCon(p.Ln14.End, 10, 10,
p.Ln15.Base, 10, 10);
CoincidentCon(p.Ln15.End, -10, 10,
p.Ln16.Base, -10, 10);
CoincidentCon(p.Ln16.End, -10, -10,
p.Ln13.Base, -10, -10);
}
p.Plane.EvalDimCons(); //Final evaluate of alldimensions and constraints in plane
return p;
此段的第一个with函数建立四条边,后面的四个数是首位两端点的坐标。
第二个with函数是用HorizontalCon和HorizontalCon函数限制线的垂直和水平,后面的命令是限制线的尺寸。草图2形状如图3箭头处。
图3
同样,以及建立个草图,用于拉伸、旋转等操作。
var XYPlane = agb.GetXYPlane();
agb.SetActivePlane (XYPlane);
var ps1 = plane1SketchesOnly (new Object());
var plane2 = agb.PlaneFromPlane(XYPlane);
plane2.AddTransform(agc.XformZOffset,20);
agb.regen();
agb.SetActivePlane (plane2);
var ps2 = plane2SketchesOnly (new Object());
var plane3 = agb.PlaneFromPlane(plane2);
plane3.AddTransform(agc.XformZOffset, 20);
agb.regen();
agb.SetActivePlane (plane3);
var ps3 = plane3SketchesOnly (new Object());
var plane4 = agb.PlaneFromPlane(plane3);
plane4.AddTransform(agc.XformZOffset, 20);
agb.regen();
agb.SetActivePlane (plane4);
var ps4 = plane4SketchesOnly (new Object());
var YZPlane = agb.GetYZPlane();
agb.SetActivePlane (YZPlane );
var ps5 = planeYZSketchesOnly (new Object());
//Now, create Skin
var Skin1 = agb.Skin(agc.Add, agc.No, 0.0, 0.0);
Skin1.Name = "Point2OvalSkin"
Skin1.AddBaseObject(ps1.Sk1);
Skin1.AddBaseObject(ps2.Sk2);
Skin1.AddBaseObject(ps3.Sk3);
Skin1.AddBaseObject(ps4.Sk4);
agb.Regen(); //To insure model validity
//Next create aSweep
var Sweep1 = agb.Sweep(agc.Add, ps4.Sk4, ps5.Sk6, agc.AlignTangent,
0.25, 0.0, agc.No, 0.0, 0.0);
agb.Regen(); //To insure model validity
//Next create aRevolve
var Rev1 = agb.Revolve(agc.Add,ps5.Sk7, ps5.YAxis, agc.DirNormal,
360.0, 0.0, agc.Yes, 1.0, 1.0);
agb.Regen(); //To insure model validity
//Finally cut ahole using Extrude
var Extrude1 = agb.Extrude(agc.Cut, ps5.Sk5, agc.DirSymmetric,
agc.ExtentThruAll, 0.0, agc.ExtentFixed, 0.0,agc.No, 0.0, 0.0);
agb.Regen(); //To insure model validity
这些函数的使用在帮助文档写的非常详细,使用起来也很方便。
相关标签搜索:ansys Workbench利用JavaScript脚本文件建模 Ansys有限元培训 Ansys workbench培训 ansys视频教程 ansys workbench教程 ansys APDL经典教程 ansys资料下载 ansys技术咨询 ansys基础知识 ansys代做 Fluent、CFX流体分析 HFSS电磁分析 Abaqus培训