VBScript

Cette référence décrit le langage de script VisualBasic utilisé pour créer des scripts dans Altium Designer. Elle fournit des détails sur les instructions, fonctions et extensions de VisualBasic Scripting prises en charge par le système de script.

Également dans cette référence :

Le langage VBScript

Visual Basic Scripting (ou VBScript en abrégé) peut être utilisé pour créer des scripts qui exploitent les modèles objet et les composants visuels d’Altium Designer. Dans cette référence, on suppose que vous connaissez les concepts de base de la programmation ainsi que le fonctionnement de base d’Altium Designer.

Le système de script d’Altium Designer prend en charge le langage VBScript (ainsi que d’autres langages de script), dérivé du système Microsoft ActiveX Scripting. Ainsi, vous devriez par exemple pouvoir utiliser CScripts ou WScripts, qui reposent sur le même moteur de script ActiveX que celui utilisé dans Altium Designer.

Tous les langages de script pris en charge dans Altium Designer sont sans typage, ce qui signifie qu’un script ne peut pas définir d’enregistrements ni de classes, ni passer des pointeurs comme paramètres à des fonctions.

VBScript script example

Sub DisplayName (sName)
  MsgBox "My Name is " & sName
End Sub
Reportez-vous à la section Microsoft Developers Network VBScript pour des informations détaillées sur VBScript ainsi que sur ses mots-clés, opérateurs et instructions.

Altium Designer et la RTL Delphi

Le système de script prend en charge un sous-ensemble de la bibliothèque d’exécution (RTL) Embarcadero Delphi ainsi que l’API d’Altium Designer.

Les scripts VBScript peuvent accéder à plusieurs modèles objet dans Altium Designer. Par exemple, le modèle objet PCB peut être utilisé dans des scripts VBScript pour manipuler les objets PCB d’un document PCB, ou le modèle objet Workspace Manager pour travailler avec les projets et leurs documents afin d’extraire des données de netlist.

La référence de script contient des informations sur les interfaces relatives aux modèles objet d’Altium Designer, aux composants, aux routines globales, aux types et aux variables qui composent ce langage de script. Consultez la documentation Microsoft Visual Basic pour plus d’informations sur les fonctions VBScript.

Processus serveur

Un script peut être utilisé pour exécuter des processus serveur, qui représentent des commandes dans Altium Designer.

Fichiers source VBScript

Un projet VBScript est organisé pour stocker des documents de script (unités de script et formulaires de script). Un script peut être exécuté à partir d’un élément de menu, d’un bouton de barre d’outils ou depuis la boîte de dialogue Run Script du menu système.

Fichiers PRJSCR, VBS et DFM

Les scripts sont organisés en projets avec une extension *.PRJSCR. Chaque projet VBScript se compose de fichiers avec une extension *.vbs. Les fichiers peuvent être soit des unités de script, soit des formulaires de script — chaque formulaire possède un fichier de script VBScript avec une extension *.vbs et un formulaire correspondant avec une extension *.dfm). Un formulaire de script est une fenêtre graphique (boîte de dialogue) qui héberge différents contrôles s’exécutant au-dessus d’Altium Designer.

Il est possible d’attacher des scripts à différents projets, et il est fortement recommandé d’organiser les scripts dans différents projets afin de gérer le nombre de scripts et leurs procédures/fonctions. Les scripts (unités de script et formulaires de script) se composent de fonctions/procédures pouvant être appelées dans Altium Designer.

Exemples VBScript

Les exemples simples inclus dans cette référence illustrent les fonctionnalités de base de la programmation VBScript dans Altium Designer.

Pour plus d’exemples VBScript, consultez le dossier ..\VBScripts dans la collection téléchargeable de scripts d’exemple pour Altium Designer.

Les scripts VBScript peuvent utiliser des formulaires de script, des unités de script, des fonctions et des objets de l’API de script d’Altium Designer, ainsi qu’un sous-ensemble de fonctions et d’objets de la RTL Embarcadero Delphi exposés dans le système de script.

Écriture de scripts VBScript

Cette section couvre les concepts de base de l’écriture de scripts VBScript dans Altium Designer.

Conventions de nommage VBScript

