ansys Workbench利用JavaScript腳本文件建模
2016-10-22 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
Workbench利用Jscript建模
Workbench在DesignModel中建模的腳本語言是Jscript,筆者印象當中所有軟件的腳本語言都能夠自己生成,ANSYS的Log文件,Abaqus的rpy文件,包括Office的VBA文件等。同樣的DesignModel中的建模操作也可以寫成腳本文件,其后綴是js,Jscript其實就是Java Script,只是略有區(qū)別。
在DM中建模后,寫Js文件的方式如圖1,寫當前活動坐標內的建模腳本文件,當寫完之后生成一個后綴.js的文件,通過Run Script即可以再次運行此文件。
圖1
此次大致對Js腳本文件建模命令大致說一下,在DM中建立的模型如圖2,形狀較為復雜,幾乎所有常用的操作都能在這個模型上體現(xiàn)。
圖2
Jscript每建立一次草圖,都是通過一個function完成的,具體內容包括坐標系的定義,草圖名稱定義,草圖的點和線的建立,尺寸約束施加,最后返回函數(shù)值。
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的函數(shù),后面的所有內容都在花括號里面,屬于函數(shù)定義的內容。
第2~6行是坐標系等的定義,后面兩行則是新建一個草圖命名為sketch1.
第一個with()函數(shù)用來建立一個點,其中with函數(shù)的意義是限定作用區(qū)域,表示with函數(shù)里面的內容是作用于p.SK1的,這對程序的精簡化有很大好處。
第二個with()函數(shù)用于限制建立的點,在Workbench里面建立的模型,通過尺寸約束來設置模型的尺寸,CoincidentCon表示兩個元素相同,即建立的點坐標和原點坐標一致。
倒數(shù)第二行用于對建立的幾何元素全部evalute一遍
最后一行函數(shù)返回值。
同樣的,可以建立一個矩形草圖。
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函數(shù)建立四條邊,后面的四個數(shù)是首位兩端點的坐標。
第二個with函數(shù)是用HorizontalCon和HorizontalCon函數(shù)限制線的垂直和水平,后面的命令是限制線的尺寸。草圖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
這些函數(shù)的使用在幫助文檔寫的非常詳細,使用起來也很方便。
相關標簽搜索:ansys Workbench利用JavaScript腳本文件建模 Ansys有限元培訓 Ansys workbench培訓 ansys視頻教程 ansys workbench教程 ansys APDL經(jīng)典教程 ansys資料下載 ansys技術咨詢 ansys基礎知識 ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