Désormais, nous allons coder notre module destiné à ZWCAD.
Vérifier tout d'abord que tout les pré-requis sont “installés” .
On va créer une boite de dialogue qui lors du clic sur un bouton, va nous afficher un cercle à l’écran.
Tout
d’abord on créer un nouveau projet et l’on choisit un modèle
“bibliothèque de classe”. Ensuite on ajoute un nouvel élément à notre
projet: une “boîte de dialogue”.
On va faire en sorte qu’elle ressemble à celle présentée ci-dessous:
On ne va pas modifier le code de cette boîte de dialogue !
Classe Cercle.vb
Ensuite on va créer une nouvelle classe “Cercle.vb” où l’on écrira le
code concernant le cercle que l’on va créer. (clic droit > nouvel
élément ....)
Dans cette classe on va tout d’abord écrire tout les attributs dont nous avons besoin.
On définit d'abord l’accès au document actif ZwCad, à la base de donnée de ce document.
Dans cette classe on va tout d’abord écrire tout les attributs dont nous avons besoin.
On définit d'abord l’accès au document actif ZwCad, à la base de donnée de ce document.
Namespace Cercle
Public Class
Cercle
Public Sub Circle()
' Permet la lecture du
document ZwCad Ouvert/actif
Dim zcDoc As Document = Application.DocumentManager.MdiActiveDocument
' Permet la lecture de la
base de donnéesdu document ZwCad ouvert/actif
Dim
zcDB As Database
= zcDoc.Database
' Démarre une transaction
Using zcTran As Transaction =
zcDB.TransactionManager.StartTransaction
' Accède en lecture sur
la base de donnée
Dim
zcBLT As BlockTable
zcBLT =
zcTran.GetObject(zcDB.BlockTableId, OpenMode.ForRead)
Dim zcBLTR As BlockTableRecord
' Accède en écriture sur
la base de donnée
zcBLTR = zcTran.GetObject(zcBLT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
' On crée une instance de
Circle (on crée un nouveau cercle)
Dim zcCircle As Circle = New Circle
zcCircle.Center = New
Point3d(2, 3, 0)
zcCircle.Radius = 10
zcCircle.ColorIndex = 1
zcBLTR.AppendEntity(zcCircle)
' Ajoute un objet à la
base de donnée en l'ajoutant à la transaction
zcTran.AddNewlyCreatedDBObject(zcCircle,
True)
' Validation des modifications
zcTran.Commit()
End
Using
Dim doc As Document
doc = Application.DocumentManager.MdiActiveDocument
doc.SendStringToExecute("_ZOOM _E ", False,
False, False)
End Sub
End Class
End Namespace
Ensuite
on va démarrer une transaction de sorte que à ce que l’on puisse
accéder plus tard aux objets présent dans la base de donnée en lecture
ou en écriture avec la méthode GetObject.
Pour ajouter un objet à la base de donnée, il faut aussi l'ajouter à la transaction avec la méthode AddNewlyCreatedDBObject.
On
valide les modifications faites dans la base de donnée depuis une
transaction avec la méthode Commit (qu'il n'est donc pas nécessaire
d'invoquer s'il n'y a eu aucune modification).
On
utilise un groupe Using pour la partie concernant la transaction :
ainsi les ressources des objets ouvert seront libérés même dans le cas
où une exception interviendrait avant la fin de la transaction.
A
la fin du ‘Using’, on utilise une ligne de code
“doc.SendStringToExecute(“_Zoom_E”,...)” qui nous sert à écrire
directement dans l’interpréteur de commande de ZWCad la commande
“_ZOOM_E” qui nous permet de faire un zoom étendue. Ainsi notre cercle
apparaît directement et à la bonne échelle.
Classe Main
Tout
d’abord, on définit le nom de la commande avec laquelle on pourra
appeler notre programme sous
ZwCad+.’<CommandMethod(“nomCommande”)> _
Dans
notre classe Main, nous allons également créer une instance de notre
boite de dialogue ‘Dialog1’. C’est avec cette instance que nous allons
pouvoir afficher cette boite de dialogue et utiliser les procédures
qu’elle définit.
Imports ZwSoft.ZwCAD.Runtime
Imports ZcadAp =
ZwSoft.ZwCAD.ApplicationServices.Application
Namespace AfficherCercle
Public Class SHMain
<CommandMethod("AddCircle")> _
Public
Sub AddCircle()
Dim
dlg As Dialog1
= New Dialog1()
ZcadAp.ShowModalDialog(dlg)
Dim
c As Cercle.Cercle
= New Cercle.Cercle()
c.Circle()
End Sub
End Class
End Namespace
Après
avoir afficher cette boite de dialogue et après que l’on aura appuyé
sur le bouton ‘OK’, notre programme va créer une instance de notre cercle,
et va ensuite l’afficher.
Désormais nous avons finis de coder! Il ne nous reste plus qu’à générer le code et lancer le programme sous ZwCad+.
Pour générer le code: [Générer -> Générer NomProjet/Solution]
Ensuite
on lance ZwCad+. Tapez la commande “netload”: si celle-ci n’est pas
reconnue c’est que les deux dll fournies, n’ont pas été placées dans le
dossier d’installation de ZwCad+. Sinon vous pouvez rechercher votre dll
générée par Visual Studio.
Vérifiez
bien le chemin indiqué pour la dll générée [Projet -> Propriétés
-> Compiler -> Chemin de sortie de la génération]
Sélectionnez
votre dll. Ensuite tapez le nom de la commande que vous avez définit
dans notre programme.
Normalement nous avons cela qui apparait à l'écran :
Et lorsque l’on appuie sur OK, un cercle rouge apparaît à l’écran.
Aucun commentaire:
Enregistrer un commentaire