Les variables VBScript ne sont pas sensibles à la casse — autrement dit, les variables en majuscules et en minuscules ont la même signification :

Example

The variables b and B are the same.
b = 60
B = 60

Variables locales et globales

Comme tous les scripts possèdent des variables locales et globales, il est important d’avoir des noms de variables uniques dans vos scripts au sein d’un projet de script. Si les variables sont définies outside toute sous-routine ou fonction, elles sont globales et peuvent être accessibles depuis n’importe quelle unité du même projet.

Si des variables sont définies inside une routine, alors ces variables locales ne sont pas accessibles en dehors de ces routines. Comme les scripts sont sans typage, les variables ne sont pas initialisées avec leur type.

Les variables locales à l’intérieur d’une procédure sont initialisées automatiquement.

Variable Initialization

Sub Example
  Dim X
  Dim s
  ' x set to 0
  x =  0
  ' s set to empty
  s = ""
End Sub

Sous-routines et fonctions

VBScript autorise deux types de procédures : les sous-routines et les fonctions — seule une fonction renvoie une valeur. La syntaxe d’appel d’une sous-routine ou d’une fonction dans un script est :

Call SubRoutineA(parameters)
...ou
SubRoutine parameters

Subroutine example

Sub SetTheHeight AHeight
  Set Component.Height = AHeight
End Sub

Function example

Function Addone(value)
  AddOne = Value + 1
End Function

Another Function example

Function Test(s)
 Test = S + " rules.."
End Function
 
Sub DisplayName (sName)
 MsgBox sName
End Sub
 
Sub Main
Dim S
 S = "Altium Designer"
 DisplayName Test(s)
End Sub

Paramètres et arguments

En VBScript, une déclaration de procédure comporte normalement une liste de paramètres — notez que les variables sont considérées comme sans type et que le système de script détermine automatiquement quels sont les types des variables. La valeur utilisée à la place du paramètre lors de l’appel d’une procédure est appelée un argument.

Example of a subroutine with a parameter

Sub DisplayName (sName)
  MsgBox "My Name is " & sName
End Sub

Example of calling a subroutine

Sub Main
  DisplayName "Altium Designer  Rules"
End Sub

Notez que l’utilisation du mot-clé Call pour invoquer une sous-routine ou une fonction est facultative (maintenue pour compatibilité ascendante).

Commentaires dans les scripts

Dans un script, les commentaires sont des lignes de code non exécutées incluses pour le bénéfice du programmeur. Les commentaires peuvent être inclus pratiquement n’importe où dans un script.

Avec les commentaires VBScript :

  • Tout texte suivant ' est ignoré.
  • Tout texte suivant Rem est ignoré.

Example

' This whole line is a comment
REM this whole line is also a comment
DocName = Document.Name ' Get name of active document

Fractionnement d’une ligne de script

En VBScript, chaque instruction de code se termine sur la ligne (par une combinaison CR/LF) pour indiquer la fin de l’instruction. VBScript vous permet d’écrire une instruction sur plusieurs lignes de code, afin de scinder une instruction longue sur deux lignes ou plus, à l’aide du caractère de soulignement (_).

VBScript n’impose aucune limite pratique à la longueur d’une seule ligne de code dans un script. Cependant, pour des raisons de lisibilité et de facilité de débogage, il est recommandé de limiter la longueur des lignes de code afin qu’elles puissent être facilement lues à l’écran ou sous forme imprimée. Si une ligne de code est très longue, elle peut être divisée en plusieurs lignes, et ce code sera traité par l’interpréteur VB comme s’il avait été écrit sur une seule ligne.

Unformatted code example

If Not (PcbApi_ChooseRectangleByCorners(BoardHandle,"Choose first corner","Choose final corner",x1,y1,x2,y2)) Then EndIf

Formatted code example

If Not (PcbApi_ChooseRectangleByCorners(BoardHandle,_ 
                                        “Choose first corner”,_ 
                                        “Choose final corner”,_ 
                                        x1,y1,x2,y2)) Then EndIf

Utilisation des modèles objet d’Altium Designer

La principale fonctionnalité du système de script est que les interfaces des objets d’Altium Designer (interfaces objet) sont disponibles pour être utilisées dans les scripts VBScript. Par exemple, vous pouvez mettre à jour des objets de conception dans des documents schématiques et PCB grâce à l’utilisation respective des interfaces schématiques et PCB.

