CATIA中关于“定位草图”的宏问题

来源:互联网 发布:日系泳衣 知乎 编辑:程序博客网 时间:2024/06/05 11:19

  当前“定位草图”还不能通过录制宏的办法获得定位草图的宏命令。
  
  【解决办法】一般来说,使用到“定位草图”时一般都与草图绝对轴的方向有关系。需要指定特定的“横向”和“纵向”。从现在的经验来看,貌视通过更改“arrayOfVariantOfDouble1(8)”数组中的第3-8项不太好使,譬如,在xz平面绘制草图,需要指定+H沿+X向,+V向沿+V向时(左手系),就无法通过更改arrayOfVariantOfDouble1数组完成(根据尝试的经验来看,好像CATIA的实际定位需要在全局xyz坐标系中满足右手法则。草图数组中坐标方向变量不管怎么修改,实际的H和V向还是要满足右手法则。)。

  下面的程序表明无法通过设定数组参数来达到目的。

Dim arrayOfVariantOfDouble1(8)arrayOfVariantOfDouble1(0) = 0.000000arrayOfVariantOfDouble1(1) = 0.000000arrayOfVariantOfDouble1(2) = 0.000000arrayOfVariantOfDouble1(3) = 1.000000arrayOfVariantOfDouble1(4) = 0.000000arrayOfVariantOfDouble1(5) = 0.000000arrayOfVariantOfDouble1(6) = 0.000000arrayOfVariantOfDouble1(7) = 0.000000arrayOfVariantOfDouble1(8) = 1.000000sketch1.SetAbsoluteAxisData arrayOfVariantOfDouble1part1.InWorkObject = sketch1

  该处的坐标向量实际已经表明了+H向沿+X向,+V向沿+Z向。但实际的运行结果如下图所示。


这里写图片描述

  可在草图定义的最后加上“InverseOrientation”来对H反向,即可完成如下图的方向定位(左手系)。

Dim arrayOfVariantOfDouble1(8)arrayOfVariantOfDouble1(0) = 0.000000arrayOfVariantOfDouble1(1) = 0.000000arrayOfVariantOfDouble1(2) = 0.000000arrayOfVariantOfDouble1(3) = 1.000000arrayOfVariantOfDouble1(4) = 0.000000arrayOfVariantOfDouble1(5) = 0.000000arrayOfVariantOfDouble1(6) = 0.000000arrayOfVariantOfDouble1(7) = 0.000000arrayOfVariantOfDouble1(8) = 1.000000sketch1.SetAbsoluteAxisData arrayOfVariantOfDouble1part1.InWorkObject = sketch1sketch1.InverseOrientation()


这里写图片描述

0 0