我的AutoCAD二次开发之路 (一)
2013-10-29 14:47
295 查看
原帖地址 http://379910987.blog.163.com/blog/static/33523797201011184552167/
今天在改代码的时候,遇到了AddVertexAt方法的用法,不甚了解,遂转载
用.NET对AutoCAD进行二次开发的时,会发现一个很奇观的现象,那就是居然没有矩形类,当然更没有什么圆角矩形了,不过这并不代表我们就不能绘制这些实体,AutoCAD中有一个很强大的类:Polyline,它可以完成直线段和圆弧混合线条的绘制。
为了使用Polyline绘制曲线,必然会用到添加顶点的方法AddVertexAt方法,该方法的原型如下:
其中第一个为点的序号,第二个为一个平面点,第三个为凸度,第四个和第五个分别为起始宽度和结束宽度。除了第三个有点难度外,其他的都好理解,下面详细介绍一下这个凸度。
根据Autodesk的说法,bulge是弓高的两倍和弦长的比值,或者是弧所对应圆心角的四分之一的正切值,如下图:
那么凸度应该为:
或者:
事实上这两个不同的定义是等价的,下面给出证明:
易知:
于是有:
可见这两种定义是完全等价的。不过,在绘制圆弧的时候,可根据具体情况的不同采用不用的方法得到b,例如已知圆心角,显然用正切的定义就很好计算凸度,而在易知两点和半径这种情况下画圆弧,则第一种定义求b会更方便。
另外需要一提的是,凸度为正时绘制的圆弧都是逆时针方向的,所以在绘图时一定要规划好,如果确实需要绘制顺时针方向的圆弧,只需将该值变为负数即可。
今天在改代码的时候,遇到了AddVertexAt方法的用法,不甚了解,遂转载
AddVertexAt方法的说明
2010-12-01 20:52:21| 分类: AutoCAD.NET二次 | 标签:bulge addvertexat |字号 订阅用.NET对AutoCAD进行二次开发的时,会发现一个很奇观的现象,那就是居然没有矩形类,当然更没有什么圆角矩形了,不过这并不代表我们就不能绘制这些实体,AutoCAD中有一个很强大的类:Polyline,它可以完成直线段和圆弧混合线条的绘制。
为了使用Polyline绘制曲线,必然会用到添加顶点的方法AddVertexAt方法,该方法的原型如下:
public void AddVertexAt(Int32 index,Point2d pt,Double bulge,Double startWidth,Double endWidth); |
根据Autodesk的说法,bulge是弓高的两倍和弦长的比值,或者是弧所对应圆心角的四分之一的正切值,如下图:
那么凸度应该为:
或者:
事实上这两个不同的定义是等价的,下面给出证明:
易知:
于是有:
可见这两种定义是完全等价的。不过,在绘制圆弧的时候,可根据具体情况的不同采用不用的方法得到b,例如已知圆心角,显然用正切的定义就很好计算凸度,而在易知两点和半径这种情况下画圆弧,则第一种定义求b会更方便。
另外需要一提的是,凸度为正时绘制的圆弧都是逆时针方向的,所以在绘图时一定要规划好,如果确实需要绘制顺时针方向的圆弧,只需将该值变为负数即可。
相关文章推荐
- .NET AutoCAD二次开发之路(三、圆弧篇)
- .NET AutoCAD二次开发之路(四、文字篇)
- 使用.NET开发AutoCAD——C#/AutoCAD 2018/ObjectArx/二次开发入门(二)
- 利用C#进行AutoCAD的二次开发(三) by C#才鸟
- Autocad的二次开发控件的实现技术
- AutoCAD二次开发(.net教程)C#版——学习笔记(二)
- 利用C#进行AUTOCAD的二次开发
- AUTOCAD二次开发-----删除一个图层里面的所有对象
- 利用C#进行AutoCAD的二次开发(三)
- AutoCAD二次开发——AutoCAD.NET API开发环境搭建
- 利用C#进行AutoCAD的二次开发(三)
- C#/AutoCAD 2018/ObjectArx/二次开发添加删除实体的工具函数(四)
- 利用C#进行AutoCAD的二次开发(一)by C#才鸟
- 实体定位 autoCAD 二次开发
- AUTOCAD二次开发工具
- AutoCAD 二次开发学习系列【1】- 初步了解开发环境
- [讨论] AUTOCAD二次开发简介
- 利用C#进行AutoCAD的二次开发(三)
- Autocad二次开发vba教程第十课
- 实体定位 autoCAD 二次开发