Les interfaces objet d’Altium Designer sont disponibles dans n’importe quel script. Normalement, dans les scripts, il n’est pas nécessaire d’instancier une interface. L’interface représentant un objet existant d’Altium Designer est extraite et, à partir de cette interface, les objets d’interface intégrés ou agrégés peuvent être extraits afin d’obtenir ou de définir leurs valeurs de propriété.

Pour accéder à un document PCB et à ses objets de données, vous invoquez d’abord la fonction PCBServer. Par convention, les noms d’interface sont préfixés par le caractère I — par exemple, IPCB_Board représente une interface pour un document PCB existant dans Altium Designer.

Example

' Checks if the current document is a Schematic document
  If SchServer Is Nothing Then Exit Sub
  Set CurrentSheet = SchServer.GetCurrentSchDocument
  If CurrentSheet Is Nothing Then Exit Sub

Pour avoir accès à un document PCB, invoquez PCBServer.

Creation of a PCB Object Using the PCB Object Model

Sub ViaCreation
  Dim Board
  Dim Via
  Set Board = PCBServer.GetCurrentPCBBoard
  If Board is Nothing Then Exit Sub
  ' Create a Via object
  Via = PCBServer.PCBObjectFactory(eViaObject, eNoDimension, eCreate_Default)
  Via.X = MilsToCoord(7500)
  Via.Y = MilsToCoord(7500)
  Via.Size   = MilsToCoord(50)
  Via.HoleSize   = MilsToCoord(20)
  Via.LowLayer   = eTopLayer
  Via.HighLayer = eBottomLayer
  ' Put this via in the Board object
  Board.AddPCBObject(Via)
End Sub

Objets, interfaces et fonctions

Les objets, interfaces et fonctions d’Altium Designer sont accessibles dans les scripts à partir des éléments suivants :

  • API Client
  • API du serveur PCB
  • API du serveur schématique
  • API du serveur Work Space Manager
  • API Nexus
  • Fonctions API d’Altium Designer
  • Processus paramétriques
Reportez-vous à la documentation principale Automating Design Tasks with Scripting pour obtenir des informations sur la prise en main et la création de projets de script.

Mots réservés et fonctions

Le système de script prend en charge le langage VBScript, dérivé de la technologie de langage Microsoft Active Scripting. Les mots réservés de VBScript sont :

A, B
Abs, Array, Asc, Atn
C
Call, Case, CBool, CByte, CCur, CDate, CDbl, Chr, CInt, Class, CLng, Const, Conversions, Cos, CreateObject, CSng, CStr
D, E
DateAdd, DateDiff, DatePart, DateSerial, DateValue, Day, Derived Math, Dim, Do, Each, Erase, Escape, Empty, Eval, Execute, Exit, Exp
F, G, H
False, Filter, For, FormatCurrency, FormatDateTime, FormatNumber, FormatPercent, Function GetLocale, GetObject, GetRef, Hex, Hour
I, L, M
If, Is, InputBox, Instr, InStrRev, Int, IsArray, IsDate, IsEmpty, IsNull, IsNumeric, IsObject, Join, LBound, LCase, Left, Len, LoadPicture, Log, LTrim, Maths, Mid, MInute, Month, MonthName, MsgBox
N, O
Next, Nothing, Now, Null, Oct, On Error
P, R
Private, Property, Public, Randomize, ReDim, Rem, RTrim, Replace, RGB, Right, Rnd, Round
S, T
ScriptEngine, ScriptEngineBuildVersion, ScriptEngineMajorVersion, ScriptEngineMinorVersion, Second, Select, Set, SetLocale, Sgn, Sin, Space, Split, Sqr, Stop, StrComp, String, StrReverse, Sub, Tan, Then, Time, Timer, Timeserial, TimeValue, Trim, True, TypeName
U, V, W, X, Y
UCase, Unescape, While, Wend, With, VarType, Weekday, WeekdayName, Year

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.

Legacy Documentation

Altium Designer documentation is no longer versioned. If you need to access documentation for older versions of Altium Designer, visit the Legacy Documentation section of the Other Installers page.

Contenu