API TopSolid 6.
1. Mécanismes de COM
2. Découverte de VB
3. Objets et fonctionnalités de l’API TopSolid 6.7
4. Des exemples
API TopSolid 6.7
1. Mécanismes de COM
2. Découverte de VB
3. Objets et fonctionnalités de l’API TopSolid 6.7
Généralités 4. Des exemples
Environnement VB
Environnement Office
API TopSolid 6.7
1. Mécanismes de COM
Généralités
Un serveur COM est un exécutable (ou une DLL) qui est enregistré dans la base des
registres Windows qui expose à d’autres programmes (clients) ses interfaces (API)
pour interagir avec lui.
Voici les différents environnements possibles pour appeler le serveur COM TopSolid :
Client VB : programme écrit en VB
Client Office : programme Office (Excel, Word, Access…) qui dispose d’un
langage VBA (VB pour Application).
Client script : script écrit en VBS (VBScript)
Chaque programme client doit lancer une instance du serveur TopSolid ou bien se
rattacher à une déjà existante.
API TopSolid 6.7
1. Mécanismes de COM
Interfaces
API TopSolid 6.7
1. Mécanismes de COM
Environnement VB
Pour créer un programme VB qui utilise l’API de TopSolid, vous
devez installer l’environnement de développement VB6.
Vous pouvez packager votre programme et l’installer sur n’importe
quelle machine du moment qu’elle dispose de TopSolid.
Cette solution est adaptée à des programmes qui nécessitent
beaucoup d’interaction avec TopSolid et qui ont besoin d’une interface
utilisateur évoluée. Exemple : un PDM.
API TopSolid 6.7
1. Mécanismes de COM
Environnement Office
Si vous avez Office installé sur votre machine, vous pouvez piloter
TopSolid directement depuis votre Excel, Access, Word… sans rien installer
d’autre.
Chaque application possède son propre environnement de
développement VBA et vous permet de créer des macros.
Cette solution est adaptée à des programmes simples (macros) et
qui ont besoin d’être intégrés dans une application déjà existante comme
une feuille Excel ou une base de données Access.
API TopSolid 6.7
1. Mécanismes de COM
2. Découverte de VB
3. Objets et fonctionnalités de l’API TopSolid 6.7
Programmation événementielle 4. Des exemples
Notion de projet
Environnement de développement
Langage
API TopSolid 6.7
2. Découverte de VB
Programmation événementielle
Visual Basic est issu du langage Basic (langage de programmation
structuré), cependant VB utilise un modèle de programmation gérée par des
évènements.
L’exécution ne suit pas un chemin prédéterminé, mais les différentes
sections du code s’exécutent en réponse aux évènements (de l’utilisateur,
d’une application ou du système).
Exemple de code
événementiel
Private Sub cmdAffiche_Click() Private Sub cmdReset_Click()
txtAffiche = "Le texte est affiché" txtAffiche = ""
End Sub End Sub
API TopSolid 6.7
2. Découverte de VB
Notion de projet
Pour développer en VB, il faut travailler dans un projet destiné à gérer l’ensemble des
fichiers de l’application :
Projet *.vbp Liste les fichiers du projet et les options
Groupe *.vbg Liste les projets d’un groupe
Formulaires *.frm Formulaire et ses contrôles avec le code associé à leurs
évènements
Données de formulaire *.frx Données binaires pour le formulaire
Contrôle ActiveX *.ocx Contrôles optionnels (boîte à outils)
Modules *.bas Fonctions et procédures communes
Module de classe *.cls Objets personnalisés (méthodes + props)
Ressources .res Bitmaps et chaînes de texte (1 seul .res)
Autres fichiers … Pas détaillé ici
API TopSolid 6.7
2. Découverte de VB
Notion de projet
Un modèle de projet contient les objets essentiels du projet et les paramètres
d’environnement nécessaires pour créer le type d’application ou le composant que
vous voulez.
EXE standard Application autonome.
Contient un formulaire par défaut.
Projet de Données Application d’accès à une Base de Données.
EXE/DLL ActiveX Composant COM.
Contrôle ActiveX Composant graphique à inclure.
EXE/DLL Composant utilisé dans un conteneur d’objet document (ex:
Document ActiveX IE, Word…).
Application DHTML Composant client d’application Web.
Application IIS Composant serveur d’application Web.
API TopSolid 6.7
2. Découverte de VB
Environnement de développement
Un explorateur de projets
Un éditeur de code
Un concepteur de formulaires
Une boîte à outils
Une fenêtre de propriétés
API TopSolid 6.7
2. Découverte de VB
Environnement de développement
Un explorateur de projets
Un éditeur de code
Un concepteur de formulaires
Une boîte à outils
Une fenêtre de propriétés
L’explorateur de projet liste les différents fichiers qui
composent le projet en cours.
API TopSolid 6.7
2. Découverte de VB
Environnement de développement
Un explorateur de projets
Un éditeur de code
Un concepteur de formulaires
Une boîte à outils
Une fenêtre de propriétés
L’éditeur de code permet de modifier et de créer des
instructions pour un formulaire mais aussi pour un
module de code VB.
La fenêtre de l’éditeur se compose d’une zone de texte et de deux combos listes.
La première combo (gauche) liste tous les objets et contrôles du formulaire ou du
module.
La deuxième liste tous les évènements que reconnaît l’objet sélectionné dans la
première combo.
API TopSolid 6.7
2. Découverte de VB
Environnement de développement
Un explorateur de projets
Un éditeur de code
Un concepteur de formulaires
Une boîte à outils
Une fenêtre de propriétés
Le concepteur de formulaire permet de définir l’interface utilisateurs
(formulaires) avant l’exécution du projet.
On insère dans le formulaire tous les contrôles que l’on va utiliser puis on les
déplace.
API TopSolid 6.7
2. Découverte de VB
Environnement de développement
Un explorateur de projets
Un éditeur de code
Un concepteur de formulaires
Une boîte à outils
Une fenêtre de propriétés
La boîte à outils contient les contrôles VB et tous les contrôles
ActiveX ou autres objets insérables que vous avez ajoutés au
projet.
Pour ajouter des contrôles dans la boîte, ouvrir le menu
Projet/Composants et cliquer sur l’onglet Contrôles.
La liste des Contrôles ActiveX installés sur la machine apparaît, il
ne vous reste plus qu’à sélectionner celui que vous voulez insérer.
API TopSolid 6.7
2. Découverte de VB
Environnement de développement
Un explorateur de projets
Un éditeur de code
Un concepteur de formulaires
Une boîte à outils
Une fenêtre de propriétés
Lors de l’élaboration de l’interface utilisateur, vous devez définir
les propriétés des objets créés.
En conception, pour accéder à la fenêtre de propriétés d’un objet,
faites un clic droit de la souris sur l’objet, puis choisir propriétés.
Ici voici les propriétés d’un objet formulaire dont le titre de la
fenêtre (caption) vaut « Form1 ». Texte d’aide qui explique la
propriété en cours de sélection
API TopSolid 6.7
2. Découverte de VB
API TopSolid 6.7
1. Mécanismes de COM
2. Découverte de VB
3. Objets et fonctionnalités de l’API TopSolid 6.7
4. Des exemples
API TopSolid 6.7
3. Objets et fonctionalités
L’API (Application Programming Interface) TopSolid propose à
l’utilisateur de piloter TopSolid par programmation. Elle se compose de
plusieurs interfaces, chaque interface correspond à un objet COM.
Elle est accessible par les langages de scripts (VBScripts, JScripts)
ainsi que depuis VB.
Dans ce cours, nous allons détailler les objets de la bibliothèque de type
TopSolid et montrer leur utilisation dans des programmes Visual Basic.
API TopSolid 6.7
3. Objets et fonctionalités
Utilisation de la bibliothèque TopSolid 6.7
Pour utiliser la bibliothèque de
type TopSolid 6.7 en VB, il faut
ajouter une référence vers
"TopSolid v6.7 Type Library".
La bibliothèque de type
TopSolid est incluse dans
l’exécutable top67.exe.
API TopSolid 6.7
3. Objets et fonctionalités
Explorateur d'objets (F2)
Objets globaux
Énumérateur
Constante
Classe d’objet
Propriété par défaut
Propriété
Événement
Méthode
API TopSolid 6.7
3. Objets et fonctionalités
Schéma de base
Application
DocumentDesign
Documents Document
…
DocumentDraft
… Shape
…
Point
Elements Element
…
Text
…
Contexts …
Code Couleur :
Containement
…
Collection item
Derivation
API TopSolid 6.7
3. Objets et fonctionalités
Aide de l'API
L’aide de référence de l’API TopSolid (TopSolidAPI.chm) est fournie avec
le CD de TopSolid 6.7. Vous pouvez l’ouvrir depuis le menu
Aide/"TopSolid/API – Sommaire et index" de TopSolid 6.7
Ce fichier contient la liste et le détail de toutes les interfaces ainsi que des
exemples d’utilisation des objets de l’API.
Attention, certains objets ne sont pas documentés car ils sont strictement
réservés à un usage interne et peuvent être supprimés à tout moment. Il est
fortement déconseillé d’utiliser des objets réservés ou obsolètes.
A chaque nouvelle version de l’API TopSolid, on renseigne sur l’aide quelles
sont les interfaces qui ont changées, qui sont devenue obsolètes ou qui sont
détruites.
TopSolidAPI.chm
API TopSolid 6.7
3. Objets et fonctionalités
L'objet Application
L’objet Application représente l’application TopSolid et demeure l’objet de base de l’API
TopSolid 6.7.
Pour déclarer un objet de type Application, et donc lancer le serveur TopSolid ou se rattacher à
une instance déjà lancée :
Dim TopApp as Topsolid.Application
Set TopApp = new Topsolid.Application
TopApp.Visible = True
Une fois le serveur TopSolid initialisé, on peut accéder L’objet Application contient 3 collections
aux propriétés, méthodes et évènements de d’objets :
l’application.
Contexts : listes des contextes d’application
If TopApp.Version < 607262 Then Documents : listes des documents ouverts
MsgBox "La version est inférieure à Extensions : listes des add-on TopSolid
v6.7.262", vbCritical
End ‘quitter l’application VB chargés
End If
API TopSolid 6.7
3. Objets et fonctionalités
La collection Documents
La collection Documents de l’objet Application gère les documents de l’application.
Add (str) Ajoute un document modèle ou crée un nouveau document avec l’extension.
Close(true, false) Ferme Tous les document en sauvant et sans demander confirmation
Count Nombre de documents ouverts
Item(i) Spécifie un document de la liste
Open Ouvre un document
Exemple d'ouverture d'un fichier existant
Dim doc As TopSolid.Document
Set doc = TopApp.Documents.Open("D:\Projets\test.top")
Exemple de création d'un nouveau document Top
Dim doc As TopSolid.DocumentDesign
Set doc = TopApp.Documents.Add("top")
API TopSolid 6.7
3. Objets et fonctionalités
L'interface IDocument
L’interface IDocument permet de manipuler un objet de type TopSolid.Document
c’est à dire un document reconnu par TopSolid.
Dim doc As TopSolid.Document
On accède aux propriétés du document, ses méthodes de fermeture et de
sauvegarde, et ses évènements.
Suivant le type de document, on a plusieurs interfaces qui gèrent les propriétés, les
méthodes et les évènements qui sont spécifiques.
IDocumentDesign : pour un document de conception (3D)
IDocumentDraft : pour un document de mise en plan (2D)
L’interface IDocument donne l’accès aux éléments contenus dans le document en
exposant la collection Elements.
API TopSolid 6.7
3. Objets et fonctionalités
La collection Elements
La collection Elements de l’objet Document gère tous les éléments d’un document.
Count Nombre d’éléments dans le document
Item(i) Spécifie un élément de la liste
NameIsUsed Méthode qui renvoie vrai si le nom donné existe déjà pour un élément de la liste
Exemple : Afficher le nombre d’éléments d’un document
Dim doc As TopSolid.Document
Dim elts As TopSolid.Elements
Set doc = TopApp.Documents.Open("D:\Projets\test.top")
Set elts = doc.Elements
MsgBox elts.Count
API TopSolid 6.7
3. Objets et fonctionalités
Les interfaces et collections
IElement : IComponent, ICoordinateSystem, ICurve, IDimension, IDrawing,
IParameter, IPoint, ISet, IText
IDocument : IDocumentDesign, IDocumentDraft
IBOM
IBOMLevel
IBOMProperty
API TopSolid 6.7
Débuter avec l'API
Création de documents et élements 1. Mécanismes de COM
Modification de paramètres
Utilisation de composants
2. Découverte de VB
Convert Manager 3. Objets et fonctionnalités de l’API TopSolid 6.7
4. Des exemples
API TopSolid 6.7
4. Des exemples
Exercice 1 : Débuter avec l'API
But : lancer TopSolid et afficher la version.
Créer un nouveau projet ("exe standard")..
Aller dans Projet/Références puis cocher TopSolid 6.7 Type Library
Créer dans le formulaire Form1 un contrôle graphique de type bouton :
Double cliquer sur le bouton, la fenêtre de code associée s'ouvre :
Ecrire le code suivant dans la procédure Command1_Click:
Dim TopApp As TopSolid.Application
Set TopApp = New TopSolid.Application
TopApp.Visible = True
MsgBox "Votre Version de TopSolid est :" & TopApp.Version
Set TopApp = Nothing
Vous devez sauvegarder votre projet dans un répertoire de votre disque.
Vous pouvez lancer le projet depuis l'environnement depuis le menu Exécution/exécuter.
API TopSolid 6.7
4. Des exemples
Exercice 2 : Création de documents et éléments
But : créer un nouveau document 3D et créer un point aux coordonnées spécifiées.
Ouvrir le projet existant : EX02 – Créations de documents et éléments\projet1.vbp
Double cliquer sur le bouton « Créer un nouveau document 3D », la fenêtre de code associée s'ouvre
Ecrire le code pour créer dans l’objet application, un nouveau document 3D.
Double cliquer sur le bouton « Créer un point dans le document courant », la fenêtre de code associée s'ouvre
Ecrire le code pour vérifier qu’un document est bien ouvert.
Si aucun document est ouvert alors il faut quitter la procédure (Exit Sub)
Indice : Compter le nombre de documents ouverts.
Ensuite il faut affecter à la variable topDoc3D le document courant de l’application.
Enfin, créez le point basique qui utilise les coordonnées saisies dans les champs textes du formulaire à
savoir : txtX, txtY, txtZ.
Pour convertir une chaîne de caractère en réel, utilisez la fonction Cdbl de VB.
API TopSolid 6.7
4. Des exemples
Exercice 2 : Création de documents et éléments
But : créer un nouveau document 3D et créer un point aux coordonnées spécifiées.
On se rend compte que l’on ne sait pas quelle est l’unité du document lorsqu’on saisie les coordonnées du points depuis notre frontal.
Vous allez créer un nouveau champs qui se contente d’afficher l’unité de longueur courante du document courant. Nommez le champ texte : txtUnit
Pour cela voici ce qu’on attend
Modifier la procédure :
Private Sub cmdOpenDoc_Click()
Ecrire après la création du nouveau document, le remplissage de la zone de texte txtUnit.
TxtUnit.Text = …
Indice : il faut se créer une variable topDoc de type TopSolid.Document
API TopSolid 6.7
4. Des exemples
Exercice 3 : Modification de paramètres existants
(suite)
Copier le fichier suivant dans votre répertoire missler\config\template :
EX03 - Piloter des Paramètres\ testcom.top
Ouvrir le fichier : EX03 - Piloter des Paramètres\ SampleParametric.xls
Ouvrir l'éditeur Visual Basic par le menu Outils\macro\Visual Basic Editor
Aller dans Outils/références puis cocher TopSolid 6.7 Type Library
Ecrire le code pour le bouton de la feuille.
A savoir :
Création d’un nouveau document à partir d’un document modèle :
testcom.top
Pour chaque paramètre, le rechercher et changer sa valeur.
Faites enregistrer dans l'éditeur VBA.
Une fois sauvé, vous pouvez fermer la fenêtre VBE (Visual Basic Editor) et
retourner sur votre feuille Excel.
Désactiver le mode édition (sur la toolbar visual basic). Vous pouvez alors
cliquer sur le bouton et le code s'exécutera.
API TopSolid 6.7
4. Des exemples
Exercice 4 : Utilisation de composants
Copier le répertoire suivant dans votre répertoire missler\config\lib3D : EX04 - Utilisation de composants\COMPOTEST
Relancer TopSolid et vérifier que le composant est bien reconnu par TopSolid.
Ouvrir le fichier : EX04 - Utilisation de composants \ SampleComponents.xls
Ouvrir l'éditeur Visual Basic par le menu Outils\macro\Visual Basic Editor
Aller dans Outils/références puis cocher TopSolid 6.7 Type Library
Écrire le code pour le bouton de la feuille.
Configurer les unités de l’application en millimètre et degré.
Créer un nouveau document top vierge.
Ajouter 4 composants standard à partir du fichier modèle (compo1 , compo2 , compo3 , compo4) :
COMPOTEST\TIGE1#V=VAR1#I=VER1#R=NR.top
Standard : LIB3D
Famille : COMPOTEST
Type : Tige1
Variant : Var1
Version : Ver1
Repres : NR
Utiliser un code différent pour chaque composant. (CODE1, CODE2, CODE3, CODE4)
API TopSolid 6.7
4. Des exemples
Exercice 4 : Utilisation de composants
(suite)
Ajout d’un composant non standard à partir du fichier (compo5) : part1.top
Indice : regardez la collection Components du document.
Placer les composants à l’aide de rotations et translations :
Compo1 : pas de transformation
Compo2 : rotation de centre 0, 0, 0 autour de l’axe Z d’une valeur de 90°
Compo3 : rotation de centre 0, 0, 0 autour de l’axe Z d’une valeur de 180°
Compo4 : rotation de centre 0, 0, 0 autour de l’axe Z d’une valeur de -90°
Compo5 : rotation de centre 0, 0, 0 autour de l’axe Z d’une valeur de -90°
Translation sur l’axe Z de -22.5 mm
Changer les codes des composants et régénérer le document.
Poser une question à l’utilisateur :
If MsgBox("Changer les codes des composants?", vbYesNo) = vbYes Then
Ecrire le code ici
End If
Ajouter les pièces dans l’ensemble du document.
Quitter proprement la fonction
Faites enregistrer dans l'éditeur VBA.
Une fois sauvé, vous pouvez fermer la fenêtre VBE (Visual Basic Editor) et retourner sur votre feuille excel.
Désactiver le mode édition (sur la toolbar visual basic).Vous pouvez alors cliquer sur le bouton et le code s'exécutera.
API TopSolid 6.7
4. Des exemples
Exercice 5 : Convert Manager
Créer un nouveau projet (exe standard).
Aller dans Projet/Références puis cocher TopSolid 6.7 Type Library.
Aller dans Projet/Composants puis cocher TopSolid/Viewer OLE Control module.
Renommer Form1 en FrmMain
Changer le titre de la fenêtre dans propriétés du formulaire, modifier le champ Caption
Créer dans ce formulaire tous les contrôles graphiques suivants :
Bouton : CmdBrowser
Zone de texte : TxtDir
Viewer : Viewer1
FileListBox : File1
ComboBox : CboFilters
Bouton : CmdConvert
Bouton : CmdCancel
API TopSolid 6.7
4. Des exemples
Exercice 5 : Convert Manager (suite)
Créer un nouveau formulaire par Projet\ajouter une feuille
Le nommer frmBrowser
Ajouter les contrôles comme suit :
DirListBox : Dir1
DriveListBox : Drive1
Bouton : CmdCancel
Bouton :CmdOK
API TopSolid 6.7
4. Des exemples
Exercice 5 : Convert Manager (suite)
Dans le formulaire FrmBrowser
Editer le code du formulaire FrmBrowser en début de fichier et taper l’option qui oblige à déclarer toutes les variables
Option Explicit
Créer une variable globale de type chaîne de caractères :
Public GstrDir As String
Lorsqu’on clique sur le bouton OK, on remplit la variable globale avec le chemin du répertoire sélectionné.
Private Sub CmdOK_Click()
Lorsqu’on clique sur le bouton Cancel, on ferme la boîte sans rien faire.
Private Sub CmdCancel_Click()
Lors du lancement de notre formulaire frmBrowser, on veut afficher dans la liste des répertoires, le répertoire contenu dans la variable GstrDir si cette
variable existe sinon on affiche le répertoire par défaut (en général c :).
Private Sub Form_Load()
Enfin lorsqu’on change le disque, on réinitialise la liste des répertoires.
Private Sub Drive1_Change()
API TopSolid 6.7
4. Des exemples
Exercice 5 : Convert Manager (suite)
Dans le formulaire FrmMain
Lorsqu’on clique sur le bouton de navigation, on veut ouvrir l’autre boîte (FrmBrowser) et on veut récupérer le chemin du répertoire sélectionné.
Private Sub CmdBrowser_Click()
Lorsqu’on clique sur le bouton Cancel, on veut fermer la boîte de dialogue sans rien faire.
Private Sub CmdCancel_Click()
On souhaite que la liste des fichiers se remplissent avec les fichiers Top et Draft contenus dans le répertoire dont le nom apparaît dans la zone de texte
TxtDir.
Private Sub TxtDir_Change()
Lorsqu’on clique sur le nom d’un fichier, on veut le visualiser dans le contrôle Viewer1.
Private Sub File1_Click()
Au moment du chargement de la boîte de dialogue, il faut initialiser le chemin par défaut, ainsi que la ComboBox de sélection du type de conversion.
Private Sub Form_Load()
Lorsqu’on clique sur le bouton de conversion, on veut :
- lancer TopSolid ou se brancher dessus s’il est déjà lancé.
- ouvrir chaque fichier Top ou Draft contenu dans le répertoire sélectionné.
- enlever le suffixe pour déterminer le nom du fichier final.
- mettre le bon suffxe en fonction du type de conversion choisi.
- sauvegarder les fichiers.
- fermer les documents
- à la fin, relâcher TopSolid