ZWCAD .NET Developing Guide
ZWCAD .NET Developing Guide
NETelementary guidance
CONTENT
Operating environments ................................................................................................................ 1
Create a project and set properties ............................................................................................. 1
1. Create a project .............................................................................................................. 1
2. Add reference.................................................................................................................. 2
3. Specify the version of framework ................................................................................. 4
4. Debug Setting ................................................................................................................. 4
Run the DLL file .............................................................................................................................. 5
Sample code ................................................................................................................................... 5
Operating environments
CADplatform: ZWCAD
IDE:Visual studio 2010
.NETframework: .NETFramework 4.0
.NETlibrary files: ZwManaged.dll and ZwDatabaseMgd.dll
Development language: VB.NET or C# etc.
Select the “References” taband click on “Add” from the project properties, and select “Browse”.
Add reference to ZwManaged.dll and ZwDatabaseMgd.dll at the installationfolder of ZWCAD,
like the image below.
The result should be like in the following image.
Additionally, as we will use some COM features with our project, add reference to ZWCAD.exe
in the same folder.The result should be like in the following image.
Finally, change the property “Copy Local” of ZwDatabaseMgd and ZwManaged to False.
In .NET we need to import the namespace we want to use. The code inside class1.vb will look
like the following code:
Imports ZWCAD
4. Debug Setting
Select the “Debug” taband specify ZWCAD.ext as the Start external programfrom the
project properties.
Run the DLL file
After building a project, a dll file named as project’s name will be generated in the path
of …\bin\Release\.Start ZWCAD and run NETLOAD command to load the DLL file. And then
you can run commands which are registeredin the code.
Sample code
The following example program is executing the AddCircle command in the command line, will
create a red circle with radius of 10 in the drawing and center of the circle is (2, 3, 0).
Steps:
1. Follow the steps above to create a project and add reference. And then copy andpaste the
bellow codes to the Class1.vb file.Overwrite the original code.
Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Geometry
Namespace TEST
Public Class SHMain
<CommandMethod("AddCircle")> _
Public Sub AddCircle()
Dim zcDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim zcDB As Database = zcDoc.Database
Using zcTran As Transaction = zcDB.TransactionManager.StartTransaction
Dim zcBLT As BlockTable
zcBLT = zcTran.GetObject(zcDB.BlockTableId, OpenMode.ForRead)
Dim zcBLTR As BlockTableRecord
zcBLTR = zcTran.GetObject(zcBLT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
Dim zcCircle As Circle = New Circle
zcCircle.Center = New Point3d(2, 3, 0)
zcCircle.Radius = 10
zcCircle.ColorIndex = 1
zcBLTR.AppendEntity(zcCircle)
zcTran.AddNewlyCreatedDBObject(zcCircle, True)
zcTran.Commit()
End Using
zcDoc.SendStringToExecute("_ZOOM E ", False, False, False)
End Sub
End Class
End Namespace
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using ZwSoft.ZwCAD.ApplicationServices;
using ZwSoft.ZwCAD.Runtime;
using ZwSoft.ZwCAD.DatabaseServices;
using ZwSoft.ZwCAD.Geometry;
namespace TEST
{
public class SHMain
{
[CommandMethod("AddCircle")]
public void AddCircle()
{
Document zcDoc = Application.DocumentManager.MdiActiveDocument;
Database zcDB = zcDoc.Database;
Transaction ZcTran = zcDoc.TransactionManager.StartTransaction();
using (ZcTran)
{
BlockTable zcBLT = (BlockTable)ZcTran.GetObject(zcDB.BlockTableId,
OpenMode.ForRead);
BlockTableRecord zcBLTR =
(BlockTableRecord)ZcTran.GetObject(zcBLT[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
Circle zcCircle = new Circle();
zcCircle.Center = new Point3d(2, 3, 0);
zcCircle.Radius = 10;
zcCircle.ColorIndex = 1;
zcBLTR.AppendEntity(zcCircle);
ZcTran.AddNewlyCreatedDBObject(zcCircle, true);
ZcTran.Commit();
}
zcDoc.SendStringToExecute("_ZOOM E ", false, false, false);
}
}
}
2. Go to menu File, and then select Build->Build ClassLibrary1 (the ClassLibrary1 is project’s
name) to build the project.
After building the program, the result will be shown in the Output window as shown below.