目录
今天学习如何创建圆弧并创建封装函数
一、 创建圆弧 类 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