Motor Python

Os utilizadores também podem executar os seus scripts Python no Requirements & Systems Portal para realizar alguns cálculos através de código Python, de forma semelhante ao motor Octave. Além disso, isto também permite aos utilizadores aceder à API REST e efetuar modificações aos objetos individualmente ou em massa. O motor Python incorporado suporta atualmente os pacotes Python “Valispace”, pint e Scipy (inclui NumPy e outros). Nem todos os pacotes Python estão atualmente disponíveis.

Fluxo de scripts Python no módulo de scripting

O fluxo de trabalho típico num módulo de scripting que envolve o motor Python é apresentado na imagem abaixo. Caso o utilizador não pretenda efetuar um cálculo e queira fazer algumas alterações em massa através da API REST, pode escrever o código Python diretamente e executar o script.

Pacotes no motor Python

Uma vez que implementámos o motor Python no Requirements & Systems Portal como uma funcionalidade beta, o motor Python não suporta todos os pacotes. Atualmente, são suportados muito poucos pacotes. Os pacotes atualmente suportados estão listados aqui.

Exemplo de scripting em Python

Com o motor Python, o utilizador pode adicionar as entradas e a saída e escrever código Python para calcular os resultados. Isto é semelhante à forma como funciona com o Octave Engine no Requirements & Systems Portal. No exemplo abaixo, pode ver como escrever o script Python para adicionar um sub-bloco a um bloco.

from typing import Any, Dict

import valispace

def main(**kwargs) -> Dict[str, Any]:
    """
    This is the main function to execute your script and it must exists.

    Other functions and files can be also created. You have at your disposal
    to import Valispace API, scipy, numpy and pint.

    :param kwargs: Dictionary with data received from Valispace.
    :type kwargs: Dict[str, Any]

    :return: Dictionary with data to send back to Valispace.
    :rtype: Dict[str, Any]
    """
    # TODO: Write your code here
    
valispace = valispace.API(url="https://.valispace.com/", username = "", password = "") #add your deployment name, username and the password

# The ID of the Parent Component; If it is at the highest level, parent is null, but project need to be specified.
parent_component = 57111

# Object with the new Component Property
component = {
	"name": "NewCompentName2",
	"parent": parent_component
}


# Function to get Vali by the fullname
componentPosted = valispace.post("components/", component)

 

Atualmente, para aceder à API REST do Requirements & Systems Portal, o utilizador tem de fornecer o token temporário de acesso de início de sessão, que está armazenado nos kwargs da função main, ou utilizar os User Tokens; consulte aqui.

Aqui estão algumas ideias do que pode fazer com o módulo de scripting:

  • Criar um vali e adicioná-lo a vários componentes existentes

  • Efetuar edições em massa nos identificadores dos requisitos

  • Executar uma simulação com Python

  • Converter as unidades de todos os valis de potência para kW

  • Criar e executar um script para exportar a hierarquia de componentes

  • Criar uma exportação em formato ReqIF a partir dos requisitos

  • Criar uma lista de materiais extraindo o material, número do componente, massa e custo dos componentes

AI-LocalizedLocalizado por IA
Caso encontre um problema, selecione o texto/imagem e primaCtrl + Enterpara nos enviar o seu feedback.
Disponibilidade de Funcionalidades

As funcionalidades disponíveis dependem da solução Altium que possui – Altium Develop, uma edição do Altium Agile (Agile Teams ou Agile Enterprise), ou Altium Designer (com subscrição ativa).

Se não encontrar uma funcionalidade mencionada no seu software, contacte a equipa de Vendas da Altium para saber mais.

Conteúdo