AutoCAD2019+vs2019+C# 二次开发学习笔记day04(持续更新)

这篇博客详细记录了使用C#在AutoCAD2019中进行二次开发的过程,重点讲解了创建圆弧的三种方式,包括创建Arc类、三点画圆弧的CircularArc3d类,并提供了代码实例和封装函数。此外,还介绍了判断三点是否共线和计算向量与x轴夹角的辅助函数。
摘要由CSDN通过智能技术生成

目录

一、 创建圆弧  类 Arc

1、代码记录

2、封装函数

二、 三点画圆弧   CircularArc3d

1、代码记录

2、封装函数

三、起点、圆心、角度 绘圆弧

1、代码记录

2、封装函数


今天学习如何创建圆弧并创建封装函数

一、 创建圆弧  类 Arc

1、代码记录

Arc 对应构造函数有三种

//空的

public Arc();

//给定一个中心点、一个半径、一个起始角度、一个终止角度
public Arc(Point3d center, double radius, double startAngle, double endAngle);

//给定一个中心点、一个平面向量、一个半径、一个起始角度、一个终止角度
public Arc(Point3d center, Vector3d normal, double radius, double startAngle, double endAngle);

新建一个类 ArcTest.cs

输入代码,写在 ArcTest.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 Yztest4
{
    public class ArcTest
    {
        [CommandMethod("Arctest")]
        public void Arctest()
        {
            Arc arc1 = new Arc();
            Arc arc2 = new Arc(new Point3d(50, 50, 0), 20, Math.PI / 4, Math.PI / 2);
            Arc arc3 = new Arc(new Point3d(100, 100, 0), new Vector3d(0, 0, 1), 20, Math.PI / 4, Math.PI / 2);
        }
    }
}

可以设置断点调试,能够看到第二和第三函数运行后点坐标和角度都发生变化。

Vector3d normal 二维平面的话,指定为(0,0,1)

 如果使用空的构造函数,就需要指定一些参数,代码如下,写在 ArcTest.cs里

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;
//这里声明一个角度,通过之前写的角度弧度互换的函数,将角度换成弧度
Arc arc2 = new Arc(new Point3d(50, 50, 0), 20, startAngle.DegreeToAngle(), 90);
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);

2、封装函数

写在 AddEntityTool.cs 里  

/// <summary>
/// 绘制圆弧
/// </summary>
/// <param name="db">图形数据库</param>
/// <param name="center">圆弧所在圆的圆心点</param>
/// <param name="radius">圆弧的半径</param>
/// <param name="startDegree">圆弧的起始角度</param>
/// <param name="endDegree">圆弧的终止角度</param>
/// <returns></returns>
public static Objec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值