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ù)的使用在幫助文檔寫的非常詳細,使用起來也很方便。

 



開放分享:優(yōu)質有限元技術文章,助你自學成才

相關標簽搜索:ansys Workbench利用JavaScript腳本文件建模 Ansys有限元培訓 Ansys workbench培訓 ansys視頻教程 ansys workbench教程 ansys APDL經(jīng)典教程 ansys資料下載 ansys技術咨詢 ansys基礎知識 ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com