目录

Line对象说明

创建一个Line对象


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.dllacdbmgd.dllacmgd.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类,分别为:StartEnd(参照上文Point3d类),代码如下:

Point3d Start = new Point3d(0, 0, 0);//创建一个坐标为(0,0,0)的三维点
Point3d End = new Point3d(100, 100, 0);//创建一个坐标为(100,100,0)的三维点

分别将StartEnd赋值给Line对象的属性StartPointEndPoint,代码如下:

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开发学习过程中遇到的问题的都可以在评论区留言或者直接私信笔者)

C# Cad二次开发新手入门系列教程(二)Line对象相关推荐

  1. C# Cad二次开发新手入门系列教程(一)开发环境搭建

    目录 前言 开发需要做什么准备? 编写自己的第一个程序 前言 本课程主要针对刚接触Cad二次开发或者准备入门Cad二次开发的朋友,笔者是用的C#进行开发,在该系列教程内,笔者会带着大家从最基础的开发到 ...

  2. Windchill 二次开发新手入门常用的API

    Windchill_二次开发新手入门常用的API 1.根据零件名称/编码 得到该零件 wt.clients.prodmgmt.WTPartHelper.findPartByName(name) ;   ...

  3. python面向对象教程_Python入门系列教程3-面向对象

    课程咨询.获取课件.技术交流直接加入博学谷在线学习:631731828 课程简介 本课程是Python系列入门课程的第三阶段,该阶段我们会学习面向对象(OOP)这一重要的编程思想.学习的知识点主要包括 ...

  4. 安卓开发基础入门系列教程

    第一章:环境搭建与开发相关(已完结 10/10) https://blog.csdn.net/coder_pig/article/details/50000773 Android基础入门教程--1.1 ...

  5. 易语言零基础新手入门系列教程 第一课

    机器人小鑫易语言源码(作业用): 机器人小鑫源码 - 第一课.zip 视频教程文字版: 新手学习易语言的几点建议 1.由浅入深.由易到难.循序渐进,切勿急功近利,想一步登天! 这是学习的一般规律,学习 ...

  6. ENVI入门系列教程---二、图像分析---11.分类后处理

    every blog every motto: Live beautifully, dream passionately, love completely https://blog.csdn.net/ ...

  7. SEO新手入门系列2022(二):SEO 101

    这是<SEO新手入门系列教程>的第二篇文章,一看标题就应该清楚这篇文章讲的是SEO基础知识,没有任何高大上的东西,如果对SEO基本概念有了解的朋友可以跳过不需要看,但是如果你是半路出家的S ...

  8. Android视频录制从不入门到入门系列教程(一)————简介

    一.WHY Android SDK提供了MediaRecorder帮助开发者进行视频的录制,不过这个类很鸡肋,实际项目中应该很少用到它,最大的原因我觉得莫过于其输出的视频分辨率太有限了,满足不了项目的 ...

  9. C#微信公众号开发系列教程二(新手接入指南)

    此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教 ...

最新文章

  1. 腾讯会议又一黑科技,屏蔽超过 200 种会议噪声是如何做到的?
  2. R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、使用interaction.plot函数在双因素方差分析中可视化交互作用(Interaction)
  3. virtualbox+vagrant学习-2(command cli)-16-vagrant snapshot命令
  4. python爬虫个人如何挣钱-个人利用Python爬虫技术怎么挣钱
  5. vgg11/13/16/19-pytorch实现
  6. scrapy 安装_安装scrapy时出错
  7. 1.3 Go语言基础之数据类型
  8. ORACLE EBS常用表及查询语句(最终整理版)
  9. 剑指 Offer 09. 用两个栈实现队列(相邻相同操作只需要移动一次)
  10. Spring Boot 数据国际化
  11. 别惹老黄!英伟达遭网络攻击后,反手就把黑客黑了
  12. 纵坐标范围_探索频率范围与频响的奥秘
  13. 【win10.win7】在win10系统里面安装win7系统(亲测有效,方便快捷,无需自己设置开机启动项)
  14. 停课集训 11.30
  15. 线性调频信号(chirp signal)
  16. excel两列数据对比找不同_Excel教程:两列数据找不同最简单的方法
  17. 爬虫出现Forbidden by robots.txt
  18. 【技术贴】ppt2003更换图片|更换带有动作特效的图片|替换ppt图片
  19. 关于安装Office之后,右键新建菜单中没有Word、PPT、Excel选项
  20. 以大学生活为主题html,大学生活散文800字范文-以校园生活为话题的抒情散文800字?...

热门文章

  1. pycharm中basemap的安装
  2. insmod源码分析
  3. 腾讯云GPU服务器部署Ai绘画Stable Diffusion 小白可用
  4. A Survey of Simultaneous Localization and Mapping
  5. Android音视频分离和合成
  6. Linux 常用SIG信号及其键值
  7. 迈克菲收购NitroSecurity提供更为安全的服务
  8. 南非世界杯 小组赛 荷兰vs丹麦
  9. 构建LibreOffice Android
  10. php工程师需要掌握的知识体系