美文网首页
中望CAD下C#开发独立运行EXE程序

中望CAD下C#开发独立运行EXE程序

作者: qlaiaqu | 来源:发表于2021-08-25 10:20 被阅读0次

    中望CAD的C#二次开发资料非常的匮乏,反正我在官方基本上找不到资料,在CAD软件中输入HELP弹出的帮助窗口,例子全是VBA的,都什么年代了,谁还用VBA啊。
    相对于AUTOCAD,中望CAD还支持一种不同的开发方式,可以开发一个独立的EXE程序,但是前提仍然是依赖本机已经安装了中望CAD。

    1.新建工程

    正常新建一个C#的Console Applicaiton即可。

    2.依赖

    C#依赖库就在已经安装的中望CAD目录下,加入以下几个DLL即可。

    ZWCAD.exe
    ZwDatabaseMgd.dll
    ZwManaged.dll
    

    3.示例代码

    整个逻辑跟用一个普通库一样,底层通信完全屏蔽掉了。
    在实际测试中发现,该种方式在试用版(或者你懂得版本)使用时,迭代所有实例对象会出现崩溃,但是正版没问题。说实话,如果把这个当一个DWG读写库来用,还不如几百美元买一个ODA两年的最便宜的授权,远比这种模式好用多了。

    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)
            {
                //参数校验
                if (!File.Exists(option.File))
                {
                    return;
                }
    
                ZcadApplication app = new ZcadApplication();
                app.Visible = false;//不显示窗口
    
                //打开文档,或者新建文档,此处第二个参数表示只读模式打开
                ZcadDocument zdocument = app.Documents.Open(option.File, true);
                if (zdocument != null)
                {
                    //数据库
                    ZcadDatabase zdatabase = zdocument.Database;
                    //模型空间,有何种方便添加对象的函数。
                    ZcadModelSpace modelSpace = zdocument.ModelSpace;
                    //遍历所有实体
                    for (int i = 0; i < modelSpace.Count; ++i)
                    {
                        Console.WriteLine(modelSpace.Item(i).Handle);
                    }
                    
                    //如果数据有修改,需要调用ZcadDocument .Save
                    zdocument.Close(false, null);
                }
    
                //关闭ZWCAD
                app.Quit();
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:中望CAD下C#开发独立运行EXE程序

          本文链接:https://www.haomeiwen.com/subject/wijsiltx.html