中望CAD二次开发(一)——开发环境配置

本次开发环境我们选择

  • 中望CAD2023
  • Visual studio 2022
  • 开发语言C#

创建一个项目

添加引用

  • 在解决方案资源管理器中右键点击引用然后点击添加引用...
  • 切换到"浏览"界面并点击浏览按钮,在ZWCAD安装目录下选中ZwManaged.dll和ZwDatabaseMgd.dll。添加后如下图所示:.

编写第一个程序

新建一个Main.cs文件,写入以下代码

C# 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using ZwSoft.ZwCAD.ApplicationServices;
using ZwSoft.ZwCAD.DatabaseServices;
using ZwSoft.ZwCAD.EditorInput;
using ZwSoft.ZwCAD.Geometry;
using ZwSoft.ZwCAD.Runtime;
namespace WebCAD1
{
    public class Main
    {
        [CommandMethod("AddCircle")]
        public void AddCircle()
        {
            Document zcDoc = ZwSoft.ZwCAD.ApplicationServices.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);
        }
    }
}

测试

设置启动外部程序,选择ZWCAD.exe

点击播放盒绿色三角形启动

启动后在命令行输入netload

选择项目路径下Debug文件夹中的编译好的.dll文件

输入AddCircle回车

屏幕中心出现一个圆

恭喜你,环境配置成功!

相关推荐
花间相见1 分钟前
【计算基础|Redis01】【上手】安装连接、配置与通用命令
数据库·后端·面试
我命由我1234511 分钟前
6-3.Python 异常处理 - 异常处理进阶(else 块与 finally 块、异常传递、自定义异常)
开发语言·前端·数据库·后端·python·学习·java-ee
深入云栈17 分钟前
Netty 4.2.x 源码深度解析 (二十一):Pipeline 事件传播 —— Inbound 与 Outbound 的双向流转
java·后端·架构
卷无止境24 分钟前
长篇写作 Skill 横向盘点:从单文件指令到多智能体流水线
后端·python
斯维赤1 小时前
微信步数的10点定时推送,看似简单,实则暗藏玄机
java·后端
RobinDevNotes1 小时前
crontab 管不住时,该上 Airflow 了
后端
系统集成-鹰翔1 小时前
ERP接口月度统计少了零单月份:SQLite分组与最近三个月均值排查
javascript·数据库·经验分享·后端
我的xiaodoujiao1 小时前
Django 权限系统项目实战详细图文教程 3--系统登录功能实现
后端·python·django
SimonKing1 小时前
号外号外,Stream-Nexus推送项目支持集群部署了
java·后端·程序员
老王IT1 小时前
Rust开发环境搭建教程
开发语言·后端·rust