Auto CAD二次开发——创建圆弧对象

学如逆水行舟,不进则退。 愿自己不忘初心,坚持积累。感谢大家的支持。

目录

1、基础知识储备

2、完整代码以及运行结果

3、代码解析


1、基础知识储备

不管是NX还是CAD作为二次开发者一定要学会看帮助文档,也就是二次开发的API,由于刚刚开始,不熟悉,先看网上流出的中文版二次开发资料,后续有了自己的想法还是要看相应版本的英文API。,如图所示是本次研究主线(创建圆弧对象)

Database 对象包括所有的图形和大部分非图形的 AutoCAD 对象。 被包含在 Database 中的一些对象有实体,符号表,命名字典。实体在 Database 中表示图纸内部的图形对象。直线、圆、圆弧、文本、填充和多段线都是实体的一个例子。用户可以在屏幕上看到一个实体并可以操作它。用户通过 Document 对象的 Database 成员属性可以访问当前文档的 Database 对象。

2、完整代码以及运行结果

完整代码:

这里用到之前的事务封装函数,具体请看Auto CAD二次开发------封装事务处理函数并绘制直线函数-CSDN博客

cs 复制代码
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CAD_CreateEntity
{
    public class ArcClass
    {
        [CommandMethod("CreateArc")]
        public void CreateArc()
        {
            //public Arc();
            //public Arc(Point3d center, double radius, double startAngle, double endAngle);
            //public Arc(Point3d center, Vector3d normal, double radius, double startAngle, double endAngle);
            Arc arc1 = new Arc();
            arc1.Center = new Point3d(0, 0, 0);
            arc1.StartAngle = -Math.PI / 4;
            arc1.EndAngle = Math.PI / 4;
            arc1.Radius = 100;

            //角度转化为弧度
            Double startAngle = 45;
            Double endAngle = 90;
            Arc arc2 = new Arc(new Point3d(50, 50, 0), 20, startAngle.AngleToDegree(), endAngle.AngleToDegree());//弧度
            Arc arc3 = new Arc(new Point3d(100, 100, 0), new Vector3d(0, 0, 1), 20, Math.PI / 4, Math.PI / 2);


            //声明图形数据库
            Database db = HostApplicationServices.WorkingDatabase;
            db.AddEntityToModelSpace(arc1, arc2, arc3);
        }
    }
}





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CAD_CreateEntity
{
    public static partial class MathBaseTool
    {
        /// <summary>
        /// 角度转化弧度
        /// </summary>
        /// <param name="degree">角度值</param>
        /// <returns>弧度值</returns>
        public static double DegreeToAngle(this double degree)
        {
            return degree * Math.PI / 180;
        }
        /// <summary>
        /// 弧度转化角度
        /// </summary>
        /// <param name="angle">弧度值</param>
        /// <returns>角度值</returns>
        public static double AngleToDegree(this double angle)
        {
            return angle * 180 / Math.PI;
        }
    }
}

运行结果:

在命令框输入NETLOAD,加载.dll,加载成功后输入CREATARC(这里为了说明我的功能,可以更具个人喜好进行设置),然后绘制出圆弧对象。

3、代码解析

代码解析

Arc圆弧对象中一共有三种方式创建。

3.1 先创建一个空的对象,在对其进行赋值。

3.2 采用中心、起始角度、终止角度进行创建(角度这里是弧度)

3.3采用中心、坐标向量(NX二次开发过的都直到这个表示什么,(0,0,1)表示XY平面,(1,0,0)表示YZ平,(0,1,0)表示XZ平面)、起始角度、终止角度进行创建(角度这里是弧度)

相关推荐
zlinear数据采集卡6 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
深澈Vincel8 小时前
我用 C# + WebView2 做了一个针对“流氓软件”的“一键清理工具“:架构实践与踩坑记录
c#
zlinear数据采集卡9 小时前
数据采集卡从入门到精通(7):流水线型ADC——级级接力,高速与高精的平衡术
开发语言·arm开发·嵌入式硬件·fpga开发·c#
阿部多瑞 ABU11 小时前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
条形码D11 小时前
DRG综合管理分析系统-目前已经支持CHS-DRG3.0
c#·drg·3.0分组器·drg分组器·chs-drg3.0分组器
Alex Gram1 天前
数据库同步工具PanguSync图文教程
java·mysql·postgresql·sqlserver·c#·数据库同步软件·数据库同步工具
头茬韭菜1 天前
第 10 篇:「Fluss 实战案例集」—— 完整解决方案与最佳实践
c#·linq·fluss
淡海水2 天前
01-05-运行时-JIT优化全景-内联去虚拟化边界检查消除
windows·c#·虚拟化·jit·内联·边界检查消除
波波0072 天前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
wujian83112 天前
怎么用千问生成word文档:从「格式崩」到「一键过」,AI导出鸭打通最后半厘米
人工智能·ai·c#·word·豆包·deepseek·ai导出鸭