AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 79203037
Accepted
issamo
issamo
Asked: 2024-11-19 18:31:20 +0800 CST2024-11-19 18:31:20 +0800 CST 2024-11-19 18:31:20 +0800 CST

Existe uma maneira de criar uma fórmula no Catia via Macro para vincular parâmetros?

  • 772

insira a descrição da imagem aquio objetivo principal é vincular dois parâmetros via fórmula no Catia usando macro. Tentei registrar o processo manualmente, mas o código não deu o código completo:

Sub CATMain()
Dim partDocument1 As partDocument
Set partDocument1 = CATIA.ActiveDocument
Dim part1 As part
Set part1 = partDocument1.part
Dim parameters1 As Parameters
Set parameters1 = part1.Parameters
Dim parameterSet1 As ParameterSet
Set parameterSet1 = parameters1.RootParameterSet
Dim parameterSets1 As ParameterSets
Set parameterSets1 = parameterSet1.ParameterSets
Dim parameterSet2 As ParameterSet
Set parameterSet2 = parameterSets1.GetItem("Construction_Position")
Dim parameterSets2 As ParameterSets
Set parameterSets2 = parameterSet2.ParameterSets
Dim parameterSet3 As ParameterSet
Set parameterSet3 = parameterSets2.GetItem("R_Point") ' Cannot print the method call put_Value for the object RealParam
Dim relations1 As Relations
Set relations1 = part1.Relations
Set parameterSet3 = parameterSets2.GetItem("R_Point")
Dim formula1 As Formula
Set formula1 = relations1.CreateFormula("Formula.2", "", ' Cannot print the method call CreateFormula for the object Relations
part1.Update
End Sub

a fórmula final que obtenho deste processo 'manualmente' é

formula.2: Construction_Position\R_Point\R_Point_X=Construction_Position\H_Point\H_Point_X

alguém pode me ajudar por favor com isso. Eu tentei com CHATGPT mas não está funcionando de jeito nenhum

vba
  • 2 2 respostas
  • 41 Views

2 respostas

  • Voted
  1. rhashiba
    2024-11-19T22:17:54+08:002024-11-19T22:17:54+08:00

    Não sou especialista em Catia, mas li rapidamente http://catiadoc.free.fr/online/interfaces/interface_Relations.htm#CreateFormula e tente o seguinte:

    Sub CATMain()
        Dim partDocument1 As PartDocument
        Dim part1 As Part
        Dim relations1 As Relations
        Dim formula1 As Formula
        Dim parameters1 As Parameters
        Dim paramHPointX As Parameter
        Dim paramRPointX As Parameter
    
        Set partDocument1 = CATIA.ActiveDocument
        Set part1 = partDocument1.Part
        Set parameters1 = part1.Parameters
        Set relations1 = part1.Relations
        Set paramHPointX = parameters1.Item("Construction_Position\H_Point\H_Point_X")
        Set paramRPointX = parameters1.Item("Construction_Position\R_Point\R_Point_X")
    
        'formula linkin
        ' Formula syntax: "iName", "iComment", "Formula"
        Set formula1 = relations1.CreateFormula("Formula.4", "", paramRPointX.Name & " = " & paramHPointX.Name)
        part1.Update
    End Sub
    
    • 0
  2. Best Answer
    Shrotter
    2024-11-19T23:52:46+08:002024-11-19T23:52:46+08:00

    CreateFormulaprecisa como terceira entrada o parâmetro que é gerenciado pela fórmula, e como quarto parâmetro a fórmula como uma string. a melhor maneira de obter o "nome" de um parâmetro para usar em uma fórmula é usar a GetNameToUseInRelationfunção. Além disso, seu código não acessa um nível de conjunto de parâmetros. Aqui está um exemplo de como esse código poderia se parecer

    Sub CATMain()
    
    Dim oPart As Part
    Dim oRelations As Relations
    Dim oParameters As Parameters
    Dim parameterSet_H As ParameterSet
    Dim parameterSet_R As ParameterSet
    Dim parameterSet_Construction As ParameterSet
    Dim oParameter_H as Parameter
    Dim oParameter_R as Parameter
    Dim oFormula As Formula
    
    Set oPart = CATIA.ActiveDocument.Part
    Set oRelations = oPart.Relations
    Set oParameters = oPart.Parameters
    
    'get Parametersets
    Set parameterSet_Construction = oParameters.RootParameterSet.ParameterSets.Item("Construction_Position")
    Set parameterSet_H = parameterSet_Construction.ParameterSets.Item("H_Point")
    Set parameterSet_R = parameterSet_Construction.ParameterSets.Item("R_Point")
    
    'get Parameters
    Set oParameter_H = parameterSet_H.DirectParameters.Item("H_Point_X")
    Set oParameter_R = parameterSet_R.DirectParameters.Item("R_Point_X")
    
    'create formula
    Set oFormula = oRelations.CreateFormula("","", oParameter_R, oParameters.GetNameToUseInRelation(oParameter_H))
    
    oPart.Update
    
    End Sub
    
    • 0

relate perguntas

  • Pesquise e formate texto entre parênteses

  • Atribuindo formas a um grupo no PowerPoint usando VBA

  • Word VBA, mova o cursor para o início do próximo número em uma lista numerada

  • Execute uma regra do Outlook para cada conta usando macro vba

  • Extrair arquivos de um objeto OLE do Access

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle?

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Quando devo usar um std::inplace_vector em vez de um std::vector?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Marko Smith

    Estou tentando fazer o jogo pacman usando apenas o módulo Turtle Random e Math

    • 1 respostas
  • Martin Hope
    Aleksandr Dubinsky Por que a correspondência de padrões com o switch no InetAddress falha com 'não cobre todos os valores de entrada possíveis'? 2024-12-23 06:56:21 +0800 CST
  • Martin Hope
    Phillip Borge Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle? 2024-12-12 20:46:46 +0800 CST
  • Martin Hope
    Oodini Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores? 2024-12-12 06:27:11 +0800 CST
  • Martin Hope
    sleeptightAnsiC `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso? 2024-11-09 07:18:53 +0800 CST
  • Martin Hope
    The Mad Gamer Quando devo usar um std::inplace_vector em vez de um std::vector? 2024-10-29 23:01:00 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST
  • Martin Hope
    MarkB Por que o GCC gera código que executa condicionalmente uma implementação SIMD? 2024-02-17 06:17:14 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve