目录
Line对象说明
Line对象为CAD中的直线,什么是直线,严格来说CAD中的直线并非数学中定义的直线,实际上CAD的直线只是一个线段而已!那么在数学上我们怎么去创建一条线段的呢?如果要创建一条线段,我们肯定要知道线段的起点和终点,也就是平时说的两点一线。因此,CAD中的Line对象最重要的两个属性分别是StartPoint(起点)和EndPoint(终点),这两个属性都是属于Point3d类(你可以理解成三维点),要想创建一个有效的Line对象,我们只需要设置好StartPoint(起点)和EndPoint(终点)即可。
Line对象参照如下:
public class Line : Curve
{
public Line();
public Line(Point3d pointer1, Point3d pointer2);
protected internal Line(IntPtr unmanagedObjPtr, bool autoDelete);
[UnitType(UnitType.Angle)]
public double Angle { get; }
public Vector3d Delta { get; }
public override Point3d EndPoint { get; set; }
[UnitType(UnitType.Distance)]
public double Length { get; }
public Vector3d Normal { get; set; }
public override Point3d StartPoint { get; set; }
[UnitType(UnitType.Distance)]
public double Thickness { get; set; }
}
Point3d对象参照如下(部分):
public struct Point3d : IFormattable
{
public Point3d(double[] xyz);
public Point3d(PlanarEntity plane, Point2d point);
public Point3d(double x, double y, double z);
public double this[int i] { get; }
public static Point3d Origin { get; }
public double X { get; }
public double Y { get; }
public double Z { get; }
...
}
创建一个Line对象
根据上一节内容所学,我们先打开VS新建类库(不会的同学翻上一节内容),项目名称改成“LineExam"。
添加引用:accoremgd.dll、acdbmgd.dll、acmgd.dll(每次创建新类库都需要添加,这三个dll文件是整个CAD二次开发中使用最多的且必不可少的)
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
新建主方法:CreateLine,并添加标识[CommandMethod("LineExam")]代码如下:
[CommandMethod("LineExam")]
public void CreateLine()
{
}
( CommandMethod说明:该方法为Cad二次开发程序提供了程序入口,是建立程序与Cad关联的关键手段,一般的用法为:CommandMethod(command),其中command为自定义的CAD命令,为字符串格式,在CAD加载插件时会将命令注册到CAD,但是如果自定义的命令跟原CAD或已安装的插件命令产生重复则会注册失败,会导致该我们注册的命令无效,解决方法就是重新改一下command就行)
新建Line对象实例
Line L = new Line();
由于创建一个Line对象需要StartPoint(起点)和EndPoint(终点),那么我们首先创建两个Point3d类,分别为:Start和End(参照上文Point3d类),代码如下:
Point3d Start = new Point3d(0, 0, 0);//创建一个坐标为(0,0,0)的三维点
Point3d End = new Point3d(100, 100, 0);//创建一个坐标为(100,100,0)的三维点
分别将Start和End赋值给Line对象的属性StartPoint和EndPoint,代码如下:
L.StartPoint = Start;//添加直线起点
L.EndPoint = End;//添加直线终点
到这一步,我们的Line对象就已经创建完成了,我们生成一下解决方案,打开CAD,命令行输入:NETLOAD,找到我们生成的dll文件,并加载到CAD,如下图:
命令行输入命令:LineExam 然后回车,这时候你就会发现CAD没有任何反应,别担心,代码是没有任何问题的,我们的Line对象的确创建成功了,但是为什么图上没有?因为CAD创建任何图形对象都只是暂存在内存之中,要想在图上显示出来,必须把创建的图形对象添加到数据库中,具体怎么添加,我们下一节继续说。
本节内容代码
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
namespace LineExam
{
public class Class1
{
[CommandMethod("LineExam")]
public void CreateLine()
{
Line L = new Line();//创建Line实例
Point3d Start = new Point3d(0, 0, 0);//创建一个坐标为(0,0,0)的三维点
Point3d End = new Point3d(100, 100, 0);//创建一个坐标为(100,100,0)的三维点
L.StartPoint = Start;//添加直线起点
L.EndPoint = End;//添加直线终点
}
}
}
(谢谢大家观看,对本节内容有疑问或者在CAD开发学习过程中遇到的问题的都可以在评论区留言或者直接私信笔者)