获取到一个图形对象 : AcadDocument oAcadDocument = oAcadApplication.Documents.Open(FileName, null, null);

有了图形对象,我们就可以给图形对象添加跟着线条图形

double[] StartPoint = new double[3] { 10, 10, 0 };

double[] EndPoint = new double[3] { 50, 50, 0 };

1 画一条直线

AcadLine oAcadLine = oAcadDocument.ModelSpace.AddLine(StartPoint , EndPoint );

如果是虚线,则设置属性值  oAcadLine .LinetypeScale = 0.5;

可以给线条设置一下属性,如颜色:oAcadLine .color = ACAD_COLOR.acRed;

2 画一个圆 :传入圆心坐标和半径长度:double radius=10;

oAcadDocument.ModelSpace.AddCircle(EndPoint , radius);

3 画弧线,有时候还需要话一条弧线 ,画弧度,使用π表示弧度

var ARC = oAcadDocument.ModelSpace.AddArc(EndPoint , radius, Math.PI / 2, Math.PI * 1.5);

4 添加文字说明  double fontsize=5;

oAcadDocument.ModelSpace.AddText("玻璃", EndPoint , fontsize);

基本的线条描绘已经知道了,就可以组合画其他图形。

5 画一个方框

 public static void CoordinatePointAssignment(ref double[] CoordinatePoint,double x,double y,double z){CoordinatePoint[0] = x;CoordinatePoint[1] = y;CoordinatePoint[2] = z;}
//画方框,得知道四个角的坐标
public static void DrawRectangleXX(ref AcadDocument oAcadDocument, double[] StartPoint,  double Width, double Height"){//--- Start_Point 起始坐标点double[] OnePoint = new double[PointArray]; double[] TwoPoint = new double[PointArray];double[] ThreePoint = new double[PointArray]; double[] FourPoint = new double[PointArray];double x, y;x = StartPoint[0]; y = StartPoint[1];//起始点是 左上角的 点CoordinatePointAssignment(ref OnePoint, x, y, 0);CoordinatePointAssignment(ref TwoPoint, x + Width, y, 0);CoordinatePointAssignment(ref ThreePoint, x + Width, y - Height, 0);CoordinatePointAssignment(ref FourPoint, x, y - Height, 0);//有了坐标--最后绘制连线,就变成了方框AcadLine oAcadLine;oAcadLine = oAcadDocument.ModelSpace.AddLine(OnePoint, TwoPoint);oAcadLine = oAcadDocument.ModelSpace.AddLine(TwoPoint, ThreePoint);oAcadLine = oAcadDocument.ModelSpace.AddLine(ThreePoint, FourPoint);oAcadLine = oAcadDocument.ModelSpace.AddLine(FourPoint, OnePoint);}

6 加一个标注说明:如下图,标注一下线条的宽度754。

/// <summary>/// 文本坐标点/// </summary>/// <param name="TaggedCoordinates"></param>输出结果/// <param name="StartPoint"></param>起始点/// <param name="EndPoin"></param>终点/// <param name="TypeValue"></param>值类别/// <param name="Deviate"></param>偏移值public static void TextCoordinatePoint(ref double[] TaggedCoordinates,double[] StartPoint, double[] EndPoin,int TypeValue, double Deviate){if (TypeValue == 1){//---横向向的标注TaggedCoordinates[0] = (StartPoint[0] + EndPoin[0]) / 2;TaggedCoordinates[1] = StartPoint[1] + Deviate;TaggedCoordinates[2] = StartPoint[2];}else{//---纵向的标注TaggedCoordinates[0] = StartPoint[0] + Deviate;TaggedCoordinates[1] = (StartPoint[1] + EndPoin[1]) / 2;TaggedCoordinates[2] = StartPoint[2];}}/// <summary>/// 添加标注/// </summary>/// <param name="oAcadDocument">文档对象</param>/// <param name="StartPoint">开始位置</param>/// <param name="EndPoint">结束位置</param>/// <param name="TypeValue">1位横向标注</param>/// <param name="Deviate">正负值位为开口方向</param>/// <param name="text">标注内容</param>public static void Addtext(ref AcadDocument oAcadDocument, double[] StartPoint, double[] EndPoint, int TypeValue, double Deviate,string text,int textH=0){AcadDimAligned oAcadDimAligned; double[] uTemporaryPoint = new double[3];TextCoordinatePoint(ref uTemporaryPoint, StartPoint, EndPoint, TypeValue, Deviate);oAcadDimAligned = oAcadDocument.ModelSpace.AddDimAligned(StartPoint, EndPoint, uTemporaryPoint);oAcadDimAligned.TextOverride = text;if(textH>0) oAcadDimAligned.TextHeight = textH;}

最后使用: Addtext(ref oAcadDocument, StartP, EndP, 1, -10,  "754");

线条的开始坐标 StartP ,结束坐标 EndP,1 方法里表示横向标注,-10表示坐标向下距离10个像素,画双箭头标注754

CAD绘图,无非就是在图形对象里画线画框画圆,只要知道坐标开始,坐标画到哪里了,再在此位置加入我们要画的对应图形就行了,下面是我完成的一张比较简单的出图:

c# CAD二次开发入门学习二相关推荐

  1. Revit二次开发入门捷径_升维学习、降维打击

    问题 入门Revit二次开发有捷径吗? 答案 量子力学:有也没有.(皮一下:叠加态) 没有:目的地只有一个,路只有一条,学习没有捷径. 有:虽然路只有一条,但我们可以借助交通工具,缩短时间就是捷径. ...

  2. python能二次开发cad么_2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)

    本项目使用手动创建,意为不使用SDK模板. 从Visual Studio的"文件"下拉菜单中,选择"新建"->"项目...". 在出现 ...

  3. Revit二次开发入门秘籍 01如何入门

    关于入门 我想在开始学习之前大家应该更需要知道如何入门,对比一下我们在学校的学习,我们需要书.老师-书上呢,是有所有的知识点,有重要的,有不重要的,而老师呢,会知道哪些是重点,也就是我们考试要考的,教 ...

  4. 游戏开发入门(二)游戏中的设计模式

    视频链接:游戏开发入门(二)游戏中的设计模式(3节课 时常:约2小时40分钟) 该视频主要围绕游戏中常见的设计模式展开讲解并实践,需要大家多多实践与理解 笔记与总结(请先学习视频内容): 1.有必要深 ...

  5. Flow-3D二次开发入门 教程

    Flow-3D二次开发入门 教程 加载体热源 (默认的,没有任何热源) General Physics Fluid设定 Meshing & Geometry Geometry meshing ...

  6. Revit二次开发入门相关安装和配置

    Revit二次开发入门相关安装和配置 最近一周,由于项目需要,需要做一个基于Revit的二次开发项目,也特意初步自学了Revit二次开发的相关知识.由于学习时间过短,了解到的只是皮毛,所有还希望大家能 ...

  7. Revit二次开发入门关键

    学会学习 什么是学习? 学得:通过学,获得的知识. 假会!眼睛:我会了!脑子:我会了!手:不,你不会!!! 习得:通过练习,获得的知识. 真会!手:我会了!基本不用经过太多的思考! 没意识到:好运~! ...

  8. 微信小程序云开发入门(二)-数据库详解

    微信小程序云开发入门(二)-数据库详解 接上一篇:微信小程序云开发入门(一) 摘要: 因为微信小程序云数据库有点类似传统的关系型数据库,但又有所不同.所以刚入手的时候会有点困扰,经过一段时间的学习和摸 ...

  9. 安信可PB-03蓝牙模组入门之旅 二:SDK二次开发入门,认识架构,开始点亮一盏LED。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 安信可PB-03蓝牙模组入门之旅一:Windows SDK二次 ...

