目录
今天学习如何创建圆弧并创建封装函数
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);
- }
- }
- }
cs
可以设置断点调试,能够看到第二和第三函数运行后点坐标和角度都发生变化。
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);
cs
写在 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 ObjectId AddArcToModelSpace(this
cs