中望CAD的C#二次開發(fā)資料非常的匱乏西潘,反正我在官方基本上找不到資料藻烤,在CAD軟件中輸入HELP彈出的幫助窗口澳叉,例子全是VBA的污抬,都什么年代了,誰還用VBA啊侥蒙。
相對于AUTOCAD暗膜,中望CAD還支持一種不同的開發(fā)方式,可以開發(fā)一個獨立的EXE程序鞭衩,但是前提仍然是依賴本機已經(jīng)安裝了中望CAD学搜。
1.新建工程
正常新建一個C#的Console Applicaiton即可。
2.依賴
C#依賴庫就在已經(jīng)安裝的中望CAD目錄下醋旦,加入以下幾個DLL即可。
ZWCAD.exe
ZwDatabaseMgd.dll
ZwManaged.dll
3.示例代碼
整個邏輯跟用一個普通庫一樣会放,底層通信完全屏蔽掉了饲齐。
在實際測試中發(fā)現(xiàn),該種方式在試用版(或者你懂得版本)使用時咧最,迭代所有實例對象會出現(xiàn)崩潰捂人,但是正版沒問題。說實話矢沿,如果把這個當(dāng)一個DWG讀寫庫來用滥搭,還不如幾百美元買一個ODA兩年的最便宜的授權(quán),遠(yuǎn)比這種模式好用多了捣鲸。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;
using ZWCAD;
using CommandLine;
namespace ZWCADStartup
{
internal class Program
{
public class Options
{
[Option('f', "file", Required = true, HelpText = "DWG File")]
public string File { get; set; }
}
private static void Main(string[] args)
{
Parser.Default.ParseArguments<Options>(args).WithParsed(Run);
}
private static void Run(Options option)
{
//參數(shù)校驗
if (!File.Exists(option.File))
{
return;
}
ZcadApplication app = new ZcadApplication();
app.Visible = false;//不顯示窗口
//打開文檔瑟匆,或者新建文檔,此處第二個參數(shù)表示只讀模式打開
ZcadDocument zdocument = app.Documents.Open(option.File, true);
if (zdocument != null)
{
//數(shù)據(jù)庫
ZcadDatabase zdatabase = zdocument.Database;
//模型空間栽惶,有何種方便添加對象的函數(shù)愁溜。
ZcadModelSpace modelSpace = zdocument.ModelSpace;
//遍歷所有實體
for (int i = 0; i < modelSpace.Count; ++i)
{
Console.WriteLine(modelSpace.Item(i).Handle);
}
//如果數(shù)據(jù)有修改疾嗅,需要調(diào)用ZcadDocument .Save
zdocument.Close(false, null);
}
//關(guān)閉ZWCAD
app.Quit();
}
}
}