Tạo 1 ứng dụng AutoCAD .NET , Civil 3D .NET với MS Visual C#

Ngô Quốc Việt October 30, 2012 0

Chú thích: Đầu đề bài viết đã thay đổi so với bản gốc. Đoạn in nghiêng trong bài viết là bổ sung thêm của Civil 3D VN

Tạo Project :
1. Khởi động Microsoft Visual C#
2. Chọn menu : FILE → “New Project …”. Hộp thoại New Project xuất hiện :
Posted Image
3. Chọn template “Class Lybrary” như trong hình và nhập tên vào mục Name, trong ví dụ này tôi để mặc định là : ClassLibrary1.
4. Một Project mới đuợc tạo và giao diện như sau : C# tạo 1 file có tên Class1.cs mà ta sẽ sử dụng ở buớc viết Code.
Posted Image

Khai báo thư viện (Reference):
1. Tại cửa sổ Solution Explorer bên phải phía trên, chọn tag Reference
Posted Image
2. Click chuột phải lên tag Reference rồi chọn “Add Reference” trên menu xổ xuống . Hộp thoại “Add Reference” xuất hiện :
Posted Image
3. Chọn tag “ Browse” như trong hình và chỉ đến thư mục cài đặt AutoCad, ví dụ : C:\Program Files\AutoCAD 2010.

4. chọn 2 file : "acmgd.dll" và "acdbmgd.dll" , click OK để kết thúc.
5. Đặt thuộc tính “Copy Local” : Tại cửa sổ Solution Explorer, tag Reference click chuột phải lên file "acmgd.dll" chọn Properties : trong cửa sổ Properties, đặt thuộc tính “Copy Local” là False.
Làm tuơng tự với file "acdbmgd.dll"

Để lập trình trong Civil 3D, cần thêm vào các file sau trong thư mục cài Civil 3D, ví dụ: C:\Program Files\Autodesk\Civil 3D 2013:

+ acdbmgd.dll

+ acmgd.dll

+ accoremgd.dll

+ AecBaseMgd.dll

+ AeccDbMgd.dll

Để cho tiện, các bạn nên copy các file trên vào một thư mục để thêm vào khi cần.
Posted Image

Tạo lệnh Cad (viết code):
Để tạo 1 lệnh mới, sử dụng thuộc tính CommandMethod
ví dụ : [CommandMethod("CadViet")]

Ví dụ 1 : khai báo lệnh CadViet1 thực hiện việc xuất ra màn hình thông báo
“Chào mừng bạn đến với ứng dụng AutoCAD .NET API”

Ví dụ 2 : khai báo lệnh CadViet2 thực hiện việc tạo 1 đối tuợng TEXT có nội dung :
“Chào mừng bạn đến với ứng dụng AutoCAD .NET API”, tại vị trí do nguời dùng chọn.

Bạn Copy và Paste toàn bộ đọan code sau vào file Class1.cs

using Autodesk.AutoCAD.Geometry; 
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
namespace Gia_Bach
{
public class Cad_command
{
[CommandMethod("CadViet1")]
public static void ex1()
{
Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("Chào mừng bạn đến với ứng dụng AutoCAD .NET API!");
}
[CommandMethod("CadViet2")]
public static void ex2()
{
Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocume nt;
Editor ed = doc.Editor;
Database db = doc.Database;
PromptPointResult Pr = ed.GetPoint("\nChọn điểm đặt Text : ");
Point3d pt = Pr.Value; if (Pr.Status != PromptStatus.OK) return;
// Start a transaction
using (Transaction acTrans = db.TransactionManager.StartTransaction())
{
// Open the Block table for read
BlockTable acBlkTbl = acTrans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
// Open the Block table record Model space for write
BlockTableRecord acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
// Create a single-line text object
DBText acText = new DBText();
acText.SetDatabaseDefaults();
acText.Position = pt;
acText.Height = 0.5;
acText.TextString = "Chào mừng bạn đến với ứng dụng AutoCAD .NET API!"; acBlkTblRec.AppendEntity(acText);
acTrans.AddNewlyCreatedDBObject(acText, true);
// Save the changes and dispose of the transaction
acTrans.Commit();
}}}}

Lưu Project :

Chọn menu : FILE → “Save All …”. Hộp thoại Save Project xuất hiện, chọn đuờng dẫn thích hợp, click Save để kết thúc.

Build Project :

Chọn menu : BUILD → “Build Solution” : để tạo 1 ứng dụng.

Trong truờng hợp BUILD thành công, bạn sẽ có 1 file dll trùng tên với tên Project tại đuờng dẫn :

– “ProjectName\bin\Release\ projectName.dll “

trong đó ProjectName là tên Project bạn đã đặt ở buớc Lưu Project

Thực thi lệnh : (xem thành quả)

1. Khởi động AutoCAD

2. Tại dấu nhắc (Command ) của CAD gõ lệnh NETLOAD và chỉ đến vị trí file vừa BUILD ở trên, chọn OPEN để hoàn thành lệnh NETLOAD .

3. gõ lệnh CadViet1 hay CadViet2 để bắt đầu

Tương tự như trên, trong Civil 3D, bạn gõ lệnh NETLOAD và chọn vị trí file vừa BUILD rồi gõ tên lệnh trong mục CommandMethod

Chúc bạn thành công.

Nguồn: http://www.cadviet.com/forum/index.php?showtopic=24409 trên Cadviet.com

Leave A Response »

You must be logged in to post a comment.