c# CAD二次开发入门学习二
获取到一个图形对象 : 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二次开发入门学习二相关推荐
- Revit二次开发入门捷径_升维学习、降维打击
问题 入门Revit二次开发有捷径吗? 答案 量子力学:有也没有.(皮一下:叠加态) 没有:目的地只有一个,路只有一条,学习没有捷径. 有:虽然路只有一条,但我们可以借助交通工具,缩短时间就是捷径. ...
- python能二次开发cad么_2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)
本项目使用手动创建,意为不使用SDK模板. 从Visual Studio的"文件"下拉菜单中,选择"新建"->"项目...". 在出现 ...
- Revit二次开发入门秘籍 01如何入门
关于入门 我想在开始学习之前大家应该更需要知道如何入门,对比一下我们在学校的学习,我们需要书.老师-书上呢,是有所有的知识点,有重要的,有不重要的,而老师呢,会知道哪些是重点,也就是我们考试要考的,教 ...
- 游戏开发入门(二)游戏中的设计模式
视频链接:游戏开发入门(二)游戏中的设计模式(3节课 时常:约2小时40分钟) 该视频主要围绕游戏中常见的设计模式展开讲解并实践,需要大家多多实践与理解 笔记与总结(请先学习视频内容): 1.有必要深 ...
- Flow-3D二次开发入门 教程
Flow-3D二次开发入门 教程 加载体热源 (默认的,没有任何热源) General Physics Fluid设定 Meshing & Geometry Geometry meshing ...
- Revit二次开发入门相关安装和配置
Revit二次开发入门相关安装和配置 最近一周,由于项目需要,需要做一个基于Revit的二次开发项目,也特意初步自学了Revit二次开发的相关知识.由于学习时间过短,了解到的只是皮毛,所有还希望大家能 ...
- Revit二次开发入门关键
学会学习 什么是学习? 学得:通过学,获得的知识. 假会!眼睛:我会了!脑子:我会了!手:不,你不会!!! 习得:通过练习,获得的知识. 真会!手:我会了!基本不用经过太多的思考! 没意识到:好运~! ...
- 微信小程序云开发入门(二)-数据库详解
微信小程序云开发入门(二)-数据库详解 接上一篇:微信小程序云开发入门(一) 摘要: 因为微信小程序云数据库有点类似传统的关系型数据库,但又有所不同.所以刚入手的时候会有点困扰,经过一段时间的学习和摸 ...
- 安信可PB-03蓝牙模组入门之旅 二:SDK二次开发入门,认识架构,开始点亮一盏LED。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 安信可PB-03蓝牙模组入门之旅一:Windows SDK二次 ...
最新文章
- spring JdbcTemplate 在项目中的浅层(5个使用场景)封装
- Eclipse插件使用links目录的用法
- USB数据线内阻对充电电流的影响
- OpenHarmony和HarmonyOS有什么区别?这篇文章讲清楚了
- sessionStorage 、localStorage 和 cookie 之间的区别(转)
- jQuery实现表格隔行换颜色:
- 信息学奥赛一本通C++语言——1086:角谷猜想
- Android ContentProvider 内容提供者
- vue.js koa2 mysql_nodejs-koa2-mysql-sequelize-jwt
- Kubernetes(k8s)的Pod资源清单spec.containers属性详细讲解
- Android快速开发推荐10个框架Android 快速开发框架:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、
- Makfile: [ GCC编译选项 ] >CFLAGS参数 -c -o
- ios链接xcode跑自动化意外中断?可以用pyautogui试试
- python3 实现应用启动及关键字检测
- php懒人,关于php懒人函数的详细介绍
- 【微信小程序】粤语教学平台-粤言粤语
- 再一次打破局限:“华为云会议”和“畅连”到底连接了什么?
- 【渝粤题库】广东开放大学 文化创意学 形成性考核
- python如何替换文件部分内容_python 实现批量替换文本中的某部分内容
- 8005端口导致的阿里云上的tomcat无法外部访问