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-LocalizedAI-localized
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Feature Availability

The features available to you depend on which Altium solution you have – Altium Develop, an edition of Altium Agile (Agile Teams or Agile Enterprise), or Altium Designer (on active term).

If you don’t see a discussed feature in your software, contact Altium Sales to find out more.

Conteúdo