对于 CATIA,从带点的草图创建轴

For CATIA, Creating axis from sketch with points

提问人:Yunus Mert AŞKIN 提问时间:10/28/2023 最后编辑:Yunus Mert AŞKIN 更新时间:10/28/2023 访问量:223

问:

我创建并编写了一个代码,用于从点放置一些轴。我的代码在 CATIA R19 和 R20 中完美运行。但在 R30 不起作用。任何人都可以检查我的 R30 版本代码,或者我应该在代码中做什么或更改?

Language="VBSCRIPT"

Sub CATMain()

Dim arrVariant(2)

Dim dialogResult

    dialogResult = InputBox("How many axis you needed?")
    If (IsNumeric(dialogResult)) Then
        nSys = CInt(dialogResult)
    Else
        MsgBox "Insert only numbers!"
        Exit Sub
    End If
    Set prtDoc = CATIA.ActiveDocument
    Set prt = CATIA.ActiveDocument.Part
    Set params = prt.Parameters
    For cnt = 1 To nSys
        Set aSys = prt.AxisSystems.Add()
        aSys.OriginType = catAxisSystemOriginByPoint
        Set hsPoint = params.Item("Sketch." & cnt)
        Set ref = prt.CreateReferenceFromObject(hsPoint)
        aSys.OriginPoint = ref
        aSys.XAxisType = catAxisSystemAxisByCoordinates
        arrVariant(0) = 1.0
        arrVariant(1) = 0.0
        arrVariant(2) = 0.0
        Set aSysVariant = aSys
        aSysVariant.PutXAxis arrVariant
        aSys.YAxisType = catAxisSystemAxisByCoordinates
        arrVariant(0) = 0.0
        arrVariant(1) = 1.0
        arrVariant(2) = 0.0
        Set aSysVariant = aSys
        aSysVariant.PutYAxis arrVariant
        aSys.ZAxisType = catAxisSystemAxisByCoordinates
        arrVariant(0) = 0.0
        arrVariant(1) = 0.0
        arrVariant(2) = 1.0
        Set aSysVariant = aSys
        aSysVariant.PutZAxis arrVariant
        prt.UpdateObject aSys
        aSys.IsCurrent = False
        prt.Update
    Next
End Sub

我在 r30 上尝试了此代码,但不起作用。它只是从本节中给出错误

Set hsPoint = params.Item("Sketch." & cnt)
VBA CATIA卡蒂亚

评论

0赞 JohnM 10/28/2023
您收到的错误号和错误文本是什么?
0赞 Disvoys 10/29/2023
循环检查零件中的每个参数,并检查是否有“Sketch.1”。似乎是你没有。
0赞 Yunus Mert AŞKIN 10/29/2023
@Disvoys我有 sketch.1,这并不重要,因为我使用了 Sketch。
0赞 Yunus Mert AŞKIN 10/29/2023
@JohnM嘿,它给了我这样的错误: Source CATIAParameters 描述: metod 项目失败。第 21 行 Column:8 设置 hsPoint = params。项目(hsPoint)
0赞 Disvoys 10/29/2023
循环每个参数并检索名称,看看你是否有你需要的 Sketch.cnt:params.item(cnt).name

答: 暂无答案