更改草图支持而不移动几何体

时间:2016-12-02 13:18:44

标签: vba catia

我的问题

使用CATIA V5我需要更改草图的支持,而无需移动几何体(因为可以使用CATIA UI完成),并且我无法找到如何操作。

约束:否startcommandsendkeys

我的尝试

使用草图的方法SetAbsoluteAxisData()

Dim coords(8)
coords(0) = 0.0#
coords(1) = 0.0#
coords(2) = 100.0#
coords(3) = 1.0#
coords(4) = 0.0#
coords(5) = 0.0#
coords(6) = 0.0#
coords(7) = 0.0#
coords(8) = 1.0#
MySketch.SetAbsoluteAxisData(coords)

问题:草图的轴系统发生了严重变化,但几何体也被移动了。

录制宏

得到了这个结果:

Dim partDocument1 As PartDocument
partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
part1 = partDocument1.Part

Dim bodies1 As Bodies
bodies1 = part1.Bodies

Dim body1 As Body
body1 = bodies1.Item("Corps principal")

Dim sketches1 As Sketches
sketches1 = body1.Sketches

Dim sketch1 As Sketch
sketch1 = sketches1.Item("Esquisse.1")

Dim factory2D1 As Factory2D
factory2D1 = sketch1.OpenEdition()

Dim geometricElements1 As GeometricElements
geometricElements1 = sketch1.GeometricElements

Dim point2D1 As Point2D
point2D1 = geometricElements1.Item("Point.1")

point2D1.SetData(-19.758759, 60.20845)

Dim point2D2 As Point2D
point2D2 = geometricElements1.Item("Point.2")

point2D2.SetData(-53.244766, 60.20845)

Dim line2D1 As Line2D
line2D1 = geometricElements1.Item("Droite.1")

line2D1.SetData(-19.758759, 60.20845, -1.0#, 0.0#)

所以基本上它会手动修改每个几何特征。

问题:我无法预测草图内容

搜索Stackoverflow

发现此问题:How to change sketch support in CATIA using vba?

问题:它不包括“没有移动的几何体”约束。

1 个答案:

答案 0 :(得分:0)

很抱歉,但在VB API中没有选项。

该选项确实存在于CAA API中,所以我想如果您有CAA,那么如果您希望获得与交互式"更改草图中可能的行为等效的行为,则可以开发自己的VB API。支持"工具。

如果草图中只包含简单元素(例如,限制为点和线),则应该能够通过计算草图轴系统之间的变换以及应用该变换的反转来重新排列行为。草图几何体的所有坐标因此将所有几何体重新映射到新轴。这是您在录制的宏中看到的内容。但是,超越简单的几何类型当然会很复杂。