570x
001921
2024-11-27

API II

Este artigo providencia uma breve introdução ao API II do RFEM 6.

O que é uma API?

Uma API (Application Programming Interface) é uma interface através da qual diferentes aplicações de software podem comunicar entre si. Uma API define as regras para a troca de informação entre os programas.

Com a API II, é possível aceder às funções do RFEM 6/RSTAB 9 com software autoprogramado. Por exemplo, é possível gerar modelos, criar cargas, iniciar o cálculo e, por fim, ler os resultados.

O RFEM 6/RSTAB 9 já tem uma API, a interface de serviço web (API I). Isso também será mantido. Por isso, não é absolutamente necessário converter o software existente para API II.

Se forem adicionadas novas funções no RFEM 6/RSTAB 9, estas apenas estarão disponíveis na API II. A API I permanece "congelada" no atual nível.

Quais são as diferenças técnicas em relação à API "antiga"?

Em primeiro lugar, as duas interfaces são baseadas na tecnologia de serviços web. O RFEM 6/RSTAB 9 comunica com o software cliente através do protocolo HTTP (ou HTTPS).

Com a API I, o cliente e o servidor trocam mensagens no formato SOAP. Em vez disso, a API II utiliza o protocolo gRPC.

O SOAP troca mensagens no formato XML. A comunicação utilizando SOAP tem uma sobrecarga relativamente elevada.

Por outro lado, o gRPC troca mensagens baseado num formato binário leve. Isto é muito mais eficiente do que formatos baseados em texto como XML ou Json.

O gRPC utiliza o mais recente protocolo HTTP/2, o que também torna a transmissão mais eficiente.

A nova API II permite que vários objetos sejam combinados numa lista e depois transferidos. Isto significa que são necessárias apenas algumas chamadas à API, em vez de um grande número de pequenas chamadas. Isso também aumenta a eficiência. O exemplo abaixo mostra como funciona esta técnica de conjuntos.

Todas estas medidas de eficiência significam que a comunicação através da nova API II é cerca de 10 vezes mais rápida do que através da API I.

Com a API II, é possível executar o mesmo código em três plataformas diferentes sem quaisquer alterações.

  1. Como programa Python autónomo, que acede "de fora" a um programa RFEM 6 instalado localmente ou em rede.
  2. Na consola de scripts interna do RFEM 6.
  3. Na nuvem da Dlubal.

Programa autónomo

O RFEM 6 é instalado no seu computador. O seu programa Python comunica com o RFEM através da API II.

Consola de script

O seu script será executado diretamente na consola de script do RFEM.

Dlubal Software

Para esta aplicação, o RFEM não tem de ser instalado localmente. Escrever o seu programa de aplicação que comunica com um servidor na nuvem da Dlubal. O seu programa de aplicação gera dados estruturais e de carregamento no servidor. O cálculo é realizado no servidor. O seu programa de aplicação lê os resultados do cálculo e avalia-os.

O que mudou no processo de faturação?

Para a utilização da antiga API I, era cobrada uma taxa de utilização mensal. Isto foi independente da utilização efetiva.

A nova API II altera isso para um modelo de faturação baseado na utilização. Isto significa que existe um custo para chamar determinadas funções API. Este valor será descontado em créditos Dlubal. Estes podem ser adquiridos na loja online.

A gerar chave API

Para utilizar a API II, é necessária uma chave API, além da subscrição do serviço web. Uma chave API é um texto utilizado para a identificação e autorização.

O utilizador pode gerar chaves API na extranet.

Cada uma das chaves API geradas é atribuída a uma "empresa". Isto significa que qualquer utilizador atribuído à empresa pode utilizar as teclas.

Geralmente, é possível e útil gerar várias chaves API. Não serão aplicados quaisquer custos adicionais. Por exemplo, faz sentido gerar uma chave separada para cada projeto. Desta forma, o utilizador pode distinguir os projetos individuais na sua contabilidade interna.

Instalação da interface

O pacote para a interface está disponível através da PiPI. Execute o seguinte comando para instalar o pacote:

instalação dlubal.api

Exemplo de programa

Um pequeno exemplo demonstra a utilização da nova API II. É criada uma viga em consola constituída por um IPE 200.

Aqui está o código do programa:

importar dlubal.api.rfem como rfem

com rfem.Application() como rfem_app:

    rfem_app.create_model(name='consola')
    rfem_app.delete_all_objects()

    inf = flot('inf')

    estrutura = [
        rfem.structure_core.Material(
            nº=1,
            nome='S235'
        )
        rfem.structure_core.Section(
            nº=1,
            nome='IPE 200',
            material=1
        )
        rfem.structure_core.Node(
            nº=1
        )
        rfem.structure_core.Node(
            nº=2,
            Coordenada_1=6,0
        )
        rfem.structure_core.Line(
            nº=1,
            definição_nodes=[1,2]
        )
        rfem.structure_core.Member(
            nº=1,
            linha=1,
            section_start=1
        )
        rfem.types_for_nodes.NodalSupport(
            nº=1,
            nós=[1],
            mola_x=inf,
            mola_y=inf,
            mola_z=inf,
            rotaal_restraint_x=inf,
            rotaal_restraint_y=inf,
            rotaal_restraint_z=inf
        )
    ]

    rfem_app.create_object_list(structure)

Primeiro, é importada a biblioteca do RFEM.

O comando with cria a instância rfem_app desta classe. A chave API pode ser introduzida como argumento para rfem.Application(). No entanto, não recomendamos este procedimento por razões de segurança. Em vez disso, a chave API deve ser armazenada no ficheiro config.ini. Como isso funciona exatamente, é explicado na documentação detalhada da API II:

Na linha seguinte, é utilizado o método rfem_app.create_model(name='consola') para criar um novo modelo do RFEM. O nome do modelo é transferido como parâmetro.

Nas próximas linhas de código, a nova API II difere fundamentalmente da "antiga" abordagem na API I. Em primeiro lugar, os elementos estruturais são definidos na lista de estruturas. De seguida, estes são transferidos em conjunto com o comando rfem_app.create_object_list(structure).


Autor

O Eng. Faulstich é responsável pela garantia de qualidade do programa RFEM e também fornece apoio técnico aos clientes.

Ligações


;