加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2017-07-25 09:56:42)
标签:

js脚本

dm建模

workbench参数化建模

分类: Workbench技术及二次开发

微信公众号: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.DirNormalagc.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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有