在不移动几何图形的情况下更改草图支持
Change sketch support without moving geometry
我的问题
使用 CATIA V5 我需要在不移动几何体的情况下更改草图的支持(因为它可以通过 CATIA UI 完成)并且我找不到如何做。
约束:无 startcommand
和 sendkeys
我的尝试
使用sketch的方法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#)
所以基本上它会手动修改每个几何特征。
问题:无法预测素描内容
正在搜索 Whosebug
发现这个问题:How to change sketch support in CATIA using vba?
问题:它不包括 "without moving geometry" 约束。
抱歉,VB API 中没有选项。
CAA API 中确实存在该选项,所以我想如果您有 CAA,如果您想获得行为,则可以开发自己的 VB API等同于交互式 "Change Sketch Support" 工具中的功能。
如果您的草图中只有简单的元素,例如仅限于点和线,您应该能够通过计算您在草图轴系统之间进行的变换并应用该变换的逆来重现行为转换为草图几何图形的所有坐标,从而将所有几何图形重新映射到新轴。这就是您在录制的宏中看到的。但是超越简单的几何类型当然会很复杂。
我的问题
使用 CATIA V5 我需要在不移动几何体的情况下更改草图的支持(因为它可以通过 CATIA UI 完成)并且我找不到如何做。
约束:无 startcommand
和 sendkeys
我的尝试
使用sketch的方法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#)
所以基本上它会手动修改每个几何特征。
问题:无法预测素描内容
正在搜索 Whosebug
发现这个问题:How to change sketch support in CATIA using vba?
问题:它不包括 "without moving geometry" 约束。
抱歉,VB API 中没有选项。
CAA API 中确实存在该选项,所以我想如果您有 CAA,如果您想获得行为,则可以开发自己的 VB API等同于交互式 "Change Sketch Support" 工具中的功能。
如果您的草图中只有简单的元素,例如仅限于点和线,您应该能够通过计算您在草图轴系统之间进行的变换并应用该变换的逆来重现行为转换为草图几何图形的所有坐标,从而将所有几何图形重新映射到新轴。这就是您在录制的宏中看到的。但是超越简单的几何类型当然会很复杂。