Motore Python

Gli utenti possono anche eseguire i propri script Python all’interno di Requirements & Systems Portal per effettuare alcuni calcoli tramite codice Python, in modo simile al motore Octave. Inoltre, questo consente agli utenti di accedere alla rest API ed eseguire modifiche agli oggetti singolarmente o in blocco. Il motore Python integrato attualmente supporta i pacchetti Python “Valispace”, pint e Scipy (inclusi NumPy e altri). Al momento non sono disponibili tutti i pacchetti Python.

Flusso degli script Python nel modulo di scripting

Il flusso di lavoro tipico in un modulo di scripting che coinvolge il motore Python è mostrato nell’immagine qui sotto. Nel caso in cui l’utente non voglia eseguire un calcolo ma apportare modifiche in blocco tramite la rest API, può scrivere direttamente il codice Python ed eseguire lo script.

Pacchetti all’interno del motore Python

Poiché abbiamo implementato il motore Python all’interno di Requirements & Systems Portal come funzionalità beta, il motore Python non supporta tutti i pacchetti. Attualmente sono supportati pochissimi pacchetti. I pacchetti attualmente supportati sono elencati qui.

Esempio di scripting Python

Con il motore Python, l’utente può aggiungere input e output e può scrivere codice Python per calcolare i risultati. Questo è simile a come funziona con il Octave Engine in Requirements & Systems Portal. Nell’esempio seguente puoi vedere come scrivere lo script Python per aggiungere un sotto-blocco a un blocco.

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)

 

Attualmente, per accedere alla rest API di Requirements & Systems Portal, l’utente deve fornire il token di accesso temporaneo memorizzato nei kwargs della funzione main oppure utilizzare gli User Tokens, vedi qui.

Ecco alcune idee su ciò che puoi fare con il modulo di scripting:

  • Creare un vali e aggiungerlo a più componenti esistenti

  • Apportare modifiche in blocco agli identificatori dei requisiti

  • Eseguire una simulazione usando Python

  • Convertire le unità di tutti i power valis in kW

  • Creare ed eseguire uno script per esportare la gerarchia dei componenti

  • Creare un’esportazione in formato ReqIF a partire dai requisiti

  • Creare una distinta base estraendo materiale, numero componente, massa e costo dei componenti

AI-LocalizedLocalizzato tramite A
Se trovi un problema, seleziona il testo/l’immagine e premi Ctrl + Invio per inviarci il tuo feedback.
Disponibilità delle funzionalità

Le funzionalità disponibili dipendono dalla soluzione Altium in uso – Altium Develop, un’edizione di Altium Agile (Agile Teams o Agile Enterprise), oppure Altium Designer (con licenza attiva).

Se non vedi nel tuo software una funzionalità descritta,  contatta il team vendite di Altium per saperne di più.

Contenuto