最新文章

  1. spring JdbcTemplate 在项目中的浅层(5个使用场景)封装
  2. Eclipse插件使用links目录的用法
  3. USB数据线内阻对充电电流的影响
  4. OpenHarmony和HarmonyOS有什么区别?这篇文章讲清楚了
  5. sessionStorage 、localStorage 和 cookie 之间的区别(转)
  6. jQuery实现表格隔行换颜色:
  7. 信息学奥赛一本通C++语言——1086:角谷猜想
  8. Android ContentProvider 内容提供者
  9. vue.js koa2 mysql_nodejs-koa2-mysql-sequelize-jwt
  10. Kubernetes(k8s)的Pod资源清单spec.containers属性详细讲解
  11. Android快速开发推荐10个框架Android 快速开发框架:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、
  12. Makfile: [ GCC编译选项 ] >CFLAGS参数 -c -o
  13. ios链接xcode跑自动化意外中断?可以用pyautogui试试
  14. python3 实现应用启动及关键字检测
  15. php懒人,关于php懒人函数的详细介绍
  16. 【微信小程序】粤语教学平台-粤言粤语
  17. 再一次打破局限:“华为云会议”和“畅连”到底连接了什么?
  18. 【渝粤题库】广东开放大学 文化创意学 形成性考核
  19. python如何替换文件部分内容_python 实现批量替换文本中的某部分内容
  20. 8005端口导致的阿里云上的tomcat无法外部访问

热门文章

  1. 从源码全面解析 dubbo 服务端服务调用的来龙去脉
  2. php 前台include用法,php include与require用法介绍
  3. java集合类中的迭代器模式
  4. 基于SpringBoot框架Wbe Magic爬虫框架爬取招聘信息项目(1)
  5. 用C++实现RGB转256色
  6. 让人工智能机器人学会自我情绪管理
  7. 计算机组成原理——控制器的功能和工作原理
  8. 任天堂底座方案,支持按键切换TV模式!
  9. 2017年全球大数据产业报告之海外篇(终结篇)
  10. 关于ShareSDK在Xcode14上面发生错误的相关解决办法