c#cad 创建-文本(一)

运行环境 vs2022 c# cad2016  调试成功

一、代码说明

该代码是一个用于在AutoCAD中创建文本的命令。

首先,通过添加using语句引用了需要使用的Autodesk.AutoCAD命名空间。

然后,在命名空间CreateTextInCad下定义了一个名为CreateTextCommand的类,用于实现创建文本的命令。

CreateTextCommand类中,使用[CommandMethod]特性定义了一个名为CreateText的命令方法。这个方法将在AutoCAD中执行创建文本的操作。

CreateTextCommand方法中,首先获取当前活动文档的Document对象、数据库对象、编辑器对象,以及启动一个事务Transaction

然后,通过BlockTableId获取模型空间的BlockTableRecord对象。

接下来,定义了一个起始位置startPoint和要创建的文本内容textContent

通过使用using语句创建一个新的事务,并在事务中执行具体的操作。

在事务中,首先创建一个Text3d对象,并将其添加到模型空间中。

然后,使用tr.AddNewlyCreatedDBObject方法将新创建的文本对象添加到事务中,以便在提交事务时进行保存。

最后,在编辑器中输出一条消息,表示文本已成功创建。

整个过程在一个事务中进行,以确保对数据库的修改是具有原子性的,即要么全部执行成功,要么全部回滚。

代码最后通过[assembly: CommandClass(typeof(CreateTextInCad.CreateTextCommand))]特性将CreateTextCommand类注册为AutoCAD命令。

用户在AutoCAD中可以通过输入CreateText命令来执行这段代码创建文本。

二、完整代码

using System;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;

[assembly: CommandClass(typeof(CreateTextInCad.CreateTextCommand))]

namespace CreateTextInCad
{
    public class CreateTextCommand
    {
        [CommandMethod("CreateText")]
        public void CreateTextCommand()
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;
            Transaction tr = db.TransactionManager.StartTransaction();
            BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
            BlockTableRecord btr = tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
            Point3d startPoint = new Point3d(0, 0, 0); // 文本起始位置
            string textContent = "Hello, AutoCAD!"; // 要创建的文本内容
            using (tr)
            {
                // 创建文本对象并添加到模型空间中
                Text3d textEntity = new Text3d(startPoint, textContent);
                btr.AppendEntity(textEntity);
                tr.AddNewlyCreatedDBObject(textEntity, true);
                ed.WriteMessage("\n文本已创建!");
            }
        }
    }
}

 图例

//感谢大家的点赞,收藏,转发,关注   

相关推荐

  1. C# CAD界面介绍(

    2024-02-06 05:48:01       32 阅读
  2. vscode 创建个测试单个js文件的项目

    2024-02-06 05:48:01       6 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-06 05:48:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-06 05:48:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-06 05:48:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-06 05:48:01       18 阅读

热门阅读

  1. SpringBoot+Slf4j+Logback日志记录方案

    2024-02-06 05:48:01       30 阅读
  2. git的奇特知识点

    2024-02-06 05:48:01       29 阅读
  3. 各种编程语言送祝福:2024龙年大吉

    2024-02-06 05:48:01       31 阅读
  4. STM32_CAN调试模式解释:静默、回环、静默回环

    2024-02-06 05:48:01       36 阅读
  5. 使用Oracle数据库创建定时任务的方法

    2024-02-06 05:48:01       26 阅读
  6. 转换函数

    2024-02-06 05:48:01       31 阅读
  7. [Python进阶] 数据处理:Numpy入门

    2024-02-06 05:48:01       27 阅读
  8. 蓝桥杯刷题--python-1

    2024-02-06 05:48:01       39 阅读
  9. 初始化整形数组,后从小到大冒泡排序

    2024-02-06 05:48:01       34 阅读
  10. 基于单片机的LED显示系统

    2024-02-06 05:48:01       29 阅读